全局配置文件(sqlMapConfig.xml)包括:
properties(属性)
settings(全局配置参数)
typeAlias(别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)<了解>
plugins(插件)<了解>
environments(环境集合属性对象)<了解>
environment(环境子属性对象)<了解>
transactionManager(事务管理)<了解>
dataSource(数据源)<了解>
mappers(映射器)
jdbc_driver=com.mysql.jdbc.Driver jdbc_url=jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull jdbc_username=root jdbc_password=888
<?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 resource="db.properties"> <!-- properties中还可以配置一些信息 --> <!-- <property></property> --> </properties> <!-- environments指的是mybatis运行环境,目前单独使用mybatis做测试时,需要在该环境中配置数据源。 当mybatis与spring整合后,这一块内容则被废弃了。因为数据源等环境都交由了spring来管理 --> <environments default="development"> <environment id="development"> <!-- 使用jdbc事务管理,事务控制由mybatis管理 --> <transactionManager type="JDBC"/> <!-- 数据库连接池,由mybatis管理 --> <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> <!-- 加载映射文件 --> <mappers> <mapper resource="sqlMap/user.xml"/> </mappers> </configuration>
<!-- 定义别名 --> <typeAliases> <!-- (1)针对单个别名的定义 type:类的全路径 alias:别名 --> <typeAlias type="pojo.User" alias="user"></typeAlias> </typeAliases>
<select id="findUserById" parameterType="java.lang.String" resultType="user"> select * from tab_user where id=#{id} </select>
单个别名定义的话,如果有N个类型需要定义别名,则需要配置N个<typeAlias type="xxx.xxx.xx.xxx" alias="yyy"></typeAlias>,这样非常不方便。
接下来看看批量别名的定义
<!-- 定义别名 --> <typeAliases> <!-- 批量别名的定义,使用package标签 name:指定包名,mybatis会自动的扫描包中的pojo类,自动定义别名, 别名就是类名,首字母大写或小写都可以 --> <package name="pojo"/> </typeAliases>
<select id="findUserById" parameterType="java.lang.String" resultType="User"> select * from tab_user where id=#{id} </select>
<!-- 加载映射文件 --> <mappers> <!-- 通过 resource加载单个映射文件--> <mapper resource="sqlMap/user.xml"/> </mappers>
<!-- 加载映射文件 --> <mappers> <!-- 通过mapper接口加载映射文件 需要遵循一些规范: (1)这种方式只适用于mapper代理方式 (2)mapper接口类名与mapper.xml配置文件名保存一致,且在一个目录 --> <mapper class="mapper.UserMapper"/> </mappers>
<!-- 加载映射文件 --> <mappers> <!-- 通过package进行批量加载mapper接口 name:指定mapper接口的包名,mybatis自动扫描包下的mapper接口 需要遵循一些规范: (1)这种方式只适用于mapper代理方式 (2)mapper接口类名与mapper.xml配置文件名保存一致,且在一个目录 --> <package name="mapper"/> </mappers>