MyBatis 实用篇(二)配置文件

一、全局配置

全局配置:http://www.mybatis.org/mybatis-3/zh/configuration.html

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  4. <configuration>
  5. <!-- 1. 引入配置文件 .properties -->
  6. <properties resource="conf.properties"/>
  7. <!-- 2. settings 配置项 -->
  8. <settings>
  9. <!--开启数据库下划线转驼峰规则-->
  10. <setting name="mapUnderscoreToCamelCase" value="true"/>
  11. <!--开启分步查询的懒加载-->
  12. <setting name="lazyLoadingEnabled" value="true"/>
  13. <setting name="aggressiveLazyLoading" value="false"/>
  14. <!--开启二级缓存-->
  15. <setting name="cacheEnabled" value="true"/>
  16. </settings>
  17. <!-- 3. typeAliases 别名处理器,为 java 类型取别名 -->
  18. <typeAliases>
  19. <!-- 3.1 typeAlias: 为 java 类取别名
  20. type 为类的全路径,alias 默认为类名的小写 -->
  21. <!-- <typeAlias alias="User" type="com.github.binarylei.spring03.day0902.User"/> -->
  22. <!-- 3.2 package 为某个包下的所有类批量取别名,默认类名小写,注意别名不区分大小写 -->
  23. <package name="com.github.binarylei.mybatis.helloworld"/>
  24. <!-- 3.3 注解取别名 @Alias("user") -->
  25. </typeAliases>
  26. <!-- 4. typeHandlers 类型处理器 -->
  27. <typeHandlers/>
  28. <!-- 5. plugins 插件,如分布插件等 -->
  29. <!--<plugins>
  30. <plugin interceptor=""/>
  31. </plugins>-->
  32. <!-- 6. environments 数据库配置,mybatis 可以配置多种环境
  33. environment 配置一个具体的环境,必须有 transactionManager 和 dataSource 两个元素
  34. transactionManager 事务管理器
  35. type: JDBC(JdbcTransactionFactory)|MANAGED(ManagedTransactionFactory)
  36. 自定义事务管理器:实现 TransactionFactory 接口
  37. dataSource 数据源
  38. type: POOLEDJNDI(PooledDataSourceFactory)|UNPOOLEDJNDI(PooledDataSourceFactory)|JNDI(JndiDataSourceFactory)
  39. 自定义数据源:实现 DataSourceFactory 接口
  40. JDBC|MANAGED 等别名的注册在 org.apache.ibatis.session.Configuration 中定义
  41. -->
  42. <environments default="dev">
  43. <environment id="test">
  44. <!-- 配置事务管理 ,采用JDBC管理事务-->
  45. <transactionManager type="JDBC"/>
  46. <!-- POOLED是mybatis的 数据源 -->
  47. <!-- JNDI是基于tomcat的数据源 -->
  48. <dataSource type="POOLED">
  49. <property name="driver" value="${jdbc.driver}"/>
  50. <property name="url" value="${jdbc.url}"/>
  51. <property name="username" value="${jdbc.username}"/>
  52. <property name="password" value="${jdbc.password}"/>
  53. </dataSource>
  54. </environment>
  55. <environment id="dev">
  56. <transactionManager type="JDBC"/>
  57. <dataSource type="POOLED">
  58. <property name="driver" value="${jdbc.driver}"/>
  59. <property name="url" value="${jdbc.url}"/>
  60. <property name="username" value="${jdbc.username}"/>
  61. <property name="password" value="${jdbc.password}"/>
  62. </dataSource>
  63. </environment>
  64. </environments>
  65. <!-- 7. databaseIdProvider -->
  66. <databaseIdProvider type="DB_VENDOR">
  67. <property name="SQL Server" value="sqlserver"/>
  68. <property name="DB2" value="db2"/>
  69. <property name="Oracle" value="oracle"/>
  70. <property name="MySQL" value="mysql"/>
  71. <property name="PostgreSQL" value="postgresql"/>
  72. <property name="Derby" value="derby"/>
  73. <property name="HSQL" value="hsql"/>
  74. <property name="H2" value="h2"/>
  75. </databaseIdProvider>
  76. <!-- 8. 将 sql 注册到全局配置中 -->
  77. <mappers>
  78. <!--
  79. mapper: 注册一个 sql 映射
  80. 7.1 resource: 引用 classpath 下的 sql 映射文件 eg: com/github/binarylei/mybatis/helloworld/UserMapper.xml
  81. 7.2 url: 引用网络或磁盘路径下的 sql 映射文件 eg: file:///var/mybatis/UserMapper.xml
  82. 7.3 class: 引用(注册)接口。
  83. 1. 有 sql 映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下
  84. 2. 没有 sql 映射文件,所有的接口都写到注解上 eg: @select("select * from user")
  85. -->
  86. <!--<mapper resource="com/github/binarylei/mybatis/helloworld/UserMapper.xml"/>-->
  87. <!--<mapper class="com.github.binarylei.mybatis.helloworld.UserMapper"/>-->
  88. <!-- 7.4 批量包扫描 -->
  89. <package name="com.github.binarylei.mybatis"/>
  90. </mappers>
  91. </configuration>

