mybatis 配置详解

mybatis-config.xml 核心配置文件

mybatis-config.xml 包含的内容如下

  • configuration(配置)
  • properties(属性)
  • settings(设置)
  • typeAliases(类型别名)
  • typeHandlers(类型处理器)
  • objectFactory(对象工厂)
  • plugins(插件)
  • environments(环境配置)
  • environment(环境变量)
  • transactionManager(事务管理器)
  • dataSource(数据源)
  • databaseIdProvider(数据库厂商标识)
  • mappers(映射器)

注意元素节点的顺序!顺序不对会报错

1. environments元素

<environments default="development"><environment id="development"><transactionManager type="JDBC"><property name="..." value="..."/></transactionManager><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><environment id="test"><transactionManager type="JDBC"><property name="..." value="..."/></transactionManager><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>
  • environments配置mybatis 多套环境,将sql 映射到多个不同的数据库上,必须指定一个默认环境,即default=“development”

1.1 子元素environment

其中dataSource 数据源(共三种内建的数据源类型)

        type="[UNPOOLED|POOLED|JNDI]")
  • unpooled:这个数据源的实现只是每次被请求时打开和关闭连接
  • pooled:这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来 , 这是一种使得并发 Web 应用快速响应请求的流行处理方式。
  • jndi:这个数据源的实现是为了能在如 Spring 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。
    注: 数据源也有很多第三方的实现,比如dbcp,c3p0,druid等等…

1.2 transactionManager 事务管理器(共两种)

        <transactionManager type="[ JDBC | MANAGED ]"/>

2. mappers 元素(定义映射SQL语句文件)

主要用于找到sql语句的文件在哪里?可以使用不同的方式引用sql语句 具体的引用方式如下

  • 使用相对路径引入sql语句的文件
<!-- 使用相对于类路径的资源引用 -->
<mappers><mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
  • 使用完全限定资源定位符(URL)
<!-- 使用完全限定资源定位符(URL) -->
<mappers><mapper url="file:///var/mappers/AuthorMapper.xml"/>
</mappers>
  • 使用映射器接口实现类的完全限定类名,需要配置文件名称和接口名称一致,并且位于同一目录下
<!--
使用映射器接口实现类的完全限定类名需要配置文件名称和接口名称一致,并且位于同一目录下
-->
<mappers><mapper class="org.mybatis.builder.AuthorMapper"/>
</mappers>
  • 将包内的映射器接口实现全部注册为映射器但是需要配置文件名称和接口名称一致,并且位于同一目录下
<!--
将包内的映射器接口实现全部注册为映射器.但是需要配置文件名称和接口名称一致,并且位于同一目录下
-->
<mappers><package name="org.mybatis.builder"/>
</mappers>

**mapper配置文件
主要用用关联dao接口中的方法,并书写sql语句 相当于实现了接口中的各个方法

