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

从头开始学MyBatis—04缓存、逆向工程、分页插件

介绍了MyBatis的缓存、逆向工程和分页插件的使用

目录

1.Mybatis的缓存

1.1MyBatis的一级缓存

1.2MyBatis的二级缓存

1.3二级缓存的相关配置

1.4MyBatis缓存查询的顺序

1.5整合第三方缓存EHCache

1.5.1添加依赖

1.5.2各jar包功能

1.5.3创建EHCache的配置文件ehcache.xml

1.5.4设置二级缓存的类型

1.5.5加入logback日志

1.5.6EHCache配置文件说明

2.Mybatis的逆向工程

2.1创建逆向工程的步骤

①添加依赖和插件

②创建MyBatis的核心配置文件

③创建逆向工程的配置文件

④执行MBG插件的generate目标

2.2QBC查询

3.Mybaits的分页插件

3.1分页插件的使用步骤

①添加依赖

②配置分页插件

3.2分页插件的使用


1.Mybatis的缓存

1.1MyBatis的一级缓存

1.2MyBatis的二级缓存

1.3二级缓存的相关配置

1.4MyBatis缓存查询的顺序

 

1.5整合第三方缓存EHCache

1.5.1添加依赖

1.5.2各jar包功能

1.5.3创建EHCache的配置文件ehcache.xml

1.5.4设置二级缓存的类型

1.5.5加入logback日志

1.5.6EHCache配置文件说明

2.Mybatis的逆向工程

2.1创建逆向工程的步骤

①添加依赖和插件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>mybatis06</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <!-- 依赖MyBatis核心包 -->
    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
        <!-- junit测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- log4j日志 -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>
    </dependencies>
    <!-- 控制Maven在构建过程中相关配置 -->
    <build>
    <!-- 构建过程中用到的插件 -->
    <plugins>
        <!-- 具体插件,逆向工程的操作是以构建过程中插件形式出现的 -->
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.0</version>
            <!-- 插件的依赖 -->
            <dependencies>
                <!-- 逆向工程的核心依赖 -->
                <dependency>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-core</artifactId>
                    <version>1.3.2</version>
                </dependency>
                <!-- MySQL驱动 -->
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>8.0.16</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
    </build>
    
</project>

②创建MyBatis的核心配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties resource="jdbc.properties"/>

    <typeAliases>
        <package name=""/>
    </typeAliases>

    <!--设置连接数据库的环境-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--引入映射文件-->
    <mappers>
        <package name=""/>
    </mappers>
</configuration>

③创建逆向工程的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!--
    targetRuntime: 执行生成的逆向工程的版本
    MyBatis3Simple: 生成基本的CRUD(清新简洁版)
    MyBatis3: 生成带条件的CRUD(奢华尊享版)
    -->
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!-- 数据库的连接信息 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mybatis?
serverTimezone=UTC"
                        userId="root"
                        password="ykxykx">
        </jdbcConnection>
        <!-- javaBean的生成策略-->
        <javaModelGenerator targetPackage="com.ykx.mybatis.pojo"
                            targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- SQL映射文件的生成策略 -->
        <sqlMapGenerator targetPackage="com.ykx.mybatis.mapper"
                         targetProject=".\src\main\resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        <!-- Mapper接口的生成策略 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.ykx.mybatis.mapper" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
        <!-- 逆向分析的表 -->
        <!-- tableName设置为*号,可以对应所有表,此时不写domainObjectName -->
        <!-- domainObjectName属性指定生成出来的实体类的类名 -->
        <table tableName="t_emp" domainObjectName="Emp"/>
        <table tableName="t_dept" domainObjectName="Dept"/>
    </context>
</generatorConfiguration>

④执行MBG插件的generate目标

2.2QBC查询

@Test
public void testMBG(){
try {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new
SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = sqlSessionFactory.openSession(true);
EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
//查询所有数据
/*List<Emp> list = mapper.selectByExample(null);
list.forEach(emp -> System.out.println(emp));*/
//根据条件查询
/*EmpExample example = new EmpExample();
example.createCriteria().andEmpNameEqualTo("张
三").andAgeGreaterThanOrEqualTo(20);
example.or().andDidIsNotNull();
List<Emp> list = mapper.selectByExample(example);
list.forEach(emp -> System.out.println(emp));*/
mapper.updateByPrimaryKeySelective(new
Emp(1,"admin",22,null,"456@qq.com",3));
} catch (IOException e) {
e.printStackTrace();
}
}

3.Mybaits的分页插件

分页的情况:

limit index,pageSize
pageSize:每页显示的条数
pageNum:当前页的页码
index:当前页的起始索引,index=(pageNum-1)*pageSize
count:总记录数
totalPage:总页数
totalPage = count / pageSize;
if(count % pageSize != 0){
totalPage += 1;
}
pageSize=4,pageNum=1,index=0 limit 0,4
pageSize=4,pageNum=3,index=8 limit 8,4
pageSize=4,pageNum=6,index=20 limit 8,4

3.1分页插件的使用步骤

①添加依赖

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.2.0</version>
</dependency>

②配置分页插件

在MyBatis的核心配置文件中配置插件

<plugins>
<!--设置分页插件-->
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>

3.2分页插件的使用

 内容来源于黑马教程,仅作为学习笔记参考

 


http://www.kler.cn/a/456669.html

相关文章:

  • 从0到机器视觉工程师(一):机器视觉工业相机总结
  • WPF中的Microsoft XAML Behaviors包功能详解
  • Type c系列接口驱动电路·内置供电驱动电路使用USB2.0驱动电路!!!
  • 国产数据库TiDB从入门到放弃教程
  • 绝美的数据处理图-三坐标轴-散点图-堆叠图-数据可视化图
  • 如何使用MySQL的group_concat函数快速做关联查询?
  • Linux文本处理的利剑:grep、sed和awk的深度解析与应用
  • ARM架构虚拟化原理
  • 【信息系统项目管理师】高分论文:论信息系统项目的资源管理(智慧储电站系统)
  • 机器学习详解(11):分类任务的模型评估标准
  • Python学习(2):注释、数字、文本、列表
  • 【漏洞复现】CVE-2022-41678 Arbitrary JMX Service Invocation with Web Interface
  • JS实现Table表格数据跑马灯效果
  • 游戏开发-UE4高清虚幻引擎教程
  • 硬件设计-时钟振荡器
  • R数据分析:工具变量回归的做法和解释,实例解析
  • VSCode 插件开发实战(七):插件支持了哪些事件,以及如何利用和监听这些事件
  • MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)
  • 【视觉惯性SLAM:七、ORB-SLAM2:ORB特征提取】
  • php中laravel基于rabbit的异步队列实践与原理
  • 代码随想录算法【Day4】
  • Docker和Kubernetes(K8s)区别
  • js正则表达式 校验邮箱,非法字符限制输入
  • 在Linux的世界中怎么玩转定时器任务
  • WebSocket 在实时比分推送中的应用
  • JVM调优实践篇