2024年小学生应关注哪些网站建设的关键事项?
摘要:叫别人做网站需要注意什么,2024小学生时事新闻十条,企业如何做好网络营销,哪家专门做特卖网站重难点详解 1、定义全局异常 2、ThreadLocal ThreadLocal 并不是一个Thread,而是Thr
叫别人做网站需要注意什么,2024小学生时事新闻十条,企业如何做好网络营销,哪家专门做特卖网站重难点详解
1、定义全局异常 2、ThreadLocal
ThreadLocal 并不是一个Thread#xff0c;而是Thread的一个局部变量ThreadLocal 为每一个线程提供独立的存储空间#xff0c;具有线程隔离的效果#xff0c;只有在线程内才能取到值#xff0c;线程外则不能访问
public void …重难点详解
1、定义全局异常 2、ThreadLocal
ThreadLocal 并不是一个Thread而是Thread的一个局部变量ThreadLocal 为每一个线程提供独立的存储空间具有线程隔离的效果只有在线程内才能取到值线程外则不能访问
public void set(T value) 设置当前线程的线程局部变量的值public T get() 返回当前线程所对应的线程局部变量的值public void remove() 移除当前线程的线程局部变量注意客户端每次发送http请求对应的服务端都会分配一个新的线程在处理过程中涉及到系列方法属于同一个线程 【1】LoginCheckFilter的doFilter方法 【2】EmployeeController的update方法 【3】MyMetaObjectHandler的updateFill方法
3、BaseContext上下文 BaseContext是基于ThreadLocal类封装的工具类用于在同一线程中的封装数据和获取数据。 BaseContext工具类用于存放和取出当前登录的用户的idpublic class BaseContext {public static ThreadLocalLong threadLocal new ThreadLocal();/*** 设置当前线程的线程局部变量的值* param id*/public static void setCurrentId(Long id) {threadLocal.set(id);}public static Long getCurrentId() {return threadLocal.get();}public static void removeCurrentId() {threadLocal.remove();}
4、PageHelper分页 pagehelper是mybatis 提供的分页插件 开始分页
PageHelper.startPage(1, 10)// selectlist查询数据库的时候会自动加上limit 110。在CategoryServiceImpl声明pageQuery方法及其父类接口 public PageResult pageQuery(CategoryPageQueryDTO categoryPageQueryDTO) {// 分页器对象PageCategory page new Page();ListCategory categoryList categoryMapper.pageQuery(categoryPageQueryDTO);Long total page.getTotal();// 分页return new PageResult(total,categoryList);}
在EmployeeServiceImpl声明pageQuery方法及其父类接口
public PageResult pageQuery(EmployeePageQueryDTO dto) {PageHelper.startPage(dto.getPage(),dto.getPageSize());PageEmployee page employeeMapper.pageQuery(dto);return new PageResult(page.getTotal(),page.getResult());}原理:
Mybatis内置了分页拦截器PageInterceptor即在执行相关sql之前会拦截一些操作通过setLocalPage()方法将分页信息保存在当前线程中。分页查询方法与之处在同一个线程中共享ThreadLocal中的数据selectlist查询之后赋值给的List list。这个list是Page 类型再将list放到PageInfo中即可。