<?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="com.xiezhr.dao.UserMapper"><select id="getUserList" resultType="com.xiezhr.pojo.User">select * from mybatis.user;</select><insert id="addUser" parameterType="com.xiezhr.pojo.User">insert into mybatis.user values(#{id},#{name},#{pwd})</insert><update id="updateUserById" parameterType="int">update mybatis.user set name='小头爸爸' where id=#{id}</update><delete id="deleteUserById" parameterType="int">delete from mybatis.user where id=#{id}</delete>
</mapper>

3.properties

  • 我们都知道在java开发中,通过properties文件来配置一些参数。这我们就要通过db.properties文件来配置连接数据库的各个属性

具体步骤如下

(1)编写db.properties 文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8
username=root
password=123456

(2)在mybatis核心配置文件中加在外部配置文件来连接数据库

<?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="db.properties"/><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><mappers><mapper resource="com/xiezhr/Dao/UserMapper.xml"></mapper></mappers>
</configuration>

4. typeAliases(定义别名)

  • 类型别名是为java类型这只一个短的名字。意义在于用来减少过长类名的冗余

(1)自定义javabean别名

<typeAliases><typeAlias type="com.xiezhr.pojo.User" alias="user"/>
</typeAliases>

如上配置之后就可以在任何地方用user 代替 com.xiezhr.pojo.User配置别名也可按照下面方式配置

(2)配置所有com.xiezhr.pojo 包下的Javabean别名为小写的类名

<typeAliases><package name="com.xiezhr.pojo"/>
</typeAliases>

通过上述配置之后,以下的xml即等价

<select id="getUserList" resultType="user">select * from mybatis.user;
</select>
<select id="getUserList" resultType="com.xiezhr.pojo.user">select * from mybatis.user;
</select>

其他配置【设置】

设置常用的有如下几个

  • 懒加载
  • 日志实现
  • 缓存的开启与关闭
    下面是一个完整的setting元素示例
<settings><setting name="cacheEnabled" value="true"/><setting name="lazyLoadingEnabled" value="true"/><setting name="multipleResultSetsEnabled" value="true"/><setting name="useColumnLabel" value="true"/><setting name="useGeneratedKeys" value="false"/><setting name="autoMappingBehavior" value="PARTIAL"/><setting name="autoMappingUnknownColumnBehavior" value="WARNING"/><setting name="defaultExecutorType" value="SIMPLE"/><setting name="defaultStatementTimeout" value="25"/><setting name="defaultFetchSize" value="100"/><setting name="safeRowBoundsEnabled" value="false"/><setting name="mapUnderscoreToCamelCase" value="false"/><setting name="localCacheScope" value="SESSION"/><setting name="jdbcTypeForNull" value="OTHER"/><setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>

mybatis 配置详解相关推荐

  1. MyBatis配置详解

    为什么80%的码农都做不了架构师?>>>    序言 在Eclipse中,将鼠标放在根节点上后,可以看到配置文件中的主要配置项,如下图所示: 这些项分别是:properties.se ...

  2. Spring Hibernate Mybatis配置详解

    2019独角兽企业重金招聘Python工程师标准>>> 1. Spring + Hibernate4(spring-hibernate.xml) <!-- 引入jdbc pro ...

  3. mybatis基础总结02 -配置详解

    二 mybatis配置详解 MyBatis最关键的组成部分是SqlSessionFactory,我们可以从中获取SqlSession, 并执行映射的SQL语句.SqlSessionFactory对象可 ...

  4. mybatis 同名方法_MyBatis(四):xml配置详解

    目录 1.我们将 数据库的配置语句写在 db.properties 文件中 2.在 mybatis-configuration.xml 中加载db.properties文件并读取 通过源码我们可以分析 ...

  5. 深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)

    上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, ...

  6. mybatis获取表名_mybatis plus 的动态表名的配置详解

    mybatis plus简介 详见mybatis plus的官网 业务要求 业务上要求存储数据的时候根据某个字段动态的选择数据要存储的表. 如根据code字段: code->[1001,1002 ...

  7. MyBatis Generator 详解

    MyBatis Generator中文文档 MyBatis Generator中文文档地址: http://mbg.cndocs.tk/ 该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看 ...

  8. mybatis注解详解

    mybatis注解详解 首 先当然得下载mybatis-3.0.5.jar和mybatis-spring-1.0.1.jar两个JAR包,并放在WEB-INF的lib目录下 (如果你使用maven,则 ...

  9. 【笔记】spring的注解回顾,springboot-restful项目结构介绍 springboot-freemarker ⼯程配置详解

    注解 学Spring boot有一阵子了,总结一下它的注解. @Controller :修饰class,⽤来创建处理http请求的对象 @RestController :Spring4之后加⼊的注解, ...

最新文章

  1. JavaHelp软件的一个定制实用程序类
  2. 产品设计 | App功能设计的21条注意事项
  3. IDEA以UML图表方式查看maven项目pom文件中全局及部分jar之间依赖关系
  4. 10通信端口感叹号_工程现场通信总线布线、压接规范
  5. 204. Count Primes
  6. 前端学习(1268):axios的响应结果
  7. 打开电脑的组策略编辑器-计算机配置→管理模板下怎么没有网络,我应该怎么做才能通过FireWire卡屏幕播放?...
  8. linux 笔记服务器,Linux服务器 CentOS7.5 操作小笔记
  9. sql语句查看MySQL数据库大小
  10. sar命令和vmstat命令详解
  11. linux下运行hadoop,Linux命令行下运行Hadoop单元测试
  12. Cocos2D:塔防游戏制作之旅(九)
  13. 向linux内核提交了第一个patch,在3.8中发布,庆祝一下!
  14. 独家 | 一文读懂复杂网络(应用、模型和研究历史)
  15. Tomcat常见内存溢出的解决方案
  16. idea 设置字体大小
  17. 优秀软件测试工程师必读书籍推荐
  18. 互联网日报 | 3月27日 星期六 | 知乎正式登陆纽交所;美团2020年营收首破千亿元;小米将推出新款自研芯片...
  19. 下载编译chromium
  20. 我用FreeMind

热门文章

  1. 2016校招真题编程练习——微信红包(腾讯)
  2. C/C++——++i、i+=1、i++之间的区别(附在学习boost时遇到的例子)
  3. x86汇编语言——处理器架构
  4. C/C++——各种类型int、long、double、char表示范围(最大最小值)
  5. Runnable案例 我赚钱她取钱案例 java1615475726
  6. 哈希表 Hashtable c# 1613537346
  7. 草稿 复选框绑定数据 1204
  8. 国庆作业 刷题0929
  9. javascript 西瓜一期 13 十六进制的数数方式与进位
  10. Position independent code and data (ROPI and RWPI)