Mybatis的实战介绍
02、Mybatis的实战介绍1、创建一个springboot项目创建demo如果不太懂,可以百度。
需要的依赖(有些依赖包和springboot的版本会出现冲突,如果解决不了,建议跟着教程走)
123456789101112131415161718192021<dependencies> <!-- Mybatis核心 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <!-- junit测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit& ...
MyBatis的缓存
06、MyBatis的缓存1、MyBatis的一级缓存一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就 会从缓存中直接获取,不会从数据库重新访问
使一级缓存失效的四种情况:
不同的SqlSession对应不同的一级缓存
同一个SqlSession但是查询条件不同
同一个SqlSession两次查询期间执行了任何一次增删改操作
同一个SqlSession两次查询期间手动清空了缓存
2、MyBatis的二级缓存二级缓存是SqlSessionFactory级别,通过同一个SqlSessionFactory创建的SqlSession查询的结果会被缓存;此后若再次执行相同的查询语句,结果就会从缓存中获取
二级缓存开启的条件:
a>在核心配置文件中,设置全局配置属性cacheEnabled=”true”,默认为true,不需要设置
b>在映射文件中设置标签
c>二级缓存必须在SqlSession关闭或提交之后有效
d>查询的数据所转换的实体类类型必须实现序列化的接口 使二级缓存失效的情况: 两次查询 ...
MyBatis的其他更强大的功能
03、MyBatis的其他更强大的功能1、查询一个实体类对象123456/** * mapper 的java代码* 根据用户id查询用户信息 * @param id* @return*/User getUserById(@Param("id") int id);
1234<!--User getUserById(@Param("id") int id);--><select id="getUserById" resultType="User"> select * from t_user where id = #{id}</select>
2、查询一个list集合12345/*** mapper 的java代码* 查询所有用户信息 * @return*/List<User> getUserList();
1234<!--List<User> getUserList();--><select id=&q ...
自定义映射resultMap
04、自定义映射resultMap1、resultMap处理字段和属性的映射关系若字段名和实体类中的属性名不一致,则可以通过resultMap设置自定义映射
1234567891011121314151617181920<!--resultMap:设置自定义映射属性:id:表示自定义映射的唯一标识 type:查询的数据要映射的实体类的类型 子标签:id:设置主键的映射关系 result:设置普通字段的映射关系 association:设置多对一的映射关系 collection:设置一对多的映射关系属性: property:设置映射关系中实体类中的属性名 column:设置映射关系中表中的字段名--><resultMap id="userMap" type="User"> <id property="id" column="id"></id> <result property="userName" column=" ...
MyBatis的常用工具和插件
07、MyBatis的常用工具和插件1、逆向工具
正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的。
逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源:
Java实体类
Mapper接口
Mapper映射文件
逆向工程实现:
idea安装插件 MybatisX ,idea版本过低可能不太适用。
右键,然后将对应的文件导入到对应的包下面去。
2、分页插件分页插件使用步骤a>添加依赖
123456<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.0</version></depe ...