mybatis官网详解mybatis配置官网地址
1、properties
(1)在引入外部文件的时候,可以使用properties
<!--
当需要引入外部文件时,可以使用<context:property-placeholder location>
resource:表示从当前类路径加载,如果用的是idea,指的是resources目录下
url:可以从当前文件系统的磁盘上寻找配置,也可以从网络资源上引入
-->
<properties resource="db.properties"></properties>
(2)在配置数据源中的属性值时,使用properties标签进行配置
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
2、settings
settings中可以设置的属性特别多,这里介绍mapUnderscoreToCamelCase
驼峰标识的用法
<settings>
<!--开启驼峰标识验证-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
因为mybatis中从数据库拿出数据后引入实体类中,都是由mybatis自带的处理器进行处理的,所以在映射文件中写SQL语句、写实体类时,特别是进行查询操作的时候,一般都是需要将查询的结果映射到实体类中,所以若开启驼峰标识
,实体类命名都是与数据库成驼峰命名法一一对应时,便会自动装配至对应的实体类中(数据库命名admin_account,实体类命名:adminAccount)
关于settings其他属性可以看官网settings用法
3、typeAliases
:类型别名
<!--表示在引入实体类的名称的时候,可以使用别名,而不需使用完全限定名-->
<typeAliases>
<typeAlias type="com.csh.bean.Admin" alias="Admin"/>
<!--指定包中的实体类不需要写完全限定名-->
<package name="com.csh.bean"/>
</typeAliases>
4、typeHandlers
:类型处理器
上面说道mybais会自己将属性装配到实体类中是因为mybatis有自己从处理器,也就是类型处理器,这里的属性设置是可以自定义类型处理器,需要自定义类继承BaseTypeHandler
,实现类中的四个方法
public class MyExampleTypeHandler extends BaseTypeHandler<String> {
public void setNonNullParameter(PreparedStatement preparedStatement, int i, String s, JdbcType jdbcType) throws SQLException {
}
public String getNullableResult(ResultSet resultSet, String s) throws SQLException {
return null;
}
public String getNullableResult(ResultSet resultSet, int i) throws SQLException {
return null;
}
public String getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
return null;
}
}
xml开启处理器
<!--设置定义自己的类型处理器,也就是将属性装配到实体类的过程,mybatis中默认内置了许多类型处理器,一般不需要自己实现-->
<typeHandlers>
<typeHandler handler=""></typeHandler>
<package name=""/>
</typeHandlers>
5、objectFactory
:对象工厂,与类型处理器使用方法一样,需要继承DefaultObjectFactory
类,同样实现类中的四个方法,自定义实例化目标类objectFactory官网点击跳转查看
6、plugins
:插件,MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。plugins官网地址
7、environments
:环境配置,也就是可以通过environments进行配置多个环境,开发环境,测试环境、生产环境,有可能会使用不同的数据源进行操作,在此进行配置
<environments default="development">
<!--配置具体的环境,属性,id表示当前环境的名称-->
<environment id="development">
<!--
事务管理器,每一种数据源都需要配置具体的事务管理器
type:表示事务管理器的类型
jdbc:使用jdbc当前原生的事务控制
-->
<transactionManager type="JDBC" />
<!--
配置具体的数据源的类型
type:表示数据源的类型
pooled:使用数据库连接池
unpooled:每次打开和关闭一个链接
-->
<dataSource type="POOLED">
<!--链接数据的时候需要添加的必备的参数,一般是4个
如果是连接池的话 ,可以设置连接最大个数等相关配置
-->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
<environment id="test">
<transactionManager type=""></transactionManager>
<dataSource type=""></dataSource>
</environment>
</environments>
8、databaseIdProvider
:数据库标识,当有数据库移植的需求的时候,可以根据不同的数据库来执行不通的数据库语言,在数据库语句后面加上参数databaseId
即可
<databaseIdProvider type="DB_VENDOR">
<property name="MySQL" value="mysql"/>
<property name="SQL Server" value="sqlserver"/>
<property name="Oracle" value="oracle"/>
</databaseIdProvider>
配置后需要在映射文件SQL语句加上databaseId
属性,指定使用的数据库
9、mappers
:映射器,也就是写SQL语句的地方,在而要引入映射文件肯定需要在配置文件中指定,mappers
作用也就在这了,下面代码还有其他用法
<!--
用来将mapper映射文件引入配置文件中,方便程序启动的时候进行加载
resourse:从项目的类路径下加载对应的映射文件
url:从本地磁盘或者网络中引入映射文件
class:可以直接引入类的完全限定名,可以使用注解的方式进行使用
若不想使用注解,想要引入配置文件形式,可以将xml文件放在具体类的同级目录下,
1、 若是maven项目,maven默认只会加载java文件,所以需要进行配置
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
2、在resources资源目录下创建与dao层一样的同级目录即可,将配置文放到指定的目录
-->
<mappers>
<mapper resource="AdminDao.xml"/>
<!--如果需要引入多个配置文件,可以指定定义包的名称
resources目录下的配置文件必须要有具体相同的目录
-->
<package name="com.csh.dao"/>
</mappers>
关于plugins
插件暂无应用举例,后续学习后补上,好像工作基本上都会使用,还有mybatis plus有自带的比较经常使用