二、mapper 配置

mapper 配置:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="com.github.binarylei.mybatis.helloworld.UserMapper">
  4. <!--eviction: 緩存的回收策路。
  5. LRU 默认,最近最少使用的:移除最长时间不被使用的对象。
  6. FTFO 先进先出:按对家进入缓存的顺序来移除它们。
  7. SOFT 软引用:移除基于垃圾回收器状态和软引用规则的对象。
  8. WEAK 弱引用:更积极地移除基于拉圾收集器状态和弱引用规则。
  9. flushInterval: 存刷新间隔缓存多长时间清空一次,默认不清空,设置一个毫秒值。
  10. readon1y: 是否只读 true。
  11. true: MyBatis 直接就会将数据在存中的引用交给用户。不安全,速度快
  12. fa1se: MyBatis 会利用反序列的技术克隆一份新的数据给你。安全,速度慢
  13. size: 缓存存放多少元素
  14. type: 指定自定义存的全类名实现 Cache 接口即可
  15. -->
  16. <cache eviction="LRU" flushInterval="1000" readOnly="false" size="20"/>
  17. <!-- 获取自增主键,方式一 -->
  18. <insert id="save" parameterType="user" useGeneratedKeys="true" keyProperty="id">
  19. insert into user(name,age,sex) values(#{name},#{age},#{sex})
  20. </insert>
  21. <!-- 获取自增主键,方式二 -->
  22. <insert id="save2" parameterType="user">
  23. <selectKey resultType="int" keyProperty="id" order="AFTER">
  24. select last_insert_id();
  25. </selectKey>
  26. insert into user(name,age,sex) values(#{name},#{age},#{sex})
  27. </insert>
  28. <!-- useCache: true 表示开启二级缓存。
  29. flushCache: true 表示每次使用时都会清除缓存,包括一级缓存和二级缓存
  30. -->
  31. <select id="getUser" resultType="User" useCache="false" flushCache="true">
  32. select * from user where id=#{id};
  33. </select>
  34. </mapper>

每天用心记录一点点。内容也许不重要,但习惯很重要!

MyBatis 实用篇(二)配置文件的更多相关文章

  1. Mybatis 实用篇(四)返回值类型

    Mybatis 实用篇(四)返回值类型 一.返回 List.Map List<User> getUsers(); <select id="getUsers" re ...

  2. Mybatis 实用篇(三)参数处理

    Mybatis 实用篇(三)参数处理 sql 语句中的参数 parameterType 可以省略不写. 一.参数封装 1.1 单个参数处理 public interface UserMapper { ...

  3. MyBatis 实用篇(一)入门

    MyBatis 实用篇(一)入门 MyBatis(http://www.mybatis.org/mybatis-3/zh/index.html) 是一款优秀的持久层框架,它支持定制化 SQL.存储过程 ...

  4. Mybatis配置信息浅析 MyBatis简介(二)

    官方文档入门篇中有明确说明 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的. SqlSessionFactory 的实例可以通过 SqlSessionF ...

  5. MyBatis 源码分析 - 配置文件解析过程

    * 本文速览 由于本篇文章篇幅比较大,所以这里拿出一节对本文进行快速概括.本篇文章对 MyBatis 配置文件中常用配置的解析过程进行了较为详细的介绍和分析,包括但不限于settings,typeAl ...

  6. SpringBoot系列之集成logback实现日志打印(篇二)

    SpringBoot系列之集成logback实现日志打印(篇二) 基于上篇博客SpringBoot系列之集成logback实现日志打印(篇一)之后,再写一篇博客进行补充 logback是一款开源的日志 ...

  7. 14 微服务电商【黑马乐优商城】:day02-springcloud(理论篇二:知道什么是SpringCloud)

    本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一: ...

  8. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  9. MyBatis学习 之 二、SQL语句映射文件(1)resultMap

    目录(?)[-] 二SQL语句映射文件1resultMap resultMap idresult constructor association联合 使用select实现联合 使用resultMap实 ...

随机推荐

  1. .NET 中创建支持集合初始化器的类型

    对象初始化器和集合初始化器只是语法糖,但是能让你的代码看起来更加清晰.至少能让对象初始化的代码和其他业务执行的代码分开,可读性会好一些. 本文将编写一个类型,可以使用集合初始化器构造这个类型.不只是添 ...

  2. Linux下驱动模块学习

    1.modutils中提供了相关的insmod,rmmod,modinfo工具2.modprobe在识别出目标模块所依赖模块后也是调用insmod.3.从外部看模块只是普通可重定位的目标文件.可重定位 ...

  3. oracle Union 中 ORA-12704:字符集不匹配问题的解决 .

    在使用Union all连接时,若A集合中某列为nvarchar2或nvarchar类型,而B集合中无此列,用‘ ’ 来代替是会报字符集不匹配,解决方法有两种,见下面的示例 例: select '中国 ...

  4. php 数据类型转换与比较

    <?php define("PI", 3.1415926); echo PI."<br>"; //定义一个常量 define("GR ...

  5. 解决Apache下生成静态页面乱码的问题

    我的空间存放在阿里云,服务器默认Apache编码设置为utf-8,而新的网站珠宝招聘网http://hr.izuans.com 采用GB2312编码,其他程序文件都OK,就是生成静态新闻页和其他单页面 ...

  6. tomcat 注冊成操作系統服務

    nginx注冊成服務1.把srvany.exe和instsrv.exe拷貝到nginx安裝路徑下面.2.執行命令Command代碼instsrv Nginx D:\nginx\srvany.exe3. ...

  7. Makefile编写 一 *****

    编译:把高级语言书写的代码转换为机器可识别的机器指令.编译高级语言后生成的指令虽然可被机器识别,但是还不能被执行.编译时,编译器检查高级语言的语法.函数与变量的声明是否正确.只有所有的语法正确.相关变 ...

  8. java 面向对象 — 继承

    继承中的构造方法,先执行父类中的构造方法,然后执行子类中的构造方法 继承中的属性,最后执行的属性 覆盖前面的属性 因为是开辟了 两个内存空间,所以相比较是不同的. 如果想比较两个对象的值是否相同的话, ...

  9. 关于RouterOS 国内DDNS服务

    虽然RouterOS 加入了cloud功能,但最近在配置RB2011的时候发现不好使,更新域名后无法正确解析到我的IP地址,虽然在cloud的public address中显示了正确的公网ip地址,但 ...

  10. 本地通过源码方式启动solr

      首先,下载solr5.5.0源码,http://apache.fayea.com/lucene/solr/5.5.0/solr-5.5.0-src.tgz   解压完成后,分为几个目录,然而sol ...