SqlMapConfig.xml文件和Mapper.xml文件参数详解

SqlMapConfig.xml配置文件的参数

SqlMapConfig.xml中配置的内容和顺序如下
1.properties(属性)
2.settings(全局配置参数)
3.typeAliases(类型别名)
4.typeHandlers(类型处理器)
5.objectFactory(对象工厂)
6.plugins(插件)
7.environments(环境集合属性对象)
8.environment(环境子属性对象)
9.transactionManager(事务管理)
10.dataSource(数据源)
11.mappers(映射器)

常用到的几个参数信息

1.properties(在这里我们可以引用java属性文件中的配置信息(例如数据库的基本信息))
我们新建一个资源文件夹(在idea下创建这个比较麻烦),具体过程是
右键项目创建一个普通文件夹
在这里插入图片描述
然后打开
在这里插入图片描述
进去里面找到model
在这里插入图片描述
然后我们就可以把配置文件放到这里了(其下还可以创建子包,方便整合其它框架时的配置文件)
在这里插入图片描述
其中db.properties文件就是我们把数据库信息提取到这里,然后再SqlMapConfig文件中用ognl表达式获取,这样做的目的是以后修改数据库的内容就更加方便
在这里插入图片描述
接下来就去SqlMapConfig文件中加载即可
在这里插入图片描述
测试一下根据id查询是否成功(其它配置查看这里
在这里插入图片描述
其中还要注意一些问题

MyBatis 将按照下面的顺序来加载属性:

1.在 properties 元素体内定义的属性首先被读取。

2.然后会读取properties 元素中resource或 url 加载的属性,它会覆盖已读取的同名属性。

3.最后读取parameterType传递的属性,它会覆盖已读取的同名属性。

所以给出建议
1.不要在properties元素体内添加任何属性值,只将属性值定义在properties文件中。

2.在properties文件中定义属性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX

2.setting(全局配置参数)
mybatis框架在运行时可以调整一些运行参数。
比如:开启二级缓存、开启延迟加载。。
全局参数将会影响mybatis的运行行为。(参数很多,来源于网络收集,用到再翻开来查看)
在这里插入图片描述
3.typeAliases(类型别名)(常用)
如果开发过程中每次resultType或者parameterType都要指定类的全路径,这样开发起来就很麻烦,所以引入类型别名
在mybatis中支持默认的类型别名,如下所示
可以看出就是基本类型和包装类型都可以直接使用
在这里插入图片描述
然后还有们自定义的类型(pojo类型)
在这里插入图片描述
现在我们去使用一下这个别名(在mapper.xml文件中)
在这里插入图片描述
测试一下效果
在这里插入图片描述
4.mappers(映射配置
1.通过resource加载单个映射文件
在这里插入图片描述
2.通过mapper接口加载单个mapper
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.批量加载mapper(推荐使用)
在这里插入图片描述
在这里插入图片描述

Mapper.xml文件参数

1.id:标识sql的statement
2.parameterType:输入类型
3.resultType
4.resultMap

parameterType

1.当传入简单类型时
在这里插入图片描述
但是${}这个占位符传入简单类型时只能使用value
在这里插入图片描述
如果传入的是pojo时,那么就应该用ognl表达式传值
在这里插入图片描述
测试一下
在这里插入图片描述
结果
在这里插入图片描述
如果你其中的属性名字输入错误的话就会这样
在这里插入图片描述
结果
在这里插入图片描述
如果包装类的话那么应该用包装类.包装类属性名获取值
首先我们创建一个pojo类,它的属性就是user
在这里插入图片描述
去mapper.xml文件配置好
在这里插入图片描述
在Mapper接口中配置好
在这里插入图片描述
测试类
在这里插入图片描述
结果
在这里插入图片描述

resultType

使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。

1.如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象。

2.只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象。

1.输出简单类型(只有查询结果为一条记录且只有一个字段才能使用),例如查询相同用户名的数量

配置mapper.xml文件
在这里插入图片描述
编写接口方法
在这里插入图片描述
手动向数据库加入重复信息
在这里插入图片描述
测试类
在这里插入图片描述
结果
在这里插入图片描述
2.输出pojo对象或者列表,不管是单个用户还是一个列表,在指定resultType类型是一样的
比如下面的根据id查询一个用户和根据用户名模糊查询多个用户
在这里插入图片描述
在这里插入图片描述
mapper接口方法,可见最后的返回值根据我们的查询经验得另一个是用列表形式的
在这里插入图片描述
在这里插入图片描述
测试类
在这里插入图片描述
在这里插入图片描述
结果
在这里插入图片描述
在这里插入图片描述
可知底层是根据接口的返回值调用selectOne或者selectList方法的

resultMap实现高级输出结果映射

如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系,就可以让结果不为空了
映射配置文件如下
在这里插入图片描述
mapper接口方法编写如下
在这里插入图片描述
测试类
在这里插入图片描述
结果
在这里插入图片描述

总结resultType和resultMap的不同

1.使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。

2.如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。

基本配置内容就学习到这里,mapper.xml文件中还有一个动态sql内容就下次再来搞清楚把

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值