Mybatis学习之配置文件(三)
一、核心配置文件详解
MyBatis配置文件中标签必须按照固定的顺序(有的标签可以不写,但顺序一定不能乱):properties、settings、typeAliases、typeHandlers、objectFactory、objectWrapperFactory、reflectorFactory、plugins、environments、databaseIdProvider、mappers。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//MyBatis.org//DTD Config 3.0//EN""http://MyBatis.org/dtd/MyBatis-3-config.dtd">
<configuration><!--引入properties文件,此时就可以${属性名}的方式访问属性值--><properties resource="jdbc.properties"></properties><settings><!--将表中字段的下划线自动转换为驼峰--><setting name="mapUnderscoreToCamelCase" value="true"/><!--开启延迟加载--><setting name="lazyLoadingEnabled" value="true"/></settings><typeAliases><!--typeAlias:设置某个具体的类型的别名属性:type:需要设置别名的类型的全类名alias:设置此类型的别名,且别名不区分大小写。默认的别名,即类名--><!--<typeAlias type="com.atguigu.mybatis.bean.User"></typeAlias>--><!--<typeAlias type="com.atguigu.mybatis.bean.User" alias="user"></typeAlias>--><!--以包为单位,设置改包下所有的类型都拥有默认的别名,即类名且不区分大小写--><package name="com.atguigu.mybatis.bean"/></typeAliases><!--environments:设置多个连接数据库的环境属性:default:设置默认使用的环境的id--><environments default="mysql_test"><!--environment:设置具体的连接数据库的环境信息属性:id:设置环境的唯一标识,可通过environments标签中的default设置某一个环境的id,表示默认使用的环境--><environment id="mysql_test"><!--transactionManager:设置事务管理方式属性:type:设置事务管理方式,type="JDBC|MANAGED"type="JDBC":设置当前环境的事务管理都必须手动处理type="MANAGED":设置事务被管理,例如spring中的AOP--><transactionManager type="JDBC"/><!--dataSource:设置数据源属性:type:设置数据源的类型,type="POOLED|UNPOOLED|JNDI"type="POOLED":使用数据库连接池,即会将创建的连接进行缓存,下次使用可以从缓存中直接获取,不需要重新创建type="UNPOOLED":不使用数据库连接池,即每次使用连接都需要重新创建type="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><!--引入映射文件--><mappers><!-- <mapper resource="UserMapper.xml"/> --><!--以包为单位,将包下所有的映射文件引入核心配置文件注意:1. 此方式必须保证mapper接口和mapper映射文件必须在相同的包下2. mapper接口要和mapper映射文件的名字一致--><package name="com.atguigu.mybatis.mapper"/></mappers>
</configuration>
二、${} + properties:动态写入信息
如果想动态的写入数据库驱动的信息,可以新建一个配置文件:jdbc.properties。
- 在jdbc.properties文件中,以字符串形式定义各个属性,每个属性最好有意义的标识作为前缀,如jdbc.xxx。
- 在mybatis-config.xml文件中,添加元素,将资源文件引入配置文件中。
- 在dataSource中,使用${xxx}格式,引入对应的属性。
三、typeAlias/package:设置某个类型的别名
typeAlias属性:
- type: 设置需要设置别名的类型
- alias: 设置某个类型的别名,如果不设置该属性,那么该类型拥有默认的类名,且不区分大小写
即,使用User作为com.atguigu.mybatis.pojo.User的别名,可以在mapper的配置文件中直接使用User来代表这个类。
也可以使用来表示,以该包为单位,将包下所有的类型设置默认的类型别名且不区分大小写。
四、mappers:引入映射文件
- mapper接口所在的包要和映射文件所在的包一致
- mapper接口要和映射文件的名字一致
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.demo.mybatis.mapper.UserMapper"><!--int insertUser();--><insert id="insertUser">insert into t_user values(null, "test", "123",34,'f',"153456@qq.com")</insert><!--void updateUser();--><update id="updateUser">update t_user set username = "RUOYI" where id = 4</update><!--void deleteUser();--><delete id="deleteUser">delete from t_user where id = 5</delete><!--User getUserById();--><!--查询功能的标签必须设置resultType或者resultMapresultType:设置默认的映射关系resultMap:设置自定义的映射关系(字段名和表头不一样)--><select id="getUserById" resultType="cn.demo.mybatis.pojo.User">select * from t_user where id = 4</select><!--List<User> getAllUser();--><select id="getAllUser" resultType="cn.demo.mybatis.pojo.User">select * from t_user</select>
</mapper>
文件中namespace 是 MyBatis 映射文件(.xml)中的一个重要属性,通常,namespace 的值会设置为对应的 Mapper 接口的全限定名。
它为映射文件中的 SQL 语句提供了一个命名空间,主要作用是避免不同映射文件中 SQL 语句的 ID 冲突,同时也方便在 Java 代码中定位对应的 SQL 语句。
同时为了方便日常开发中从java的接口文件跳转到xml文件,可以在idea中下载MybatisX插件。
在我们日常开发中更多的精力还是关注在映射文件中。
五、设置mybatis-config.xml配置文件模板
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><properties resource="jdbc.properties"></properties><typeAliases><package name=""></package></typeAliases><!--设置连接数据库的环境--><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.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><!--引入映射文件--><mappers><package name=""/></mappers>
</configuration>
添加模板步骤
创建模板
完成后就可以直接new一个mybatis-config模版啦。
二、设置xxxMapper.xml配置文件模板
模版内容
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace=""></mapper>
过程与config模版相同。