04notice实现


 * SpringBoot 项目
 *      依赖: 父工程 spring-boot-starter-parent
 *          启动依赖: spring-boot-starter
 *          单元测试: spring-boot-starter-test
 *     jdbc:
 *          mysql依赖: mysql-connector-java
 *          data-jdbc依赖: spring-boot-starter-data-jdbc   当添加 data-jdbc 依赖时会自动下载 HikariCp 依赖
 *
 *          datasource连接数据库
 *          数据库配置 :
 *              spring.datasource.url=jdbc:mysql://localhost:3306/jt?characterEncoding=utf8&serverTimezone=GMT%2B8
 *              spring.datasource.username=root
 *              spring.datasource.password=lvjing
 *
 *     mybatis:
 *          依赖: mybatis-spring-boot-starter
 *          配置:mybatis.configuration.default-statement-timeout=30
 *              mybatis.configuration.map-underscore-to-camel-case=true
 *              mybatis.mapper-locations=classpath:/mapper/星/星.xml
 *              logging.level.com.cy=DEBUG
 *
 *              SqlSession 连接数据库     Spring 框架会基于 MyBatis 框架底层配置,创建SqlSessionFactory 对象
 *
 *     web:
 *         依赖: spring-boot-starter-web
 *
 *     分页:
 *          依赖: pagehelper-spring-boot-starter
 *
 *
 *
 *    插件:
 *      lombok:
 *          1. 插件安装  2. 开启注解处理enable annotation processing   3. 添加依赖projectlombok
 *              .@Date  setter/getter  equals hashCode toString    除final修饰的
 *              .@NoArgsConstructor   无参构造
 *              .@AllArgsConstructor   全参构造
 *              .@Slf4j  日志对象
 *
 *  项目:
 *  持久层:
 *      .1.  pojo类 SysNotice  封装公告数据  --可以作为方法的参数传入  --也是方法的返回值
 *      .2.  dao接口 SysNoticeDao  数据层接口及业务方法    @Mapper @Param @Select
 *              .@Mapper 就是告诉spring框架此接口实现由mybatis创建,并将其存储到spring容器
 *      .3.  映射文件  resources/mapper/sys/SysNoticeMapper.xml
 *              文件头, 根元素( namespace 使得此映射文件和dao接口照应 )
 *              sql语句返回  增,删,改 --返回影响的行数    查 --返回表
 *  业务层:
 *      .4.  接口   数据操作,日志记录,事务处理,缓存,权限
 *      .5.  实现类  重写接口所有方法进行具体实现  @service-描述分层架构中业务逻辑对象  注入持久层@Autowired
 *  控制层:
 *      Spring Web  SpringMVC依赖
 *      .6.  响应标准: JsonResult
 *      .7.  controller类:  @RestController             @RequestMapping("/notice/")
 * 1                    @PostMapping               @RequestBody 将post请求的json值赋值给pojo或map参数
 * 2                    @DeleteMapping("{ids}")    @PathVariable 从url中取{}变量的值注入给参数
 * 3                    @GetMapping("{id}")        @PathVariable
 * 4                    @GetMapping()
 * 5                    @PutMapping()
 *
 *     .8.  全局异常处理: 多个控制层类具有 共性异常
 *     spring web中的全局异常处理
 *                  .@RestControllerAdvice  描述的类为全局异常处理类
 *                  .@Slf4j 日志注解  注入 log 的Logger对象
 *                  .@ExceptionHandler() 异常处理方法
 *            当Handler中出现异常 全局异常在DispatcherServlet中执行
 *
 *
 *      .9.  拦截器: 基于回调机制  在方法执行之前进行判断条件是否成立,
 *      spring mvc中的拦截器
 *          1. 拦截器定义:  实现HandlerInterceptor接口   实现的拦截业务 时间拦截6-24  --返回的是boolean值 true通过,false拦截
 *          2. 定义配置类  注册拦截器   实现WebMvcConfigurer 配置springmvc拦截器
 *              拦截器 拦截程序 报错异常,在全局异常处理中获取到了异常 返回了JsonResult给客户端
 *
 *
 *   分页:
 *      依赖:
 *      工具类:  util
 *          1. servletUtil获取请求对象
 *          2. 分页查询逻辑  PageHelper.startPage(pageNum,pageSize)方法
 *              参数,当前页数 一页条数
 *
 *
 *
 *
 *
 *
 *----------------
 * 向页面tbody中添加后端返回的数据
 *     var records = result.data.list;
 *     records.forEach(      (item,i)=>$("tbody").append( doCreateRow(item,i)-一行一行添加 )   );
 *     function doCreateRow(item,i){
 *         return `<tr>
 *             <td>${i+1}</td>
 *             <td>${item.name}</td>
 *             <td>${item.sex='1'?'男':'女'}</td>
 *             <td>delete</td>
 *         </tr>`;
 *     }
 * ----------------
 * 页面实现
 *   一 . jquery 实现
 *      .0. jquery页面加载完成函数
 *
 *      .1. 页面加载完成  查询展示内容
 *             a. doGatNotices()  页面加载完执行方法
 *                  此方法中使用jquery的ajax方法进行请求 并对结果进行处理
 *                  在后端业务中实现了分页 初始化分页  把分页放在本地缓存中 LocalStorage
 *             a.b doHandleQueryResponseResult(result) 获取到结果  对结果进行处理 执行方法
 *             a.b.c.1.  doHandleQueryError(result.message)  发生异常
 *                          出现异常 : 页面显示 没有找到页面   页码显示0/0
 *              a.b.c.2.  doHandleQueryOk(result) 获取到结果-没有异常
 *              a.b.c.d.1. doSetTableBodyRows(result.data.list)  设置table内的内容
 *                                      清空tbody中的内容
 *                                      forEach()迭代 把每一条数据添加到他tbody中每一行
 *                                      records = result.data.list
 *                                      records.forEach(    (item,i)=>$("tbody").append( doCreateRow(item,i) )  );
 *              a.b.c.d.e  doCreateRow(item,i)  把每条数据添加到行
 *                                       return `<tr>
 *                                           <td>${i+1}</td>
 *                                           <td>${item.title}</td>
 *                                           <td>${item.sex==1?'男':'女'}</td>
 *                                       </tr>`;
 *              a.b.c.d.2.  doSetPagination(result) 设置分页部分的内容
 *                                       初始化页面页码  获取页数和总页 result.data.pageNum pages
 *                                       将页码值 放到浏览器缓存中 localStorage.setItem("pageCurrent",pageCurrent      )
 *
 *
 *
 *
 *      .2. 分页事件
 *
 *      .3. 条件查询
 *
 *      .4. 删除操作
 *
 *      .5. 新增操作
 *
 *      .6. 更新操作
 *


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值