在全集配置文件中引入dtd约束“http://mybatis.org/dtd/mybatis-3-config.dtd”,主要有以下几个标签,现在详细解释下这几个标签的使用

1、properties属性----引入外部properties配置文件

<?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>
<!-- 1、mybatis使用properties来引入外部properties配置文件的内容
resource 引入类路径下资源
url 引入网络路径或磁盘路径下资源 -->
<properties resource="db.properties"></properties> <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.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/pjf/mybatis/mapper/hotelMapper.xml"></mapper>
</mappers>
</configuration>

db.properties文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring_mybatis
jdbc.name=root
jdbc.password=tuniu520

相当有之前写的,这里的jdbc连接信息写在datasource中的property属性下,没有引入外部配置文件

<?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>
<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/spring_mybatis" />
<property name="username" value="root" />
<property name="password" value="tuniu520" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/pjf/mybatis/mapper/hotelMapper.xml"></mapper>
</mappers>
</configuration>

2、settings 运行时行为设置

可查看mybatis文档,settings有很多配置项,如

这里试验下mapUnderscoreToCamelCase,可以自动完成hotelName到数据库中字段hotel_name的转换

<?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>
<!-- 1、mybatis使用properties来引入外部properties配置文件的内容
resource 引入类路径下资源
url 引入网络路径或磁盘路径下资源 -->
<properties resource="db.properties"></properties>
<!-- 2、settings包含很多重要的设置项
setting标识具体的设置项
name表示设置项的名字
value表示设置项的值
-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
<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.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/pjf/mybatis/mapper/hotelMapper.xml"></mapper>
</mappers>
</configuration>

之前写的sql语句可以直接修改成

<select id="getHotel" resultType="com.pjf.mybatis.po.Hotel">
select id,hotel_name as hotelName, hotel_address as hotelAddress, price from hotel
where id=#{id}
</select>

修改为
<select id="getHotel" resultType="com.pjf.mybatis.po.Hotel">
select * from hotel where id=#{id}
</select>

mybatis会自动完成驼峰转换

3、typeAliases别名配置

查看代码中3的注解

<?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> <!-- 1、mybatis使用properties来引入外部properties配置文件的内容
resource 引入类路径下资源
url 引入网络路径或磁盘路径下资源 -->
<properties resource="db.properties"></properties> <!-- 2、settings包含很多重要的设置项
setting标识具体的设置项
name表示设置项的名字
value表示设置项的值 -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings> <!-- 3、typeAliases 为java类型起别名,别名不区分大小写
typeAlias 为某个具体的java类型取别名
type java类的全类名,默认别名就是类名小写
alias 自定义别名 -->
<typeAliases>
<typeAlias type="com.pjf.mybatis.po.Hotel" alias="hotel" />
<!-- package为某个包下面所有类批量起别名
name 表示包的名称 默认别名为类名小写
这里重复配置了Hotel类,复制的时候注掉一种配置-->
<package name="com.pjf.mybatis.po" />
</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.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/pjf/mybatis/mapper/hotelMapper.xml"></mapper>
</mappers>
</configuration>

已经为许多常见的 Java 类型内建了相应的类型别名。它们都是大小写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理,8种基本数据类型类型别名是下划线加数据类型。

4、typeHandlers 类型处理器

将java中的类型和数据库中的类型进行映射

<!-- typeHandlers 类型处理器
mybatis3.4之后,这些类型处理器都是自动注册的
-->
<typeHandlers>
<typeHandler handler="BooleanTypeHandler"/>
</typeHandlers>

可以填写以下处理器

5、environments环境配置

<?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> <!-- 1、mybatis使用properties来引入外部properties配置文件的内容
resource 引入类路径下资源
url 引入网络路径或磁盘路径下资源 -->
<properties resource="db.properties"></properties> <!-- 2、settings包含很多重要的设置项
setting标识具体的设置项
name表示设置项的名字
value表示设置项的值 -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings> <!-- 3、typeAliases 为java类型起别名,别名不区分大小写
typeAlias 为某个具体的java类型取别名
type java类的全类名,默认别名就是类名小写
alias 自定义别名 -->
<typeAliases>
<typeAlias type="com.pjf.mybatis.po.Hotel" alias="hotel" />
<!-- package为某个包下面所有类批量起别名
name 表示包的名称 默认别名为类名小写
<package name="com.pjf.mybatis.po" />
-->
</typeAliases> <!-- 4、typeHandlers 类型处理器-->
<typeHandlers>
<typeHandler handler=""/>
</typeHandlers> <!-- 5、environments环境配置,可以配置多种环境 default指定使用某种环境,可以达到快速切换
environment配置一个具体的环境信息,必须有如下两个标签,id表示当前环境的唯一标识
transactionManager 事物管理器
type 事物管理器的类型 有两种取值
JDBC
managed
dataSource 数据源
type 有三种[UNPOOLED|POOLED|JNDI]
-->
<environments default="development">
<environment id="test">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment> <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.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="com/pjf/mybatis/mapper/hotelMapper.xml"></mapper>
</mappers>
</configuration>

