mybatis学习
丶小颜
这个作者很懒,什么都没留下…
展开
-
(一)Mybatis的入门教程——HelloWorld和接口式编程
先创建一个测试表(员工表):CREATE TABLE `tbl_employee` ( `id` int(11) NOT NULL AUTO_INCREMENT, `last_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `gender` char(1) COLLATE utf8mb4_unicode_ci...原创 2018-08-10 10:59:48 · 227 阅读 · 0 评论 -
(十三)Mybatis的入门教程—— 缓存有关的设置、属性、原理等
和缓存有关的设置/属性:1、全局配置文件中cacheEnabled = true/false 开启缓存/关闭缓存,首先会关闭二级缓存,一级缓存一直可用。2、映射文件中每个select标签都有useCache="true",使用缓存;false就是不使用二级缓存,但一级缓存仍然使用。3、每个增删改标签中默认flushCache="true",意思是增删改执行完之后就会清除缓存。两级缓存...原创 2018-08-21 17:18:57 · 545 阅读 · 0 评论 -
(十二)Mybatis的入门教程—— 缓存机制
缓存的作用:提高系统的运行速度,提升查询效率。mybatis系统中默认定义了两级缓存:一级缓存和二级缓存。1、默认情况下,只有一级缓存(SqlSession级别的缓存,也称为本地缓存)开启。2、二级缓(也称为全局缓存)存需要手动开启和配置,它是基于namespace级别的缓存。3、为了提高扩展性。mybatis定义了缓存接口Cache,我们可以通过实现Cache接口来自定义二级缓存...原创 2018-08-21 13:59:34 · 218 阅读 · 0 评论 -
(十一)Mybatis的入门教程—— 动态sql之内置参数、bind绑定和抽取重用sql片段
Mybatis中两个内置参数不止是方法传递过来的参数可以被用来判断、取值等操作,mybatis默认还有两个内置参数:_parameter和_databaseId。_parameter:代表整个参数。单个参数:_parameter就是这个参数;多个参数:参数会被封装为一个map;_parameter就是代表的这个map_databaseId:如果配置了DatabaseIdProv...原创 2018-08-16 17:15:17 · 921 阅读 · 0 评论 -
(十)Mybatis的入门教程—— 动态sql之 foreach标签
foreach遍历集合foreach标签:collection属性:指定要遍历的集合;其中list类型的参数会特殊处理封装在map中,map的key就叫listitem属性:将当前遍历出的元素赋值给指定的变量,然后利用 #{ 变量名 }:就能取出变量的值 即当前遍历出的元素separator属性:每个元素之间的分隔符open属性:遍历出所有结果拼接一个开始的字符close属...原创 2018-08-16 14:34:31 · 704 阅读 · 0 评论 -
(四)Mybatis的入门教程—— 参数处理
单个参数:#{ 参数名 } :取出参数值单个参数的情况下,mybatis不会做特殊处理,括号里面写啥都可以。举例:此处传入的是id,但是在sql语句中,将参数名修改成其他东西,该sql语句也是可行的。 多个参数:mybatis会做特殊处理,多个参数会被封装成一个map,#{ } 就是从map中获取指定的key的值。key:param1...paramN ...原创 2018-08-13 19:24:08 · 239 阅读 · 1 评论 -
(三)Mybatis的入门教程—— 获取自增主键的值
这里获取到的SqlSession是不会自动提交数据的;需要手动提交数据;当然也要注意每次会话结束,就要关闭一下。如果传入true/false,作为是否自动提交的判断,则可以省去手动提交的步骤mysql支持自增主键,自增主键值的获取;同样,mybatis也是利用statement.getGenreatedKeys( )这个方法的。在sql映射文件中的sql语句的标...原创 2018-08-13 14:59:04 · 280 阅读 · 0 评论 -
(九)Mybatis的入门教程—— 动态sql之trim、set、choose标签
trim(where(封装查询条件),set(封装修改条件))标签:自定义字符串的截取规则接口public interface EmployeeMapperDynamicSQL{ public List<Employee> getEmpsByConditionTrim(Employee employee);}映射文件trim标签体中是整个字符串拼串后的结果...原创 2018-08-15 18:47:21 · 521 阅读 · 0 评论 -
(八)Mybatis的入门教程—— 动态sql之if标签
场景:查询员工要求——携带了哪个字段,查询条件就带上这个字段的值接口public interface EmployeeMapperDynamicSQL{ //携带了哪个字段查询条件就带上这个字段的值 public List<Employee> getEmpsByConditionIf(Employee employee);}映射文件使用if 标签...原创 2018-08-15 15:53:15 · 937 阅读 · 0 评论 -
(七)Mybatis的入门教程—— resultMap之discriminator鉴别器
mybatis可以使用discriminator鉴别器判断某列的值,然后根据某列的值改变封装行为举例:封装Employee,如果查出的是女生,就把部门信息查询出来,否则不查询;如果是男生,把last_name这一列的值,赋值给email。映射文件discriminator标签column:制定判定的列名javaType:列值对应的java类型case标签中,对女生查询的...原创 2018-08-15 10:47:08 · 1162 阅读 · 0 评论 -
(六)Mybatis的入门教程—— resultMap的应用(关联查询)和collection相关用法
场景:查询部门的时候,把部门对应的所有员工信息也查询出来javabeanpublic class Department{ private Integer id; private String departmentName; private List<Employee> emps;//省略setter、getter方法}接口public i...原创 2018-08-14 19:27:21 · 291 阅读 · 0 评论 -
(五)Mybatis的入门教程—— resultMap的应用(关联查询)和association相关用法
场景:查询Employee的同时查出员工对应的部门一个Employee对应一个Department,每一个员工都有他的department信息,且department信息也在Employee对象当中。public class Employee{ private Integer id; private String lastName; private String ...原创 2018-08-14 17:24:57 · 490 阅读 · 0 评论 -
(四)Mybatis的入门教程—— 跟select(查询)相关的一些操作
select元素是用来定义查询操作的。id:唯一标识符;用来引用这条语句,需要和接口的方法名一致parameterType:参数类型;可以不传值,MyBatis会根据TypeHandler自动推断resultType:返回值类型;别名或者全类名,如果返回的是集合,则定义集合中元素的类型。不能和resultMap同时使用resultType案例一:返回list接口pub...原创 2018-08-14 14:10:15 · 259 阅读 · 0 评论 -
(二)Mybatis的入门教程——全局配置文件中各标签作用
在全局配置文件的文档声明处,引入了一个XML的dtd约束文件,就是用来规定XML中标签语法规则的。标签含义及作用(1)properties标签的作用:mybatis可以使用这个标签来引入外部properties配置文件的内容就是在数据源的一些属性配置,写在外部的配置文件(properties配置文件)中保存。 resource属性是为了引入类路径下的资源;url属性...原创 2018-08-10 18:04:03 · 1603 阅读 · 0 评论 -
十道常见的mybatis面试题
1. #{}和${}的区别是什么?#{}是预编译处理,${}是字符串替换。Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;Mybatis在处理时,就是把{}替换成变量的值。使用#{}可以有效的防止SQL注入,提高系统安全性。2. 通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么...转载 2019-06-24 17:20:27 · 267 阅读 · 0 评论