海口日报_简易app开发软件_付费推广平台有哪些_元搜索引擎有哪些
2025/10/31 6:03:50 
来源:https://blog.csdn.net/shuai_ge_yang/article/details/143481160 
浏览: 
次
 
关键词:海口日报_简易app开发软件_付费推广平台有哪些_元搜索引擎有哪些
海口日报_简易app开发软件_付费推广平台有哪些_元搜索引擎有哪些
|  一.缓存         作用:应用查询上,内存中的块区域。               缓存查询结果,减少与数据库的交互,从而提高运行效率。        1.SqlSession 缓存 | 1. 又称为一级缓存,mybatis自动开启。 2. 作用范围:同一个session对象,调用同一个<select>,             第一次访问数据库,缓存到session缓存区。 | 
    示例 | //获取学生的Mapper对象StudentMapper studentMapper=session.getMapper(StudentMapper.class);
 //调用方法,获取所有的学生信息
 List<Student> list=studentMapper.selectAll();
 for (Student stu:list) {
 System.out.println(stu);
 }
 System.out.println("----------------------------------------------");
 //调用方法,获取所有的学生信息
 List<Student> list2=studentMapper.selectAll();
 for (Student stu:list2) {
 System.out.println(stu);
 }
 效果: | 
       2.SqlSessionFactory 缓存 | 1. 又称为二级缓存,mybatis 不自动开启。 2. 作用范围:同一个SqlSessionFactory对象中所有session都可以获取。 3. 打开mapper.xml配置开启二级缓存       <cache readOnly="true"></cache> 4.只有当session.close()或commit()时,    才会将session缓存的数据刷新到factory二级缓存中。 5. 适用于:频繁查询,很少被修改。 | 
      实例 | SqlSession session=sessionFactory.openSession();//获取学生的Mapper对象
 StudentMapper studentMapper=session.getMapper(StudentMapper.class);
 //调用方法,获取所有的学生信息
 List<Student> list=studentMapper.selectAll();
 for (Student stu:list) {
 System.out.println(stu);
 }
 //只有当session.close()或commit(),才会将session缓存的数据刷新到factory二级缓存中
 session.close();
 System.out.println("----------------------------------------------");
 SqlSession session2=sessionFactory.openSession();
 StudentMapper studentMapper2=session2.getMapper(StudentMapper.class);
 //调用方法,获取所有的学生信息
 List<Student> list2=studentMapper2.selectAll();
 for (Student stu:list2) {
 System.out.println(stu);
 }
 效果: 
 | 
 二.Mybatis注解       作用:简化mapper.xml配置,mapper.xml配置和注解可以共存                  一般动态sql或复杂的sql语句,推荐使用mapper.xml配置        1. 常用注解 | @Delete(“delete语句”) | 等价于<delete>标签 |  | @Insert(“insert语句”) | 等价于<insert>标签 |  | @Update(“update语句”) | 等价于<update>标签 |  | @Select(“select语句”) | 等价于<select>标签 | 
         示例: | @Delete("delete from student where sid=#{id}")public int deleteById(int id);
 @Select("select * from student")public List<Student> selectAll();
 @Insert("insert into student values(#{sid},#{stuName},#{age},#{tid})")public int  add(Student stu);
 @Update("update student set stu_name=#{stuName},age=#{age},tid=#{tid} where sid=#{sid} ")public int  update(Student stu);
 | 
 三.PageHelper 分页插件      PageHelper 是 MyBatis 中比较著名的分页插件,它提供了多种分页方式(例如 MySQL 和 Oracle 分页方式),支持多种数据库,并且使用非常简单。    下面就介绍一下 PageHelper 的使用方式。      1.pom.xml引入依赖 | <!--分页--><dependency>
 <groupId>com.github.pagehelper</groupId>
 <artifactId>pagehelper</artifactId>
 <version>5.1.11</version>
 </dependency>
 | 
       2.mybatis.xml配置文件中添加 PageHelper 的插件 | <!--添加 PageHelper 分页插件--><!--com.github.pagehelper.PageInterceptor 是 PageHelper 插件的名称,
 dialect 属性用于指定数据库类型(支持多种数据库)-->
 <plugins>
 <plugin interceptor="com.github.pagehelper.PageInterceptor">
 <property name="helperDialect" value="mysql"/>
 </plugin>
 </plugins>
 | 
      3.查询所有的老师信息的mapper | public interface TeacherMapper {@Select("select * from teacher")
 List<Teacher> selectAll();
 }
 | 
       4.在查询方法中使用分页插件查询当前页的商品信息 | @Testpublic void testTeacherPage() {
 TeacherMapper teacherMapper = session.getMapper(TeacherMapper.class);
 //开启分页功能,在查询之前,设置分页的当前页以及每页的条数
 PageHelper.startPage(2,2);
 //执行查询操作,获取查询数据
     List<Teacher> allTeachers = teacherMapper.selectAll();//通过PageInfo封装查询的list数据集合以及分页相关的数据
 PageInfo<Teacher> pageInfo = new PageInfo<>(allTeachers);
 System.out.println("pageInfo = " + pageInfo);
 long total = pageInfo.getTotal(); // 获取总记录数
 System.out.println("total = " + total);
 int pages = pageInfo.getPages();  // 获取总页数
 System.out.println("pages = " + pages);
 int pageNum = pageInfo.getPageNum(); // 获取当前页码
 System.out.println("pageNum = " + pageNum);
 int pageSize = pageInfo.getPageSize(); // 获取每页显示记录数
 System.out.println("pageSize = " + pageSize);
 List<Teacher> list = pageInfo.getList(); //获取查询页的数据集合
 for (Teacher t:list) {
 System.out.println(t);
 }
 }
 | 
 PageInfo对象获取分页相关信息的属性 | 方法名 | 描述 |  | pageNum | 当前页的页号 |  | pageSize | 每页显示的条数 |  | size | 当前页的实际条数 |  | total | 总条数 |  | pages | 总页数 |  | prePage | 上一页的页号 |  | nextPage | 下一页的页号 |  | isFirstPage | 是否为第一页 |  | isLastPage | 是否为最后一页 |  | hasPreviousPage | 是否存在上一页 |  | hasNextPage | 是否存在下一页 |  | navigatePages | 导航分页的页码数 |  | navigatepageNums | 导航分页的页码,[1,2,3,4,5] | 
 |