MyBatis笔记
蒟蒻...
这个作者很懒,什么都没留下…
展开
-
映射文件-insert、update、delete
1.insert:在标签内写inser的sql语句配置文件: <insert id="addEmp" parameterType="cn.it.mybatis.bean.Employee"> INSERT INTO tbl_employee(last_name,gender,email) VALUE(#{lastName},#{gender},#{email}) ...原创 2019-04-04 17:37:40 · 357 阅读 · 0 评论 -
全局配置文件-environments
environments:MyBatis可以配置多种环境,通过default指定使用某种环境,可以达到快速切换环境如图可以修改为test环境子标签:environment:配置一个具体的环境,里面必须有两个标签。id表示当前环境的唯一标识 transactionManager:事务管理器 ...原创 2019-04-03 16:31:59 · 383 阅读 · 0 评论 -
全局配置文件-typeAliases
typeAliases:别名处理器,可以为我们的java类型起别名(别名不区分大小写)1.typeAlias用法: <typeAliases> <!-- typeAlias:为某个java起别名 type:指定要起别名的类的全类名,默认别名就是类名小写,这里就是employee alias:要起的别名 --> <typeA...原创 2019-04-02 22:20:14 · 550 阅读 · 0 评论 -
全局配置文件-properties
MyBatis可以使用properties标签来引入外部的properties配置文件的类容:properties标签有两个属性:1.resource:引入类路径下的资源2.url:引入网络路径或者磁盘路径下的资源测试:引入外部的dbconfig.properties文件dbconfig.properties:jdbc.driver=com.mysql.cj.jdbc.D...原创 2019-04-02 21:48:58 · 587 阅读 · 0 评论 -
MyBatis的扩展应用
1.PageHelper分页插件pagehelper文档:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md使用方法参照文档2.MyBatis的批量操作1.使用动态sql,拼接大量sql语句,进行操作。缺点:如果操作量非常大,可能导致数据库不能接受很长的sql语句...原创 2019-04-11 17:32:23 · 376 阅读 · 0 评论 -
MyBatis插件开发
插件原理四大对象在创建时每一个创建出来的对象不是直接返回的,而是调用了interceptorChain.pluginAll()方法 调用方法获取到所有的Interceptor(拦截器),(插件需要实现的接口) 插件机制,可以使用插件为目标对象创建一个代理对象,面向切面的编程方式(AOP) 插件编写1.编写Interceptor的实现类MyFirstPlug...原创 2019-04-11 14:55:33 · 221 阅读 · 0 评论 -
MyBatis缓存机制
MyBatis中有两级缓存①一级缓存(本地缓存)在与数据库同一次会话期间,查询到的数据会放到本地查询中以后如果需要获取相同的数据,直接从缓存中拿,不需要再次去查询数据库一级缓存的体验:测试代码: @Test void cache_1() throws IOException { SqlSessionFactory sqlSessionFactory = getSq...原创 2019-04-07 22:48:36 · 163 阅读 · 0 评论 -
MyBatis的原理(源码分析)
分析MyBatis原理用hello world分析步骤4步:获取SqlSessionFactory对象 获取SqlSession对象 获取接口的代理对象(MapperProxy) 执行增删改查方法1.获取SqlSessionFactory对象创建流程图:总结:就是把配置文件信息解析并保存在Configuration对象中,返回包含了Configuration的De...原创 2019-04-11 14:00:10 · 261 阅读 · 0 评论 -
动态SQL
动态 SQL 元素和 JSTL 或基于类似 XML 的文本处理器相似。MyBatis 采用功能强大的基于 OGNL 的表达式来淘汰其它大部分元素。1、if<if test=""></if>test:判断表达式(OGNL表达式)OGNL用法可以参照官方文档进行使用:http://commons.apache.org/proper/commons-ognl...原创 2019-04-07 19:05:41 · 232 阅读 · 0 评论 -
映射文件-select(关联查询-多个对象)
使用场景:在查询部门信息的时候,将该部门的所有员工信息也查询出来环境搭建:Department类:package cn.it.mybatis.bean;import java.util.List;public class Department { private Integer id; private String deptName; private List&l...原创 2019-04-05 23:02:13 · 584 阅读 · 0 评论 -
映射文件-select(关联查询-仅一个对象)
使用场景:比如:查询员工信息的同时也要查询出该员工信息的部门信息(同样是一个javaBean)环境搭建:Employee类:package cn.it.mybatis.bean;import org.apache.ibatis.type.Alias;@Alias("emp")public class Employee { private Integer id; p...原创 2019-04-05 19:34:23 · 652 阅读 · 0 评论 -
映射文件-select
1.select返回一个List集合在映射文件中配置返回List集合的方法的sql映射resultType:依旧是写需要封装的javaBean,而不是写List集合<!--public List<Employee> getEmplsNameLike(String lastName); --> <select id="getEmplsN...原创 2019-04-05 16:50:21 · 281 阅读 · 0 评论 -
参数处理
1.一个参数:MyBatis不会做特殊处理使用#{参数名},取出参数2.多个参数:MyBatis会做特殊处理如果还使用使用#{参数名},取出参数的话会出现异常异常信息:因为MyBatis的特殊处理,将参数封装成了一个mapkey=param1,param2......paramNvalue=传入的参数值取出参数的操作:#{param1},#{...原创 2019-04-04 20:40:13 · 207 阅读 · 0 评论 -
全局配置文件-settings
settings:MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。具体的属性参考MyBatis官方文档:http://www.mybatis.org/mybatis-3/zh/configuration.html#settings1.mapUnderscoreToCamelCase:是否开启自动驼峰命名规则(camel case)映射...原创 2019-04-03 16:51:57 · 709 阅读 · 0 评论