主配置文件可以随意命名,其主要完成以下几个功能:
- 注册DB连接四要素的属性文件
- 注册实体类的全限定类名的别名
- 配置MyBatis运行环境,即数据源与事务管理器
- 注册SQL映射文件
1、注册属性文件
在标签<configuuration>选中时,F2可查看其描述信息,也可查看其子标签。
利用<properties>标签可以注册属性文件。
注册完成以后,在主配置文件中就可以使用${ }来获取属性文件中相应的value。
2、配置实体类的别名
如果在需要使用全限定类名的时候,一直使用全限定类名,那样就显得繁琐,比如后面要展示的查询所有数据,再比如指定一个SQL语句的返回值类型。此时就可以使用指定别名的方式来代替全限定类名。
对于实体类的全限定类名的别名的指定方式,有两种:
- 使用<package>方式(推荐)
- 使用<typeAlias>方式
一般使用<package>方式。这样做的好处是会将该包中的所有实体类的简单类名指定为别名,写法较简单方便。
<typeAliases>
<!-- 指定包,包中的类的简单类名作为别名 -->
<package name="com.wisver.beans" />
</typeAliases>
而通过<typeAlias>指定时,标签的属性type的值就是全限定类名,alias的值就是类的别名。
该方式的好处是可以指定任意名称为类的别名,弊端是,必须要逐个指定,当要起别名的类比较多时,就会比较繁琐。
< typeAliases>
<!-- typeAlias一行定义一个对象的别名,别名可自定义 -->
<typeAlias type="com.wisver.beans.Student" alias=”stu” />
</typeAliases>
3、配置MyBatis运行环境
<!-- 引用某个数据库的连接作为 MyBatis 的连接 -->
<environments default="mysql">
<!-- 配置数据库连接 可以有多个配置 ,如果有多个配置那么id不能重复 -->
<environment id="mysql">
<!-- 事务管理器 采用JDBC管理事务 -->
<transactionManager type="JDBC" />
<!-- 配置数据源 连接数据库 POOLED 连接池 采用连接池技术管理数据库连接 或 JNDI采用JNDI管理连接 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
3.1 <environments>标签
在<environments>中可以包含多个运行环境<environment>,但其default属性指定了当前MyBatis运行时所选择使用的环境。
<environment>的id属性为当前定义的运行环境的名称,可以任意命名。该名称会作为<environments>的default属性的值出现。
3.2 <transactionManager>标签
<transactionManager type=“JDBC”/>
该标签用于指定MyBatis所使用的事务管理器。MyBatis支持两种事务管理器类型:JDBC和MANAGED。
JDBC:使用JDBC的事务管理机制。即通过Connection的commit()方法提交,通过rollback()方法回滚。但默认情况下,MyBatis将自动提交功能关闭了,改为了手动提交。即程序中需要显式的对事物进行提交或回滚。
MANAGED:由容器来管理事务的整个生命周期(如Spring容器)。
3.3 <dataSource >标签
该标签用于配置MyBatis使用的数据源类型与数据库连接基本属性。常见类型有:UNPOOLED、POOLED、INDI等。
- UNPOOLED:不使用连接池。即每次请求,都会为其创建一个DB连接,使用完毕,会马上将此连接关闭。
- POOLED:使用数据库连接池来维护连接。
- INDI:数据源可以定义到应用的外部,通过INDI容器获取数据库连接。
4、注册SQL映射文件
指定映射文件的方式有多种,但是所有的方式都是在<mappers>标签中指定的。
- 通过<package name=” ”/>指定映射文件
- 通过<mapper resourse=””/>指定映射文件
- 通过<mapper class=” ”/>指定映射文件 (了解即可)
- 通过<mapper url=””/>来指定映射文件(了解即可)
4.1 <package name=””/>
当映射文件较多时,可以使用这种形式来指定。其中package的name属性指定映射文件所存放的包。
这种方式的使用需要满足一下几个条件:(同名同包全限定外加动态代理)
- 映射文件要与Dao接口名称相同
- 映射文件要与接口在同一包中
- 映射文件中<mapper>的namespace属性值为Dao接口的全限定类名。
- dao使用mapper动态代理实现
4.2 <mapper resource=””/>
这种情况下,有几个映射文件就需要写几个mapper标签,如:
<mappers>
<mapper resource="com/learn/c_primary/dao/IStudentDao-mapper.xml"/>
<mapper resource="com/learn/c_primary/dao/IStudentDao-mapper2.xml"/>
</mappers>
4.3 <mapper class=” ”/>
class属性的值时Dao接口的全限定类名。
这种方式的使用,需要满足以下几个要求:(同名同包全限定)
- 映射文件名要与Dao接口名称相同。
- 映射文件要与接口在同一包中。
- 映射文件中<mapper>的namespace属性值为Dao接口的全限定类名。
4.4 <mapper url=””/>
这种方式的好处是:可以将映射文件放在本地或网络的任意位置,通过其url地址即可直接访问。但通常映射文件是存放在当前应用中的,所以该方式不常用。
今天的文章MyBatis主配置文件的4个作用分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/30535.html