mybatis学习笔记-03
Posted 宏远小七
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis学习笔记-03相关的知识,希望对你有一定的参考价值。
mybatis学习笔记-03
这篇文章来学习更多的方便我们学习的技巧。
1.引入外部配置文件
在官方文档中的核心配置文件(mybatis-config.xml)中,给出的代码如下图↓,我所指出的4个点都是通过引入外部配置文件实现的。
引入方法
- 在resource目录下创建db.properties配置文件
代码如下:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username=root
password=root
- 在mybatis-config.xml中修改代码
<!-- 引入外部配置文件-->
<properties resource="db.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
注意
== xml配置文件修改代码前一定要引入外部文件。==
如果引入外部文件如下代码所写↓:
<!-- 引入外部配置文件-->
<properties resource="db.properties">
<property name="username" value="root"/>
<property name="password" value="root"/>
</properties>
可以直接引入外部文件;也可以增加一些属性。
但如果和外部文件有相同字段,优先选择外部文件!也就是两个相同字段,外部配置文件是对的,内部重新写的是错误的,结果是可以运行成功的,反之则运行失败。
2.别名设置
类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写。例如:
<typeAliases>
<!-- 通过一个类设置别名-->
<typeAlias type="com.ZXF.pojo.User" alias="user"/>
<!-- 通过包设置别名,别名一般都是用类的小写
<package name="com.ZXF.pojo"/> -->
</typeAliases>
设置完别名后,如果是通过类设置别名的只需要在UserMapper.xml中的resultType写入相应的别名就可以了;
在我后续的文章中也会用到别名!
用包设置别名的写对应类的小写类型就可以,有一些基本类型参考文档的别名命名。↓
3.绑定mapper事件
MappersRegistry :注册绑定mapper事件。
- 方式一:使用resource注册(推荐使用)
<mappers>
<mapper resource="com/ZXF/dao/UserMapper.xml"/>
</mappers>
- 方式二:使用class注册
<mappers>
<mapper class="com.ZXF.dao.UserMapper"/>
</mappers>
这个方法在我下一篇文章中的一个点(使用注解进行简单CRUD时会用到)。
注意点:
- 接口和它的mapper配置文件必须同名;
- 接口和它的mapper配置文件必须同一包下。
- 方式三:使用package注册
<mappers>
<package name="com.ZXF.dao"/>
</mappers>
这个方式也是有以下注意↓
注意点:
- 接口和它的mapper配置文件必须同名;
- 接口和它的mapper配置文件必须同一包下。
4.结果集映射
resultMap:这个是用于结果集映射,需要和resultType区别;在我上一篇文章的注意点有提到这两个,没看过的可以点这里mybatis学习笔记-02
在我做项目时,有时会命名错属性名,在实体类的命名和数据库对应表的命名不一致时,我们可以通过resultMap来获取数据:
写在接口对应的xml配置文件中:
<resultMap id="byID" type="user">
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>
<select id="getUserById" resultMap="byID">
select * from mybatis.user where id=#{id};
</select>
id要和resultMap的属性名对应,column对应数据库的属性名,property对应实体类的属性名。
关于核心配置文件
这篇文章有几点是要在核心配置文件中设置行为或者属性信息。
这个行为或者属性信息的位置不是可以随意设置的,如果不遵守规范,会报出一下错误;
也就是这一段文字:
The content of element type “configuration” must match “(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)”.
系统会提示,你必须根据它的规范进行设置。我们也可以从官网中看到,核心配置文件需要按照指定的位置进行行为或者属性信息的设置。
这是我mybatis自学笔记的第3篇,前两篇的链接↓
mybatis学习笔记-01
mybatis学习笔记-02
本篇文章到这就结束了。自学不易,如果写得不详细,可以结合官方文档看,也可以评论区交流,这篇文章有可以优化的地方希望大佬指教指教。
以上是关于mybatis学习笔记-03的主要内容,如果未能解决你的问题,请参考以下文章