MyBatis学习
qq_36901488
这个作者很懒,什么都没留下…
展开
-
MyBatis_简介
MyBatis其实就是IBatis3.0以后的版本 一个非常优秀的持久化层框架,持久化层就是跟数据库交互的框架 我们以前学过JDBC→Dbutils(QueryRunner)→jdbcTemplate:这些都只能算是小工具 这是我们用工具要走的步骤,工具功能简单,sql语句编写在java代码里面,这就导致了如果你想要修改一个sql语句的话,你就必须在项目中找到源码sql所在的位置,再修...翻译 2018-05-27 10:45:44 · 440 阅读 · 0 评论 -
MyBatis_全局配置文件_databaseIdProvider_多数据库支持
MyBatis可以执行不同的SQL语句,根据不同的数据库而改变,databaseIdProvider就是在MyBatis在移植性方面提供的支持 想要多数据库支持要在全局配置文件中配置databaseIdProvider标签:<!-- 5、databaseIdProvider:支持多数据库厂商的; type="DB_VENDOR"是固定写法:VendorDatabase...翻译 2018-05-31 17:53:59 · 631 阅读 · 1 评论 -
MyBatis_缓存
目录目录缓存简介一级缓存二级缓存缓存简介MyBatis系统中默认定义了两级缓存。一级缓存和二级缓存。 默认情况下,只有一级缓存(SqlSession级别的缓存, 也称为本地缓存)开启。 二级缓存需要手动开启和配置,他是基于namespace级 别的缓存。 为了提高扩展性。MyBatis定义了缓存接口Cache。我们 可以通过实现Cache接口来自定义二...原创 2018-06-14 16:59:08 · 270 阅读 · 0 评论 -
MyBatis_collection分步查询&延迟加载
collection分步查询:先根据部门id查询到Department,然后再根据部门id查出Employee表中的所有员工 在接口DepartmentMapper.java中定义方法:public Department getDeptByIdStep(Integer id);还要在接口EmployeeMapperPlus.java写一个根据部门id查出Employee表中的所有员工的方...原创 2018-06-07 21:45:09 · 877 阅读 · 1 评论 -
MyBatis_collection定义关联集合封装规则
刚刚翻译 2018-06-07 17:45:47 · 829 阅读 · 0 评论 -
MyBatis_全局配置文件_mappers_sql映射注册
<!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 --> <!-- 6、mappers:将sql映射注册到全局配置中 --> <mappers> <!-- mapper:注册一个sql映射 ...翻译 2018-06-01 10:46:57 · 599 阅读 · 0 评论 -
MyBatis全局变量xml文件中标签的顺序
为什么在我这里不按顺序也可以啊标签的顺序,从上到下 : (properties ==> settings ==> typeAliases ==> typeHandlers ==> objectFactory ==> objectWrapperFactory ==> reflectorFactory ==> plugins ==> environm...翻译 2018-06-01 10:59:02 · 757 阅读 · 1 评论 -
MyBatis_分步查询传递多列值&fetchType
无论是association还是collection标签在做分步查询时,都要传入一个原创 2018-06-08 16:01:55 · 2255 阅读 · 0 评论 -
MyBatis_缓存整合ehcache
党的原创 2018-06-15 13:06:59 · 167 阅读 · 0 评论 -
MyBatis_映射文件_增删改查
在EmployeeMapper.java中加入 public Long addEmp(Employee employee); public boolean updateEmp(Employee employee); public void deleteEmpById(Integer id);然后到SQL映射文件(EmployeeMapper.xml)中实现 ...翻译 2018-06-01 16:40:13 · 271 阅读 · 0 评论 -
MyBatis_select_resultMap_discriminator鉴别器
MyBatis可以根据discriminator鉴别器判断某列的值来改变其封装行为 现在我们来模拟场景,在封装Employee的时候: 如果查出的是女生:就把部门信息查询出来,否则不查询; 如果是男生,把last_name这一列的值赋值给emailgg; &lt;resultMap type="com.atguigu.mybatis.bean.Employee" id="My...原创 2018-06-08 16:37:23 · 218 阅读 · 0 评论 -
MyBatis_映射文件_insert_获取自增主键的值
获取自增主键的值 mysql支持自增主键,自增主键值的获取,mybatis也是利用statement.getGenreatedKeys(); useGeneratedKeys=&quot;true&quot;:开启使用自增主键获取主键值策略 keyProperty指定对应的主键属性,也就是mybatis获取到主键值以后,将这个值封装给javaBean的哪个属性&amp;lt;insert id=&quot;addEmp&a翻译 2018-06-01 19:17:39 · 590 阅读 · 0 评论 -
MyBatis_单个参数&多个参数&命名参数
单个参数:mybatis不会做特殊处理, #{参数名/任意名}:取出参数值。在接口EmployeeMapper.java中有public Employee getEmpById(Integer id);EmployeeMapper.xml中用#{id}取出参数值,因为只有一个,用任意名也可以 &lt;select id="getEmpById" resultType...翻译 2018-06-02 14:57:32 · 4797 阅读 · 1 评论 -
MyBatis_参数处理_POJO&Map&TO
POJO:(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans 如果多个参数正好是我们业务逻辑的数据模型,我们就可以直接传入pojo;public boolean updateEmp(Employee employee);#{属性名}:取出传入的`pojo`的属性值 &amp;amp;lt;!-- public void updateEm...翻译 2018-06-02 15:21:48 · 519 阅读 · 0 评论 -
MyBatis_动态sql
新建一个新的接口EmployeeMapperDynamicSQL.java 然后新建一个与之对应的EmployeeMapperDynamicSQL.xml映射文件原创 2018-06-10 13:49:30 · 272 阅读 · 0 评论 -
MyBatis_全局配置文件_enviroments_运行环境
environments:环境们,mybatis可以配置多种环境 ,default指定使用某种环境。比如<environments default="test">就是使用<environment id="test">这个环境,<environments default="development">就是使用<environment id="d翻译 2018-05-31 17:00:12 · 293 阅读 · 0 评论 -
MyBatis_association分步查询&延迟加载
既然我们有一个Department表,那么我们应该也要有一个接口DepartmentMapper.java去操作它 里面可以写各种方法package com.atguigu.mybatis.dao;import com.atguigu.mybatis.bean.Department;public interface DepartmentMapper { public Dep...翻译 2018-06-07 11:27:31 · 324 阅读 · 0 评论 -
MyBatis下载
去github下载: https://github.com/mybatis/mybatis-3/ 然后点版本: 下载需要版本的jar包和源码包:翻译 2018-05-27 11:48:37 · 1736 阅读 · 0 评论 -
MyBatis的HelloWorld
我们先创建一个新的数据库,名字叫MyBatis 然后在MyBatis数据库中新建表tb1_employee:create table tb1_employee(id int(11) primary key auto_increment,last_name varchar(255),gender char(1),email varchar(255))然后在里面添加一条数据:U...翻译 2018-05-27 13:18:24 · 288 阅读 · 0 评论 -
MyBatis_参数处理_#与$取值区别
#{}:可以获取map中的值或者pojo对象属性的值,只能取出参数位置的值;select * from #{tableName} where id=${id} and last_name=#{lastName}向上面的#{tableName}是取不到的,因为它不是参数位置的值 #{}:是以预编译的形式,将参数设置到sql语句中;PreparedStatement;防止sql注入 ...翻译 2018-06-03 19:38:32 · 309 阅读 · 0 评论 -
MyBatis学习接口式编程
首先我们创建一个接口(interface):package com.atguigu.mybatis.dao;import com.atguigu.mybatis.bean.Employee;public interface EmployeeMapper { public Employee getEmpById(Integer id);}MyBatis提供了一个功...翻译 2018-05-28 10:13:15 · 209 阅读 · 0 评论 -
MyBatis_select_返回List
select元素 Select元素来定义查询操作Id:唯一标识符 用来引用这条语句,需要和接口的方法名一致 parameterType:参数类型 可以不传,MyBatis会根据TypeHandler自动推断 resultType:返回值类型 别名或者全类名,如果返回的是集合,定义集合中元 素的类型。不能和resultMap同时使用 在EmployeeMapper.java中写方法...翻译 2018-06-04 13:46:18 · 3032 阅读 · 0 评论 -
MyBatis_select_记录封装map
在EmployeeMapper.java中写方法://返回一条记录的map;key就是列名,值就是对应的值 public Map&lt;String, Object&gt; getEmpByIdReturnMap(Integer id);在EmployeeMapper.xml中实现方法:&lt;!--public Map&lt;String, Object&gt; getEmp...翻译 2018-06-04 14:18:13 · 643 阅读 · 0 评论 -
MyBatis_全局配置文件_引入dtd约束
想要在mybatis-config.xml中敲代码有提示,要引入.did文件,我们都知道.dtd文件是用来规定xml中的标签语法规则的 找到下图两个文件: 怎么找?先找到mybatis-3.4.1.jar包,然后用解压缩软件打开,按照mybatis-3.4.1.jar\org\apache\ibatis\builder\xml这个路径可以找到那两个.dtd文件,然后把它们复制出来找个文件夹...翻译 2018-05-28 14:21:51 · 2306 阅读 · 1 评论 -
MyBatis_parameter&_databaseId & bind 绑定
mybatis默认还有两个内置参数:_parameter:代表整个参数 单个参数:_parameter就是这个参数原创 2018-06-11 14:37:33 · 806 阅读 · 0 评论 -
MyBatis_sql_抽取可重用的sql片段
&lt;sql&gt;是一个与&lt;insert&gt;,&lt;select&gt;等增删改查同级别的标签,作用是抽取可重用的sql片段。方便后面引用 可以将经常要查询的列名,或者插入用的列名抽取出来方便引用,像这样子抽取出来:&lt;sql id="insertColumn"&gt; employee_id,last_na原创 2018-06-11 21:46:02 · 3154 阅读 · 0 评论 -
MyBatis_全局配置文件_properties_引入外部配置文件
<!-- 1、mybatis可以使用properties来引入外部properties配置文件的内容; resource:引入类路径下的资源 url:引入网络路径或者磁盘路径下的资源 --> <properties resource="dbconfig.properties"></properties...翻译 2018-05-29 13:50:21 · 1117 阅读 · 0 评论 -
MyBatis_全局配置文件_settings_运行时行为设置
settings包含很多重要的设置项 setting:用来设置每一个设置项name:设置项名value:设置项取值 只展示其中一个设置项,有的以后再展示 展示mapUnderscoreToCamelCase:是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名A_COLUMN到经典Java属性名aColumn的类似映射.可以看到_后面的第一个首字母大写 还记得我们...翻译 2018-05-29 18:52:08 · 471 阅读 · 0 评论 -
MyBatis_全局配置文件_typeAliases_别名
typeAliases:MyBatis中的别名处理器,可以为我们的java类型起别名 别名可以用到哪里呢? 可以用到EmployeeMapper.xml中的&lt;select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"&gt; select * from tb1_employee wher...翻译 2018-05-29 19:16:28 · 224 阅读 · 0 评论 -
MyBatis_自定义结果映射规则
自定义resultMap,实现高级结果集映射 在EmployeeMapperPlus.xml中有:package com.atguigu.mybatis.dao;import java.util.List;import com.atguigu.mybatis.bean.Employee;public interface EmployeeMapperPlus { pu...翻译 2018-06-06 13:40:53 · 646 阅读 · 0 评论 -
MyBatis_映射文件_select_resultMap_关联查询
假设我们想在查询Employee的同时查询员工对应的部门,就是一个Employee对应一个Department,一个员工有与之对应的部门信息; 我们在Employee.java中添加部门属性: private Department dept; public Department getDept() { return dept; } publi...翻译 2018-06-07 10:51:12 · 203 阅读 · 0 评论 -
MyBatis_整合Spring+SpringMVC
需要先查看不同MyBatis版本整合Spring时对应使用的适配包: 然后到GitHub下载自己MyBatis版本对应的整合适配包 : 下载下来后解压出来,这就是我们需要的jar了 然后我们就可以开始新建项目整合了:...原创 2018-06-19 20:52:19 · 442 阅读 · 0 评论