mybatis配置文件的主要作用
1:注册数据库配置文件 db.properties,方便使用
2:注册实体类 JavaBean 的全限定性类名的别名
3:配置MyBatis运行环境,即配置数据源和事务管理器
4:注册映射文件的 mappeer
## 配置文件详解
# 1 注册 db.properties属性文件
该配置的作用就是注册数据库配置文件,这样就可从数据库配置文件中获取配置信息
<!-- 注册配置文件 --> <properties resource="db.properties"></properties># 2 注册实体类 JavaBean 的全限定性类名的别名
在编写Mapper配置文件时需要写上一些JavaBean类的全限定名称,造成比较繁琐,所以可以使用 typeAliases标签设置该javabean类的别名;例如下方的配置,当该类在mapper中使用时,就可直接使用所配置的别名(student)
<!-- 将类 com.doaoao.bean.Student 的别名设置为 student--> <typeAliases> <typeAlias type="com.doaoao.bean.Student" alias="student"/> </typeAliases>当有多个JavaBean时,按照上方的方法我们就得配置多个typeAlias,这时我们可以使用package指定一个包名,mybatis会在该包下搜索需要的JavaBean,当指定一个包名时,会将该包下的类的首字母变成小写作为该类的别名。例如 com.doaoao.bean.Student,该类的默认别名就是 student,下方为使用方法
<typeAliases> <package name="com.doaoao.bean"/> </typeAliases>也可以不适用系统自己定义的别名,那就使用注解 @Alias自定义一个别名
@Alias("xuesheng") public class Student { private int id; private String name; private int age; private double score; }# 注:mybatis为一些常见的类建立了别名
别名 映射的类型 _byte byte _long long _short short _int int _integer int _double double _float float _boolean boolean string String byte Byte long Long short Short int Integer integer Integer double Double float Float boolean Boolean date Date decimal BigDecimal bigdecimal BigDecimal object Object map Map hashmap HashMap list List arraylist ArrayList collection Collection iterator Iterator# 3 配置MyBatis的运行环境
通常在较大规模的项目中,项目在开发时会使用多个数据库,在开发阶段可能选择本地数据库,在测试时选择另一个数据库,在上线时选择另一个数据库,所以可以利用mybatis中的配置选择哪个数据库
<environments default="development"> <!-- 使用本地数据库 --> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> <!-- 其它数据库 --> <environment id="online"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.online.driver}"/> <property name="url" value="${jdbc.online.url}"/> <property name="username" value="${jdbc.online.user}"/> <property name="password" value="${jdbc.online.password}"/> </dataSource> </environment> </environments>在 environments 标签中含有两个子标签,两个子标签 environment分别表示两个不同的数据库,可以在enbironments中的属性defaule来指定使用哪个数据库,这样在切换数据库环境时,只需要修改default属性即可
# transactionManager标签
该标签用来指定mybits使用的事务管理器,mybits支持两种事务管理器
1:JDBC,该事务通过Connection的commit()方法提交,通过rollback方法回滚
2:MANAGED,利用容器来管理事务的整个周期,默认情况下会关闭连接
# dataSource标签
该标签用来配置数据源,和数据库连接的基本属性,有以下三种数据源类型
1:UNPOOLED,该配置表示步使用连接池,每次请求时会创建一个数据库连接,使用完成后变比数据库连接
2:POOLED,表示使用mybits自带的数据库连接池
3:JNDI,配置外部的数据源
# 4 mapper映射器
该标签的作用就是告诉mybits.xml配置文件我们编写的mapper所在的路径,有以下四种写法
<!-- 第一种 --> mappers> <!-- 使用相对于类路径的资源引用 --> <mapper resource="com/doaoao/dao/StudentMapper.xml"/> </mappers>
<!-- 第二种 --> <mappers> <!-- 使用完全限定资源定位符(URL) --> <mapper url="D:/xxxx/StudentMapper.xml"/> </mappers>
<!-- 第三种 --> <mappers> <!-- 使用映射器接口实现类的完全限定类名 --> <mapper class="com.doaoao.dao.StudentDao"/> </mappers> <!-- 注意点: 1:映射文件名要与 Dao 接口名称相同 2:映射文件要与接口在同一包中 3:映射文件中的 namespace 属性值为 Dao 接口的全类名 -->
<!-- 第四种 --> <mappers> <!-- 将包内的映射器接口实现全部注册为映射器 --> <package name="com.doaoao.dao"/> </mappers> <!-- 注意点 dao 使用 mapper 动态代理实现(后面再将) 映射文件名要与 Dao 接口名称相同 映射文件要与接口在同一包中 映射文件中的 namespace 属性值为 Dao 接口的全类名 -->...
...