当前位置: 首页 > news >正文

专做美容师招聘网站宁波专业网站搭建地址

专做美容师招聘网站,宁波专业网站搭建地址,在线搜索资源,网站开发设计方案书一.缓存 作用:应用查询上,内存中的块区域。 缓存查询结果,减少与数据库的交互,从而提高运行效率。 1.SqlSession 缓存 1. 又称为一级缓存,mybatis自动开启。 2. 作用范围:同一…

 一.缓存

        作用:应用查询上,内存中的块区域

              缓存查询结果,减少与数据库的交互,从而提高运行效率。

       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.在查询方法中使用分页插件查询当前页的商品信息

@Test
public 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]

http://www.yayakq.cn/news/481566/

相关文章:

  • 个人购物网站搭建深圳市网站建设做网站
  • 教学资源网站建设方案360网站推广官网怎么优化
  • 怎么建设视频网站如何查看网站的空间商
  • 购物网站排行榜前十名四大工业设计软件
  • 网站建设要学哪些软件有哪些内容wordpress 商业插件
  • 怎么用网站推广wordpress 新建表单
  • 做网站赚钱容易吗asp建站程序
  • 哪个网站可以免费建站自己主机做多个网站
  • 做编程的 网站qq企业邮箱登录入口
  • 珠海网站建设找哪家沈阳网站改版
  • 建设网站二级建造师如何解聘视频网站logo怎么做的
  • 怎样申请网站域名和空间电子商务网站开发实训
  • 农产品的网站建设方案书范文三亚住房和城乡建设厅网站
  • 做网站需要什么手续资料网站架构设计师面试技巧
  • 商丘网站建设专业现状网站外链建设设计
  • 网站配色表网站模板在线制作
  • 简洁企业网站源码贵州网站制作公司电话
  • 朝阳市网站公司商城网站建设预算
  • 高碑店建设局网站网站建设流程包括哪些内容
  • 做百度药材种苗网站赚钱黑渠道入口
  • 网站开发工具特点总结wordpress 同步公众号
  • 沈阳关键词网站排名常平镇仿做网站
  • seo网站关键词优化快速官网怎样申请企业邮箱账号
  • 怎么优化网站程序哈尔滨百度引擎
  • 网站运营需要做什么无忧网站建设推荐
  • 网站建设与制作实训报告中信建设有限责任公司是国企吗
  • 温州快速网站推广公司中国网站建设第一品牌
  • 做网站需要多少钱 爱问知识人网站宣传推广
  • 苏州 网站设计 知名logo设计网站官网
  • 教育网站建设案例医院咨询男科