6、mappers  sql映射文件注册

<?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> <!-- 1、mybatis使用properties来引入外部properties配置文件的内容
resource 引入类路径下资源
url 引入网络路径或磁盘路径下资源 -->
<properties resource="db.properties"></properties> <!-- 2、settings包含很多重要的设置项
setting标识具体的设置项
name表示设置项的名字
value表示设置项的值 -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings> <!-- 3、typeAliases 为java类型起别名,别名不区分大小写
typeAlias 为某个具体的java类型取别名
type java类的全类名,默认别名就是类名小写
alias 自定义别名 -->
<typeAliases>
<typeAlias type="com.pjf.mybatis.po.Hotel" alias="hotel" />
<!-- package为某个包下面所有类批量起别名
name 表示包的名称 默认别名为类名小写
<package name="com.pjf.mybatis.po" />
-->
</typeAliases> <!-- 4、typeHandlers 类型处理器-->
<typeHandlers>
<typeHandler handler=""/>
</typeHandlers> <!-- 5、environments环境配置,可以配置多种环境 default指定使用某种环境,可以达到快速切换
environment配置一个具体的环境信息,必须有如下两个标签,id表示当前环境的唯一标识
transactionManager 事物管理器
type 事物管理器的类型 有两种取值
JDBC
managed
dataSource 数据源
type 有三种[UNPOOLED|POOLED|JNDI]
-->
<environments default="development">
<environment id="test">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment> <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.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments> <!--6、 mappers将sql映射注册到全局配置文件中
mapper注册一个sql映射
1、注册配置文件
resource引用类路径下文件
url 引用网络上或磁盘路径下文件
2、注册mapper接口
class 有映射文件,接口和映射文件必须同名,而且放在同一个路径里
如果没有映射文件,sql语句使用注解的方式,就需要注册接口了
3、package批量注册
使用批量注册, 接口和映射文件必须同名,而且放在同一个路径里
-->
<mappers>
<mapper resource="com/pjf/mybatis/mapper/hotelMapper.xml"></mapper>
<mapper class=""/>
<package name="com.pjf.mybatis.po"/>
</mappers>
</configuration>

7、databaseIdProvider多数据库支持

MyBatis 可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的 databaseId 属性。 MyBatis 会加载不带 databaseId 属性和带有匹配当前数据库 databaseId 属性的所有语句。 如果同时找到带有 databaseId 和不带 databaseId 的相同语句,则后者会被舍弃。

<databaseIdProvider type="DB_VENDOR"></databaseIdProvider>

8、plugins 插件

MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。

<plugins>
<plugin interceptor=""></plugin>
</plugins>

注:这些标签编写是有先后顺序的,可以吧鼠标放在configuration上,就可以看到顺序了

(properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)

最新文章

  1. SpringMVC配置项学习笔记
  2. iOS知识总结
  3. primefaces p:tableData 显示 List&lt;List&gt;
  4. Max Degree of Parallelism最大并行度配置
  5. OpenCv皮肤检测-HSV分离
  6. POJ 1503
  7. Elasticsearch基本操作
  8. [c++] Collection of key and difficult points
  9. codevs 1256 打鼹鼠 LIS
  10. java中io对文件操作的简单介绍
  11. protobuf/android 交叉编译笔记
  12. JSP自定义简单标签入门之带有属性
  13. vue框架构建项目流程
  14. SQL Server使用sys.master_files计算tempdb大小不正确
  15. Mybatis if 判断等于一个字符串
  16. 导出excel时设置单元格格式(避免类似0100的数字丢失前面的0)
  17. java.lang.UnsupportedClassVersionError: org/kie/api/KieServices$Factory : Unsupported major.minor version 52.0
  18. iOS被开发者遗忘在角落的NSException-其实它很强大
  19. Fragment的setUserVisibleHint方法实现懒加载
  20. HDU 2162 Add ‘em

热门文章

  1. php类重载
  2. (八)maven学习之继承
  3. UVA 10735 Euler Circuit (最大流)
  4. Luogu P4609 [FJOI2016]建筑师&amp;&amp;CF 960G Bandit Blues
  5. 如何在Mac上放大
  6. Bootstrap历练实例:垂直的按钮组
  7. 分布式mysql 和 zk ( zookeeper )的分布式的区别 含冷热数据讨论
  8. luoguP1164 小A点菜(背包问题)
  9. RN与现有的原生app集成
  10. 元组-tuple