文章目录
SqlMapConfig.xml文件中配置内容和顺序
咳咳…首先SqlMapConfig.xml中配置的内容和顺序如下:
properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
environment(环境子属性对象)
transactionManager(事务管理)
dataSource(数据源)
mappers(映射器)
其中SqlMapConfig.xml文件中重点配置为:properties属性、typeAliases别名、mappers映射
SqlMapConfig.xml文件中重点配置
重点配置为:properties属性、typeAliases别名、mappers映射
properties属性
SqlMapConfig.xml可以引用java属性文件中的配置信息如下:
config下定义db.properties文件
在config下定义db.properties文件,如下所示:
配置db.properties配置文件
db.properties配置文件内容如下:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
SqlMapConfig.xml引用db.properties文件
SqlMapConfig.xml引用db.properties文件如下:
MyBatis加载属性顺序
注意: MyBatis 将按照下面的顺序来加载属性:
1、在元素体内定义的首先被读取
2、 然后读取元素中resource或者url加载的属性,它会覆盖已读取的同名属性
3、最后读取parameterType传递的属性(使用${}这种方式,不是#{}这种方式),它会覆盖已读的同名属性
一般开发中不会在元素体内添加任何属性值,只将属性值定义在properties文件中
typeAliases别名
为啥会出现别名配置这种操作呢?是因为在mapper.xml中定义了很多的statement,statement需要parameterType来指定输入参数的类型、mapper.xml需要resultType来指定输出结果的类型,在指定类型时输入类型全路径,会很长,不方便进行开发,于是针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名< typeAliases >来定义,方便开发,提高开发效率。
默认支持的一些别名
mybatis有默认支持的一些别名,一般基本类型都有别名,如下:
自定义别名
自定义别名:在SqlMapConfig.xml 中配置如下:
<configuration>
<typeAliases>
<!-- 单个别名定义 -->
<typeAlias alias="user" type="mybatis.po.User" />
<!-- 批量别名定义,扫描整个包下的类,别名为类名(大小写不敏感)【常用】 -->
<package name="mybatis.po" />
<package name="其它包" />
</typeAliases>
</configuration>
自定义别名在SqlMapConfig.xml 中配置完之后,mapper.xml配置文件中就可以使用设置的别名了,别名大小写不敏感,比如User可以写成user。
效果如下:
别名小结
typeAliases别名小结:
1、mybatis有默认支持的一些别名,也可以在SqlMapConfig.xml中配置自定义别名
2、两种方法配置别名
方法一:单个别名定义 :< typeAlias alias=“user” type=“类路径” />
方法二:批量别名定义: < package name=“包路径” />
扫描整个包下的类,别名为类名(大小写不敏感)【常用】
方法二更加方便,不需要一个一个配置,开发中一般用方法二
mappers映射
mappers映射主要作用是给各个mapper.xml文件一个标识,也可以理解为mapper.xml要在
< mappers >里面注册,才能使用。
Mapper配置常见的几种方法:
<mappers>
<!-- <mapper resource="sqlmap/User.xml" class="" url=""/> -->
<!-- <mapper resource="sqlmap/User.xml" class="" url=""/> -->
<!-- <mapper class="com.gx.mybatis.mapper.UserMapper" /> -->
<!-- <mapper url="" /> -->
<!-- <mapper resuruce="sqlmap/User.xml" /> -->
<package name="com.gx.mapper"/>
</mappers>
1.使用相对于类路径的资源单个映射
< mapper resource=" " />
如:< mapper resource=“sqlmap/User.xml” />
2.使用mapper接口类路径
< mapper class=" " />
如:< mapper class=“com.gx.mybatis.mapper.UserMapper”/>
注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。
3.注册指定包下的所有mapper接口【常用】
< package name=""/>
如:< package name=“com.gx.mybatis.mapper”/>
注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。
后两种方法的注意事项
后两种方法的注意事项如下图: