Mybatis
从程序猿到程序员
努力吧骚年
展开
-
Mybatis学习笔记(二)-----查询sql的配置文件
查询语句的配置1、在包下定义Configuration.xml核心配置文件。 2、定义SQL语句的Message.xml配置文件,并在核心配置文件中加载该SQL配置文件。 3、编写代码测试。select标签字段id:给该select语句起一个名字,方便调用。(全局唯一) 字段resultMap:查询结果返回给某一个resultMap定义的bean对象。 <select id="query原创 2017-10-10 14:51:30 · 613 阅读 · 0 评论 -
MyBatis学习笔记——调用存储过程
配置Mapper XML文件配置调用存储过程的Mapper XML文件,使用<select>标签。<select id="getPageByProcedure" statementType="CALLABLE"> {call hello_test( #{start,mode=IN,jdbcType=INTEGER}, #{en...原创 2018-09-06 11:17:42 · 277 阅读 · 0 评论 -
MyBatis学习笔记——批量sqlSession
BATCH模式在全局配置文件的setting中,有一个属性可以设置ExecutorType的类型,默认为SIMPLE,但是通常我们不会在全局配置文件中进行设置。 在使用中,通常在获取SqlSession的时候加以参数进行配置,SqlSession openSession = sqlSessionFactory.openSession(ExecutorType.BATCH);,以往我们都是使用...原创 2018-09-05 19:46:23 · 11403 阅读 · 7 评论 -
MyBatis学习笔记——运行原理
分层图图来自尚硅谷的MyBatis讲授视频,侵删~ SQLSessionFactory的初始化 (1)创建SqlSessionFactoryBuilder (2)使用build方法,调用三参数的build方法。 (3)创建了一个XML解析器(XPath)。 (4)解析全局配置文件 (5)解析Mapper XML (6)解析Mapper XML的...原创 2018-09-03 12:53:17 · 313 阅读 · 0 评论 -
MyBatis学习笔记——PageHelper插件
依赖pom.xml加入如下:<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version></depe原创 2018-09-05 12:48:04 · 139 阅读 · 0 评论 -
MyBatis学习笔记——插件机制(AOP)
插件MyBatis所述的插件功能,其实就是一个拦截器功能。概述1、在四大对象创建的时候,每个创建出来的对象不是直接返回的,而是通过interceptorChain.pluginAll(parameterHandler)返回的。 2、pluginAll获取到所有的Interceptor(拦截器)(插件需要实现的接口),调用Interceptor.pluginAll(target),...原创 2018-09-04 21:04:04 · 2904 阅读 · 0 评论 -
MyBatis学习笔记——逆向工程之代码生成器
MyBatis Generator代码生成器,顾名思义,就是帮你生成一些代码,从数据库分析表,生成Bean类、Mapper接口、Mapper XML。加入Jar依赖pom.xml加入如下依赖: <dependency> <groupId>org.mybatis.generator</groupId> ...原创 2018-08-21 14:57:38 · 1394 阅读 · 0 评论 -
MyBatis学习笔记——SSM整合(Spring4,SpringMVC4,MyBatis3)
构建环境导入Jar包pom.xml<dependencies> <!-- Spring/SpringMVC --> <dependency> <groupId>org.springframework</groupId> <artifac...原创 2018-08-20 21:09:00 · 285 阅读 · 0 评论 -
MyBatis学习笔记——缓存
一级缓存本地缓存,sqlSession级别的缓存,一级缓存是一直开启的。本质是SqlSession级别的一个Map。 与数据库同一次会话期间查询到的数据会存放在本地缓存中。 以后如果需要获取相同的数据,直接从缓存中拿,没必要再去查询数据库。 一级缓存失效情况(没有使用到当前一级缓存的情况,效果是,还需要向数据库发出查询)sqlSession不同sqlSession相同,查询条件不...原创 2018-08-20 17:25:38 · 157 阅读 · 2 评论 -
MyBatis学习笔记——动态SQL(if、trim、choose、set、foreach、sql)
动态拼接SQLif判断(1)新建Mapper接口public interface EmployeeMapperDynamicSQL { public List&amp;amp;amp;amp;amp;lt;Employee&amp;amp;amp;amp;amp;gt; getEmpsByConditionIf(Employee employee);}(2)新建Mapper XML```xml &amp;amp;amp;原创 2018-08-20 10:53:56 · 1502 阅读 · 0 评论 -
MyBatis学习笔记——全局配置文件
各种配置项可以在官方文档http://www.mybatis.org/mybatis-3/zh/configuration.html中查看。propertiesmybatis可以使用properties来引入外部properties配置文件的内容; —–resource:引入类路径下的资源 —–url:引入网络路径或磁盘路径下的资源 示例代码: &lt;proper...原创 2018-08-13 18:30:20 · 191 阅读 · 0 评论 -
MyBatis学习笔记——HelloWorld
全局配置文件有数据源一些运行环境信息,使用这个配置文件,可以创建一个SqlSessionFactory对象。 sql映射文件的配置也在该全局文件中配置。 代码如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config...原创 2018-08-13 11:22:02 · 169 阅读 · 0 评论 -
Mybatis学习笔记——select相关知识(返回集合类型、自定义映射[联合查询|分步查询|集合属性封装|鉴别器])
返回List编写接口方法public List&lt;Employee&gt; getEmpsByLastNameLike(String lastName);编写sql语句 &lt;!-- public List&lt;Employee&gt; getEmpsByLastNameLike(String lastName); --&gt; &lt;!-- resultT原创 2018-08-15 17:32:01 · 4640 阅读 · 0 评论 -
MyBatis学习笔记——MapperXML之增删改与参数处理(源码)
增删改使用接口式编程,在接口中直接增加对应的方法。public interface EmployeeMapper { public Employee getEmpById(Integer id); public Long addEmp(Employee emlpoyee); public Boolean updateEmp(Employee employe...原创 2018-08-14 14:22:47 · 930 阅读 · 0 评论 -
Mybatis学习笔记(五)-----配置文件中常用标签
where标签所属的文件:表的XML配置文件中。 所处的位置:配置文件中的<select>,<update>,<delete>等标签下。 作用: (1)避免直接使用where时,不想进行筛选时造成的语法错误。即有内容则输出,没内容则连where都不输出。 如:select * from student where造成的语法错误。 (2)避免下面的语句的多个判断条件拼接的语句前多出一个and原创 2017-10-12 18:13:44 · 309 阅读 · 0 评论 -
Mybatis学习笔记(四)-----一对多关系配置
增加表结构的XML此处为一个command的name,关联多个command的content信息。 即1个(name)对多个(content)。 command为主表,command_content为子表。 Command.xml的配置相对复杂,而CommandContent.xml相对简单。(1)首先为两个表增加BEAN类,负责接收数据。/**对应于command表*/public cla原创 2017-10-12 16:56:11 · 352 阅读 · 0 评论 -
Mybatis学习笔记(三)-----删除记录
单条删除步骤(1)在message.xml编写相关的delete标签。 <delete id="deleteOne" parameterType="int"> delete form MESSAGE where ID = #{_parameter} </delete>(2)在MessageDao中编写相关的delete方法。/**MessageDao.java*/pub原创 2017-10-10 16:43:43 · 311 阅读 · 0 评论 -
Mybatis学习笔记(一)-----SqlSession
SqlSessionSqlSession的作用:(1)向SQL语句传入参数 (2)执行SQL语句 (3)获取执行SQL语句的结果 (4)事务的控制如何得到SqlSession:(1)通过配置文件获取数据库连接的相关信息 (2)通过配置信息构建SqlSessionFactory (3)通过SqlSessionFactory打开数据库会话 根据以上三步,得到SqlSession,代码如下。/原创 2017-10-09 18:39:37 · 288 阅读 · 0 评论 -
MyBatis学习笔记——自定义TypeHandler(处理枚举)
默认TypeHandler处理枚举类型EnumTypeHandlerEnumTypeHandler使用的是枚举的名字。 EnumOrdinalTypeHandlerEnumOrdinalTypeHandler使用的是枚举的索引。 自定义TypeHandler处理枚举类型枚举类//希望数据库保存的是100,200这些状态码,而不是默认的0,1索引或者枚举的...原创 2018-09-06 12:32:12 · 4022 阅读 · 0 评论