Mybatis
苍穹尘
文能提笔安天下,武能上"码"定乾坤。
展开
-
Mybatis系列四:映射文件-参数处理
一、单个参数:mybatis不会做特殊处理。#{参数名}或#{任意名}:取出参数值。 方法:public Employee getEmpById(Integer id); <select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"> select * from tbl_employee where...原创 2019-04-20 17:17:56 · 183 阅读 · 0 评论 -
Mybatis系列十八:源码解析-getMapper
mybatis全局配置文件mybatis-config.xml<?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">...原创 2019-04-27 10:52:30 · 324 阅读 · 0 评论 -
Mybatis系列十九:源码解析-查询流程
mybatis全局配置文件mybatis-config.xml<?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">...原创 2019-04-27 11:56:11 · 203 阅读 · 0 评论 -
Mybatis系列二十:插件开发
MyBatis在四大对象的创建过程中,都会有插件进行介入。插件可以利用动态代理机制一层层的包装目标对象,而实现在目标对象执行目标方法之前进行拦截的效果。 MyBatis 允许在已映射语句执行过程中的某一点进行拦截调用。 默认情况下,MyBatis 允许使用插件来拦截的方法调用包括: Executor (update, query, flushStatements, commit, rol...原创 2019-04-27 15:31:21 · 259 阅读 · 0 评论 -
Mybatis系列二十一:批量操作
批量操作 @Test public void testBatch() throws IOException{ String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFa...原创 2019-04-27 15:59:59 · 222 阅读 · 0 评论 -
Mybatis系列二十二:自定义类型处理
自定义TypeHandler处理枚举 我们可以通过自定义TypeHandler的形式来在设置参数或者取出结果集的时候自定义参数封装策略。步骤: 1、实现TypeHandler接口或者继承BaseTypeHandler 2、使用@MappedTypes定义处理的java类型 使用@MappedJdbcTypes定义jdbcType类型 3、在自定义结果集标签或者参数处理的时候声明使用自定义...原创 2019-04-27 16:29:10 · 1969 阅读 · 0 评论 -
Mybatis系列十四:整合SpringBoot
1、引入依赖 <!-- mybatis依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <...原创 2019-04-23 20:52:17 · 126 阅读 · 0 评论 -
Mybatis系列十五:整合Redis
1、添加redis依赖 <!--redis缓存--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId>...原创 2019-04-23 21:12:13 · 827 阅读 · 1 评论 -
Mybatis系列一:入门篇
asas原创 2019-04-20 11:42:45 · 355 阅读 · 0 评论 -
Mybatis系列二:全局配置文件
一、properties1、编写dbconfig.properties文件jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatisjdbc.username=rootjdbc.password=rootorcl.driver=oracle.jdbc.OracleDriverorcl.u...原创 2019-04-20 14:04:42 · 168 阅读 · 0 评论 -
Mybatis系列三:映射文件-增删改查
一、修改EmployeeMapper接口public interface EmployeeMapper { public Employee getEmpById(Integer id); public Long addEmp(Employee employee); public boolean updateEmp(Employee employee); public void d...原创 2019-04-20 15:08:33 · 271 阅读 · 0 评论 -
Mybatis系列十七:源码解析-SqlSession
mybatis全局配置文件mybatis-config.xml<?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">...原创 2019-04-27 10:23:00 · 146 阅读 · 0 评论 -
Mybatis系列十六:源码解析-SqlSessionFactory
mybatis全局配置文件mybatis-config.xml<?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">...原创 2019-04-26 22:17:00 · 328 阅读 · 0 评论 -
Mybatis系列五:映射文件-参数处理源码解析
一、源码解析参数多时会封装map,可以使用@Param来指定封装时使用的key;使用#{key}就可以取出map中的值;(@Param("id")Integer id,@Param("lastName")String lastName);ParamNameResolver解析参数封装map的;names:{0=id, 1=lastName};构造器的时候就确定好了确定流程:1.获取每个...原创 2019-04-20 18:03:29 · 225 阅读 · 0 评论 -
Mybatis系列六:映射文件-结果集封装
一、返回List public List<Employee> getEmpsByLastNameLike(String lastName); <!-- public List<Employee> getEmpsByLastNameLike(String lastName); --> <!-- resultType:如果返回的是一个集合,要写集合中元...原创 2019-04-20 18:38:20 · 400 阅读 · 0 评论 -
Mybatis系列七:映射文件-自定义结果集
一、案例1: <!-- public Employee getEmpById(Integer id); --> <!-- resultMap:自定义结果集映射规则; --> <select id="getEmpById" resultMap="MySimpleEmp"> select * from tbl_employee where id=#{i...原创 2019-04-20 20:29:34 · 1019 阅读 · 1 评论 -
Mybatis系列八:动态SQL
一、if和where标签 <!-- 查询员工,要求,携带了哪个字段查询条件就带上这个字段的值 --> <!-- public List<Employee> getEmpsByConditionIf(Employee employee); --> <select id="getEmpsByConditionIf" resultType="com...原创 2019-04-21 13:08:52 · 906 阅读 · 0 评论 -
Mybatis系列九:缓存机制
简介: MyBatis系统中默认定义了两级缓存。 一级缓存和二级缓存。 1、默认情况下,只有一级缓存(SqlSession级别的缓存, 也称为本地缓存)开启。 2、二级缓存需要手动开启和配置,它是基于namespace级别的缓存。 3、为了提高扩展性。MyBatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存。一、一级缓存 一级缓存(local ...原创 2019-04-21 16:21:40 · 237 阅读 · 0 评论 -
Mybatis系列十:整合Ehcache
MyBatis定义了Cache接口方便我们进行自定义扩展。 EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。1、引入依赖 <!-- Ehcache依赖 --> <dependency> <groupId>org.mybatis.cache...原创 2019-04-21 16:49:30 · 195 阅读 · 0 评论 -
Mybatis系列十一:整合Spring
1、添加依赖 <!-- mybatis ORM框架 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</ver...原创 2019-04-21 17:29:04 · 116 阅读 · 0 评论 -
Mybatis系列十二:逆向工程MBG
MyBatis Generator: 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类。支持基本的增删 改查,以及QBC风格的条件查询。但是表连接、 存储过程等这些复杂sql的定义需要我们手工编写。官方文档地址:http://www.mybatis.org/generator/官方工程地址:https://githu...原创 2019-04-21 18:32:47 · 230 阅读 · 0 评论 -
Mybatis系列十三:PageHelper分页插件
官方文档:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md1、引入依赖 <!-- PageHelper 分页插件--> <dependency> <groupId>com.github.pagehelper</gro...原创 2019-04-21 19:00:06 · 224 阅读 · 0 评论 -
Map中值为null不存键值
查询数据返回类型为map,数据库中有些值为null,则返回的结果中没有值为null的字段。解决方法:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-...原创 2019-04-26 08:43:45 · 1585 阅读 · 0 评论 -
mybatis中字符串数字
1、条件查询时,不指定jdbcType=VARCHAR,若入参是0012346595时将查不到数据。<if test="filmCode != null and filmCode != ''"> and f.film_code= #{filmCode}</if>原因:当不指定jdbcType为字符串时,字符串0012346595将会被转换为数值12346595,...原创 2019-05-24 08:51:27 · 11265 阅读 · 0 评论