MyBatis核心配置文件深入分析
MyBatis 的核心配置文件是 mybatis-config.xml。注意配置文件中节点的顺序有要求,必须按照下面的顺序填写节点信息:
(properties,settings,typeAliases,typeHandlers,objectFactory,objectWrapperFactory,reflectorFactory,plugins,environments,databaseIdProvider,mappers)
<configuration> <properties></properties> <settings></settings> <typeAliases></typeAliases> <typeHandlers></typeHandlers> <objectFactory></objectFactory> <objectWrapperFactory></objectWrapperFactory> <reflectorFactory></reflectorFactory> <plugins></plugins> <environments></environments> <databaseIdProvider></databaseIdProvider> <mappers></mappers> </configuration>
环境配置与 mappers 映射器
基本的 MyBatis 配置:
<?xml version="1.0" encoding="UTF8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value=""/> </dataSource> </environment> </environments> <!--每个mapper.xml都需要在mybatis配置文件中进行配置--> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration>
在上面这段配置中配置了运行环境以及 mappers 映射器。
配置 environment 时,通过 transactionManager 指定事务管理器,通过 dataSource 指定数据库的引擎类型、连接方式、用户名、密码。
mappers 映射器用来和代码中写的 mapper 一一对应,在代码中写一个 mapper 接口和 mapper.xml 文件,就需要在 mappers 映射器中增加一个 mapper 节点。
属性(properties)
在写 mybatis-config.xml 环境配置的时候,将数据库的连接信息直接写在了 mybatis-config.xml 配置文件中,不方便后续的更改,因此可以使用属性(properties)的能力。
在 resources 目录下新建一个 db.properties:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username=root
password=123
接着在 mybatis-config.xml 的 configuration 中添加 properties 节点,注意这个节点的位置必须放在首位。
<properties resource="db.properties"> </properties>
接着就可以用 properties 中的属性去代替 xml 中的属性
<property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/>
设置(settings)
配置文件中的 settings 是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。
常用的设置有以下几种:
设置的配置方式如下:
<settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> <setting name="mapUnderscoreToCamelCase" value="false"/> <setting name="logImpl" value="NO_LOGGING"/> </settings>
类型别名(typeAliases)
类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写。
类型别名有两种方式,第一种是对类取别名,第二种是指定一个包名
<mapper namespace="com.cn.mapper.UserMapper"> <select id="getUserList" resultType="com.cn.pojo.User"> select * from user; </select> </mapper>
第一种方式是对类取别名,这里的 resultType 写的是类的全限定名,我们可以在 mybatis-config.xml 中使用类型别名来简化。typeAliases 在配置文件中的位置需要放在 setting 后面
<typeAliases> <typeAlias type="com.cn.pojo.User" alias="user"/> </typeAliases>
这样设置之后就可以在 resultType 中直接使用 user
<mapper namespace="com.cn.mapper.UserMapper"> <select id="getUserList" resultType="user"> select * from user; </select> </mapper>
第二种方式是指定一个包名,MyBatis 会在指定的包名路径下搜索需要的 JavaBean。修改配置文件,使用包名来指定
<typeAliases> <package name="com.cn.pojo"/> </typeAliases>
每一个在包 com.lanqiaoyun.pojo 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 比如 com.lanqiaoyun.pojo.User 的别名为 user;若有注解,则别名为其注解值
@Alias("user") public class User { ... }
上方所示完整配置文件如下:
<?xml version="1.0" encoding="UTF8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="db.properties"> </properties> <settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> <setting name="mapUnderscoreToCamelCase" value="false"/> <setting name="logImpl" value="NO_LOGGING"/> </settings> <typeAliases> <package name="com.cn.pojo"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <!--每个mapper.xml都需要在mybatis配置文件中进行配置--> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration>
到此这篇关于MyBatis核心配置文件深入分析的文章就介绍到这了,更多相关MyBatis配置文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解IDEA社区版(Community)和付费版(UItimate)的区别
这篇文章主要介绍了详解IDEA社区版(Community)和付费版(UItimate)的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-11-11springboot+mybatis如何屏蔽掉mybatis日志
这篇文章主要介绍了springboot+mybatis如何屏蔽掉mybatis日志问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-05-05idea将maven项目改成Spring boot项目的方法步骤
这篇文章主要介绍了idea将maven项目改成Spring boot项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-09-09详解Java中格式化日期的DateFormat与SimpleDateFormat类
DateFormat其本身是一个抽象类,SimpleDateFormat 类是DateFormat类的子类,一般情况下来讲DateFormat类很少会直接使用,而都使用SimpleDateFormat类完成,下面我们具体来看一下两个类的用法:2016-05-05SpringBoot+Mybatis实现Mapper接口与Sql绑定几种姿势
通常我们在使用Mybatis进行开发时,会选择xml文件来写对应的sql,然后将Mapper接口与sql的xml文件建立绑定关系,然后在项目中调用mapper接口就可以执行对应的sql,感兴趣的可以学习一下2021-09-09
最新评论