MyBatis
文章平均质量分 91
GodAiro
hey
展开
-
自定义映射resultMap(处理一对多、多对一映射)
这里注意一下:我们的表用的是下划线,而实体类用的是驼峰命名。这时候通过mybatis查询,这个时候字段跟属性肯定是对应不上的。我们之前都写过JDBC工具类,其实就是把查询出来的字段名,通过反射获取对应的属性名,然后来进行赋值。但是这里属性名和字段名不一样,该怎么赋值?这时候我们建一个查询环境此时查询出来的应该是什么样的?字段名跟属性名一致的话,那它们一定是相对应的,可以查出来,但是员工id,员工姓名,字段名和属性名不一致。创建测试类。原创 2022-09-01 23:33:48 · 3416 阅读 · 1 评论 -
特殊SQL的执行——模糊查询、批量删除等
这里我们要注意,这样写的SQL语句是有问题的,我们不能在模糊查询里这么用'%#{fuzzy}%',也就是说在这里不能用#{},因为#{}相当于占位符赋值,占位符赋值解析完之后,会变成一个占位符问号来表示,这个时候要给问号占位符赋值,那就要用预编译对象中的set来赋值,但是我们要注意,这个问号是在单引号里面,这个时候问号属于字符串的一部分,所以这个时候问号并不会当作占位符来解析,我们来看一下报错信息。既然#{}不行,那么我们换为${},因为${}相当于字符串拼接,它会把参数的值拼接到SQL语句中。原创 2022-08-22 14:16:23 · 1861 阅读 · 0 评论 -
MyBatis的各种查询功能
因为Map集合也可以存储多条数据,但是map和list不一样,你可以直接把每条数据转换为的map放在list中,但是不能把每条数据转换为的map放在map集合中,因为map是键值对,我们查出来的数据作为值,但是谁作为键呢?我们一般查询完一条数据都要转换为实体类对象,但是有这么个情况,我们查询出来的结果没有相对应的实体类,就比如说我们现在查询的结果里面有分组函数,比如说我们要查这个部门里的最高薪资,最低薪资,以及薪资总和,这时候并没有相应的实体类。实体类里的属性就是固定的,而Map集合里的键不固定。原创 2022-08-22 14:02:07 · 3522 阅读 · 0 评论 -
MyBatis获取参数值的两种方式
MyBatis获取参数值的两种方式:${}和#{}${}的本质就是字符串拼接,#{}的本质就是占位符赋值 ${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号。原创 2022-08-22 11:19:22 · 2399 阅读 · 0 评论 -
MyBatis核心配置文件
这个是主要配置数据库的连接环境。在environments里面可以设置很多个environment,我们现在就设置了一个配置连接数据库的环境,它叫开发环境,那么下面我们还可以设置,比如说我们下面把id改为test,这里叫测试环境。我们都知道id是唯一标识,不能重复,在真正的开发中,不可能同时使用2个环境,这里肯定会使用其中的某一个,这时候environments标签里有个default属性就很重要了,来设置当前默认使用环境的id。原创 2022-08-22 10:20:59 · 1530 阅读 · 3 评论 -
测试Mybatis流程
(1)获取核心配置文件的输入流,这里有个类是Resources,是org.apache.ibatis.io里面的,这里面提供了一个getResourceAsStream,这个是获取当前某个文件所对应的字节输入流,我们的核心配置文件记录的是如何配置连接数据库,核心配置文件也引入了映射文件,也就是映射文件的SQL,所以要是想实现mybatis的功能,我们需要知道核心配置文件写了什么。原创 2022-08-22 10:08:15 · 797 阅读 · 0 评论