标签:最大 handlers state 属性 类型 方式 允许 级别 obj
根元素<configuration>,子元素:
这些子元素的配置是有顺序的,只能按照上面的顺序配置。
可缺省部分子元素。
用于将内部的配置外在化,在<properties>中引入外部配置即可。
比如数据库的连接信息,我们可以直接写在全局配置文件中:
<environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/my_db?serverTimezone=GMT"/> <property name="username" value="chy"/> <property name="password" value="abcd"/> </dataSource> </environment> </environments>
考虑到更换数据库时,运维从一大堆代码不好找数据库的连接信息,我们可以把数据库的连接信息拿出来,单独写在一个配置文件中。
sql.properties:
mysql_driver=com.mysql.cj.jdbc.Driver mysql_url=jdbc:mysql://localhost:3306/my_db?serverTimezone=GMT mysql_username=chy mysql_password=abcd #oracle_driver=..... #oracle_url=..... #oracle_username=..... #oracle_password=.....
mybatis-config.xml:
<properties resource="sql.properties"></properties> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="${mysql_driver}"/> <property name="url" value="${mysql_url}"/> <property name="username" value="${mysql_username}"/> <property name="password" value="${mysql_password}"/> </dataSource> </environment> </environments>
用于设置mybatis运行时的参数。常用的项有:
一般只需配置logImpl:
<settings> <setting name="logImpl" value="LOG4J"/>
</settings>
如果不使用日志框架,可以缺省此配置。
用于配置pojo类别名。
在映射文件中,如果parameterType、 resultType是自己写的pojo类,必须使用全限定类名:
resultType="com.chy.pojo.Student"
又臭又长,很麻烦。可以使用别名。
<typeAliases>
<typeAlias type="com.chy.pojo.Student" alias="Student"/>
<typeAlias type="com.chy.pojo.Teacher" alias="Teacher"/>
</typeAliases>
resultType="Student"
直接写别名即可。
如果缺省alias属性,默认为类名的camel写法,比如Student => student。
@Alias(value = "Student") public class Student { //...... }
可以缺省属性名,简写为
@Alias("Student")
如果觉得一个一个地配置pojo类很麻烦,可以使用包自动扫描:
<typeAliases>
<package name="com.chy.pojo"/>
</typeAliases>
这个包下所有的pojo类都使用camel命名方式的别名。
将参数传给预处理语句时,需要将数据从javaType(java类型)转换为jdbcType(jdbc类型);
将结果集中的数据转换为指定类型时,需要将数据从jdbcType转换为javaType。
这2个过程都要用到typeHandler(类型转换器)。一般我们使用mybatis自带的类型转换器即可,也可以在<typeHandlers>中引用自定义的类型转换器。
ObjectFactory负责创建结果实例。
将查询结果映射为指定对象时,默认的ObjectFactory先调用无参的构造器创建pojo类的实例,再调用setter方法注入值。
一般我们使用默认的ObjectFactory即可,也可以在<objectFactory>中引用自定义的ObjectFactory类。
mybatis允许在将查询结果映射为指定类型的过程中,以插件形式执行自定义的代码。
环境配置,mybatis是持久层框架,它的环境自然是数据库,即数据库的配置。
<environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="${mysql_driver}"/> <property name="url" value="${mysql_url}"/> <property name="username" value="${mysql_username}"/> <property name="password" value="${mysql_password}"/> </dataSource> </environment> </environments>
一般要配置多个环境,开发一个环境,正式使用一个环境。default指定要使用哪个<environment>。
一个<environment>即一个环境(数据库配置)。
<transactionManager>指定使用哪种事务管理,通常使用JDBC的事务管理。如果搭配Spring使用,一般使用Spring的事务管理(在spring中配置事务管理),不在mybatis中配置事务。
<dataSource>配置数据源,mybatis提供了三种数据源:
type指定使用哪种数据源,<property>子元素设置具体选项。
不使用连接池,适合对性能没有要求的、简单的应用程序。
常用属性:
操作数据库速度更快,适合高并发的程序,很常用。
常用属性:
用于引入映射文件。写法很多,常用的有3种:
<mappers> <mapper resource="com/chy/mapper/StudentMapper.xml"/> <mapper resource="com/chy/mapper/TeacherMapper.xml"/> </mappers>
<mappers>
<mapper class="com.chy.mapper.StudentMapper"/>
</mappers>
<mappers>
<package name="com.chy.mapper"/>
</mappers>
这种最常用,可以一次性引入mapper包下所有的映射文件。
标签:最大 handlers state 属性 类型 方式 允许 级别 obj
原文地址:https://www.cnblogs.com/chy18883701161/p/12120023.html