MyBatis配置文件(mybatis-config.xml)
关于mybatis-3-config.dtd的配置:转载: https://blog.csdn.net/wangqing84411433/article/details/77878663
MyBatis配置文件分类两类:
1) 全局的配置文件: mybatis-config.xml, 有序
- properties(属性) 加载properties文件
- settings(全局配置参数) 缓存
- typeAliases(类型别名) 类型别名
- typeHandlers(类型处理器)
- objectFactory(对象工厂)
- plugins(插件) 通用Mapper 分页插件
- environments(环境集合属性对象)
- environment(环境子属性对象)
- transactionManager(事务管理)
- dataSource(数据源)
- mappers(映射器)
1、properties属性
//db.properties文件: driverClassName=oracle.jdbc.OracleDriver url=jdbc:oracle:thin:@localhost:1521:orcl user=scott password=tiger //mybatis-config.xml 配置文件: <!--加载properties配置文件 --> <properties resource="db.properties"></properties> 。。。 <!-- 数据库连接池--> <dataSource type="POOLED"> <property name="driver" value="${driverClassName}" /> <property name="url" value="${url}" /> <property name="username" value="${user}" /> <property name="password" value="${password}" /> </dataSource>
2、settings全局参数配置---------------
mybatis框架在运行时可以调整一些运行参数。
比如:开启二级缓存、开启延迟加载。。
3、typeAliases(类型别名)
自定义别名:
一个类一个类的配置 :<typeAlias type="com.mybatis.entity.User" alias="User"/>
type: 类的包.类
alias: 取得别名, 类名或者类名第一个字母小名的类名
给某个包下所有的类取别名 : <package name="com.mybatis.entity"/>(推荐)
name: 包名
这个包下类的别名: 类名或者是 类名第一个字母小名的类名
4、mappers(映射器)
① :<mapper resource=" " /> :使用相对于类路径的资源
如:<mapper resource="sqlmap/User.xml" />
②: <mapper url=" " /> : 使用完全限定路径
如:<mapper url="file:///D:\workspace_spingmvc\mybatis_01\config\sqlmap\User.xml" />
③: <mapper class=" " /> : 使用mapper接口类路径
如:<mapper class="cn.itcast.mybatis.mapper.UserMapper"/>
注意:class 的方式-- 要求xml必须与接口在同一个包下
④: <package name=""/> : 注册指定包下的所有mapper接口
如:<package name="org.csmf.mybatis.dao"/>
注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个包下。
使用情况:按实际需求,如果实体类较多,建议使用package,
代码:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--加载properties配置文件 --> <properties resource="db.properties"></properties> *** <!-- jdbcType对应属性的值为null,处理方式 默认值: OTHER, 如果属性为null, 报错 NULL: 如果属性为null, 给数据库对应的列赋值为null --> <settings> <setting name="jdbcTypeForNull" value="NULL"/> *** </settings> <!--给自定义的类 取别名 --> <typeAliases> <!-- 一个类一个类的配置 type: 类的包.类 alias: 取得别名, 类名或者类名第一个字母小名的类名 --> <!-- <typeAlias type="com.mybatis.entity.User" alias="User"/> --> <!-- 给某个包下所有的类取别名 name: 包名 这个包下类的别名: 类名或者是 类名第一个字母小名的类名 User/user --> <package name="com.mybatis.entity"/> *** </typeAliases> <!-- 和spring整合后 environments配置将废除--> <environments default="oracle"> <!-- 可以配置多个environment --> <environment id="oracle"> <!-- 使用jdbc事务管理--> <transactionManager type="JDBC" /> <!-- 数据库连接池--> <dataSource type="POOLED"> <property name="driver" value="${driverClassName}" /> <property name="url" value="${url}" /> <property name="username" value="${user}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <!-- 加载映射文件 :包名/mapper名.xml --> <mappers> <!-- mapper resource="mapper/UserMapper.xml" /> --> <!--要求xml文件与接口在同一个包下 --> <!-- <mapper class="mybatis02.mapper.UserMapper"/> --> <!-- url: sql映射文件可以来源于网络 --> <!-- <mapper url=""/> --> <package name="org.csmf.mybatis.dao"/> *** <!-- 一次性加载某个包所有的sql映射文件,要求,sql映射文件与接口必须位于同一个包 --> <mapper resource= "mapper/UserMapper.xml"/> *** <mapper resource= "mapper/OrderMapper.xml"/> </mappers> </configuration>