Mybatis入门与配置

打印 上一主题 下一主题

主题 818|帖子 818|积分 2454

Mybatis概述

What框架? Why框架

1、框架即framework。
其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。
简单理解就是一套资源,包含jar包、源码、帮助文档、示例等。
2、为什么要用框架开发?
使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。这样可以节省开发时间,提高代码重用性,让开发变得更简单。
Mybatis简介

MyBatis 是支持定制化 SQL以及高级映射(ORM)的优秀的持久层框架。
MyBatis 发展历史

Mybatis的前身是 Apache的一个开源项目 iBatis, 2010年迁移到了google code 改名为 MyBatis,最后又迁移到了Github。
http://www.mybatis.org/mybatis-3/zh/index.html

MyBatis的优点

基于SQL语法,简单易学,能了解底层组装过程,SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度,程序调试方便。
Mybatis配置

创建Mybatis工程


选择maven 输入组织名称、项目名称、版本号和工程名、保存位置

核对信息并点击Finish按钮

引入依赖
  1. <dependencies>
  2. <typeAliases>
  3. <typeHandlers>
  4.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  5. </typeHandlers><package name="com.tjetc.entity"/>
  6. </typeAliases><typeAliases>
  7. <typeHandlers>
  8.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  9. </typeHandlers><package name="com.tjetc.entity"/>
  10. </typeAliases><dependency>
  11. <typeAliases>
  12. <typeHandlers>
  13.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  14. </typeHandlers><package name="com.tjetc.entity"/>
  15. </typeAliases><typeAliases>
  16. <typeHandlers>
  17.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  18. </typeHandlers><package name="com.tjetc.entity"/>
  19. </typeAliases><typeAliases>
  20. <typeHandlers>
  21.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  22. </typeHandlers><package name="com.tjetc.entity"/>
  23. </typeAliases><typeAliases>
  24. <typeHandlers>
  25.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  26. </typeHandlers><package name="com.tjetc.entity"/>
  27. </typeAliases><groupId>org.mybatis</groupId>
  28. <typeAliases>
  29. <typeHandlers>
  30.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  31. </typeHandlers><package name="com.tjetc.entity"/>
  32. </typeAliases><typeAliases>
  33. <typeHandlers>
  34.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  35. </typeHandlers><package name="com.tjetc.entity"/>
  36. </typeAliases><typeAliases>
  37. <typeHandlers>
  38.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  39. </typeHandlers><package name="com.tjetc.entity"/>
  40. </typeAliases><typeAliases>
  41. <typeHandlers>
  42.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  43. </typeHandlers><package name="com.tjetc.entity"/>
  44. </typeAliases><artifactId>mybatis</artifactId>
  45. <typeAliases>
  46. <typeHandlers>
  47.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  48. </typeHandlers><package name="com.tjetc.entity"/>
  49. </typeAliases><typeAliases>
  50. <typeHandlers>
  51.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  52. </typeHandlers><package name="com.tjetc.entity"/>
  53. </typeAliases><typeAliases>
  54. <typeHandlers>
  55.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  56. </typeHandlers><package name="com.tjetc.entity"/>
  57. </typeAliases><typeAliases>
  58. <typeHandlers>
  59.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  60. </typeHandlers><package name="com.tjetc.entity"/>
  61. </typeAliases><version>3.5.6</version>
  62. <typeAliases>
  63. <typeHandlers>
  64.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  65. </typeHandlers><package name="com.tjetc.entity"/>
  66. </typeAliases><typeAliases>
  67. <typeHandlers>
  68.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  69. </typeHandlers><package name="com.tjetc.entity"/>
  70. </typeAliases></dependency>
  71. <typeAliases>
  72. <typeHandlers>
  73.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  74. </typeHandlers><package name="com.tjetc.entity"/>
  75. </typeAliases><typeAliases>
  76. <typeHandlers>
  77.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  78. </typeHandlers><package name="com.tjetc.entity"/>
  79. </typeAliases><dependency>
  80. <typeAliases>
  81. <typeHandlers>
  82.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  83. </typeHandlers><package name="com.tjetc.entity"/>
  84. </typeAliases><typeAliases>
  85. <typeHandlers>
  86.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  87. </typeHandlers><package name="com.tjetc.entity"/>
  88. </typeAliases><typeAliases>
  89. <typeHandlers>
  90.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  91. </typeHandlers><package name="com.tjetc.entity"/>
  92. </typeAliases><typeAliases>
  93. <typeHandlers>
  94.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  95. </typeHandlers><package name="com.tjetc.entity"/>
  96. </typeAliases><groupId>mysql</groupId>
  97. <typeAliases>
  98. <typeHandlers>
  99.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  100. </typeHandlers><package name="com.tjetc.entity"/>
  101. </typeAliases><typeAliases>
  102. <typeHandlers>
  103.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  104. </typeHandlers><package name="com.tjetc.entity"/>
  105. </typeAliases><typeAliases>
  106. <typeHandlers>
  107.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  108. </typeHandlers><package name="com.tjetc.entity"/>
  109. </typeAliases><typeAliases>
  110. <typeHandlers>
  111.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  112. </typeHandlers><package name="com.tjetc.entity"/>
  113. </typeAliases><artifactId>mysql-connector-java</artifactId>
  114. <typeAliases>
  115. <typeHandlers>
  116.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  117. </typeHandlers><package name="com.tjetc.entity"/>
  118. </typeAliases><typeAliases>
  119. <typeHandlers>
  120.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  121. </typeHandlers><package name="com.tjetc.entity"/>
  122. </typeAliases><typeAliases>
  123. <typeHandlers>
  124.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  125. </typeHandlers><package name="com.tjetc.entity"/>
  126. </typeAliases><typeAliases>
  127. <typeHandlers>
  128.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  129. </typeHandlers><package name="com.tjetc.entity"/>
  130. </typeAliases><version>8.0.27</version>
  131. <typeAliases>
  132. <typeHandlers>
  133.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  134. </typeHandlers><package name="com.tjetc.entity"/>
  135. </typeAliases><typeAliases>
  136. <typeHandlers>
  137.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  138. </typeHandlers><package name="com.tjetc.entity"/>
  139. </typeAliases></dependency>
  140. <typeAliases>
  141. <typeHandlers>
  142.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  143. </typeHandlers><package name="com.tjetc.entity"/>
  144. </typeAliases><typeAliases>
  145. <typeHandlers>
  146.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  147. </typeHandlers><package name="com.tjetc.entity"/>
  148. </typeAliases><dependency>
  149. <typeAliases>
  150. <typeHandlers>
  151.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  152. </typeHandlers><package name="com.tjetc.entity"/>
  153. </typeAliases><typeAliases>
  154. <typeHandlers>
  155.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  156. </typeHandlers><package name="com.tjetc.entity"/>
  157. </typeAliases><typeAliases>
  158. <typeHandlers>
  159.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  160. </typeHandlers><package name="com.tjetc.entity"/>
  161. </typeAliases><typeAliases>
  162. <typeHandlers>
  163.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  164. </typeHandlers><package name="com.tjetc.entity"/>
  165. </typeAliases><groupId>junit</groupId>
  166. <typeAliases>
  167. <typeHandlers>
  168.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  169. </typeHandlers><package name="com.tjetc.entity"/>
  170. </typeAliases><typeAliases>
  171. <typeHandlers>
  172.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  173. </typeHandlers><package name="com.tjetc.entity"/>
  174. </typeAliases><typeAliases>
  175. <typeHandlers>
  176.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  177. </typeHandlers><package name="com.tjetc.entity"/>
  178. </typeAliases><typeAliases>
  179. <typeHandlers>
  180.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  181. </typeHandlers><package name="com.tjetc.entity"/>
  182. </typeAliases><artifactId>junit</artifactId>
  183. <typeAliases>
  184. <typeHandlers>
  185.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  186. </typeHandlers><package name="com.tjetc.entity"/>
  187. </typeAliases><typeAliases>
  188. <typeHandlers>
  189.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  190. </typeHandlers><package name="com.tjetc.entity"/>
  191. </typeAliases><typeAliases>
  192. <typeHandlers>
  193.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  194. </typeHandlers><package name="com.tjetc.entity"/>
  195. </typeAliases><typeAliases>
  196. <typeHandlers>
  197.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  198. </typeHandlers><package name="com.tjetc.entity"/>
  199. </typeAliases><version>4.12</version>
  200. <typeAliases>
  201. <typeHandlers>
  202.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  203. </typeHandlers><package name="com.tjetc.entity"/>
  204. </typeAliases><typeAliases>
  205. <typeHandlers>
  206.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  207. </typeHandlers><package name="com.tjetc.entity"/>
  208. </typeAliases></dependency>
  209. </dependencies>
复制代码
mybatis.xml配置文件

mybatis配置顺序如下,不能颠倒,也就是如果有properties属性配置,一定放到最前面,settings放到第二个位置,以此类推
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  3. <configuration>
  4.    <settings>
  5.        
  6.        <setting name="logImpl" value="STDOUT_LOGGING"/>
  7.    </settings>
  8.    
  9.    <environments default="dev">
  10.        
  11.        <environment id="dev">
  12.            
  13.            <transactionManager type="JDBC"></transactionManager>
  14.            
  15.            <dataSource type="POOLED">
  16.                
  17.                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  18.                
  19.                <property name="url"
  20.    <typeAliases>
  21.        
  22.        <typeAlias type="com.tjetc.entity.User" alias="User"></typeAlias>
  23.    </typeAliases>  value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai"/>
  24.                
  25.                <property name="username" value="root"/>
  26.                
  27.                <property name="password" value="123456"/>
  28.            </dataSource>
  29.        </environment>
  30.    </environments>
  31.    
  32.    
  33.    <mappers>
  34.        <mapper resource="mapper/UserMapper.xml"></mapper>
  35.    </mappers>
  36. </configuration>
复制代码
写跟数据库表对应的java实体类


  • *如果要自定义有参的构造方法,原则上要定义一个无参构造方法,因为mybatis 使用反射创建对象时,优先调用无参构造方法
  • 如果不定义无参构造方法,mybatis就会反射调用有参构造方法,有可能会造成参数对应错误或者类型对应不上,会造成结果错误或者出现异常
  •  实体类至少要有set方法,这样才能把数据库查询的数据设置到实体类定义的成员变量中
     
  1. package com.tjetc.entity;
  2. public class User {
  3. <typeAliases>
  4. <typeHandlers>
  5.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  6. </typeHandlers><package name="com.tjetc.entity"/>
  7. </typeAliases><typeAliases>
  8. <typeHandlers>
  9.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  10. </typeHandlers><package name="com.tjetc.entity"/>
  11. </typeAliases>private Long id;
  12. <typeAliases>
  13. <typeHandlers>
  14.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  15. </typeHandlers><package name="com.tjetc.entity"/>
  16. </typeAliases><typeAliases>
  17. <typeHandlers>
  18.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  19. </typeHandlers><package name="com.tjetc.entity"/>
  20. </typeAliases>private String username;
  21. <typeAliases>
  22. <typeHandlers>
  23.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  24. </typeHandlers><package name="com.tjetc.entity"/>
  25. </typeAliases><typeAliases>
  26. <typeHandlers>
  27.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  28. </typeHandlers><package name="com.tjetc.entity"/>
  29. </typeAliases>private String password;
  30. <typeAliases>
  31. <typeHandlers>
  32.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  33. </typeHandlers><package name="com.tjetc.entity"/>
  34. </typeAliases><typeAliases>
  35. <typeHandlers>
  36.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  37. </typeHandlers><package name="com.tjetc.entity"/>
  38. </typeAliases>public User() {}
  39. <typeAliases>
  40. <typeHandlers>
  41.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  42. </typeHandlers><package name="com.tjetc.entity"/>
  43. </typeAliases><typeAliases>
  44. <typeHandlers>
  45.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  46. </typeHandlers><package name="com.tjetc.entity"/>
  47. </typeAliases>public User(Long id, String username, String password) {
  48. <typeAliases>
  49. <typeHandlers>
  50.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  51. </typeHandlers><package name="com.tjetc.entity"/>
  52. </typeAliases><typeAliases>
  53. <typeHandlers>
  54.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  55. </typeHandlers><package name="com.tjetc.entity"/>
  56. </typeAliases><typeAliases>
  57. <typeHandlers>
  58.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  59. </typeHandlers><package name="com.tjetc.entity"/>
  60. </typeAliases><typeAliases>
  61. <typeHandlers>
  62.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  63. </typeHandlers><package name="com.tjetc.entity"/>
  64. </typeAliases>this.id = id;this.username = username;this.password = password;
  65. <typeAliases>
  66. <typeHandlers>
  67.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  68. </typeHandlers><package name="com.tjetc.entity"/>
  69. </typeAliases><typeAliases>
  70. <typeHandlers>
  71.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  72. </typeHandlers><package name="com.tjetc.entity"/>
  73. </typeAliases>}
  74. <typeAliases>
  75. <typeHandlers>
  76.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  77. </typeHandlers><package name="com.tjetc.entity"/>
  78. </typeAliases><typeAliases>
  79. <typeHandlers>
  80.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  81. </typeHandlers><package name="com.tjetc.entity"/>
  82. </typeAliases>public Long getId() {return id;}
  83. <typeAliases>
  84. <typeHandlers>
  85.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  86. </typeHandlers><package name="com.tjetc.entity"/>
  87. </typeAliases><typeAliases>
  88. <typeHandlers>
  89.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  90. </typeHandlers><package name="com.tjetc.entity"/>
  91. </typeAliases>public void setId(Long id) {this.id = id;}
  92. <typeAliases>
  93. <typeHandlers>
  94.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  95. </typeHandlers><package name="com.tjetc.entity"/>
  96. </typeAliases><typeAliases>
  97. <typeHandlers>
  98.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  99. </typeHandlers><package name="com.tjetc.entity"/>
  100. </typeAliases>public String getUsername() {return username;}
  101. <typeAliases>
  102. <typeHandlers>
  103.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  104. </typeHandlers><package name="com.tjetc.entity"/>
  105. </typeAliases><typeAliases>
  106. <typeHandlers>
  107.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  108. </typeHandlers><package name="com.tjetc.entity"/>
  109. </typeAliases>public void setUsername(String username) { this.username = username;}
  110. <typeAliases>
  111. <typeHandlers>
  112.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  113. </typeHandlers><package name="com.tjetc.entity"/>
  114. </typeAliases><typeAliases>
  115. <typeHandlers>
  116.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  117. </typeHandlers><package name="com.tjetc.entity"/>
  118. </typeAliases>public String getPassword() {return password;}
  119. <typeAliases>
  120. <typeHandlers>
  121.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  122. </typeHandlers><package name="com.tjetc.entity"/>
  123. </typeAliases><typeAliases>
  124. <typeHandlers>
  125.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  126. </typeHandlers><package name="com.tjetc.entity"/>
  127. </typeAliases>public void setPassword(String password) {this.password = password;}
  128. <typeAliases>
  129. <typeHandlers>
  130.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  131. </typeHandlers><package name="com.tjetc.entity"/>
  132. </typeAliases><typeAliases>
  133. <typeHandlers>
  134.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  135. </typeHandlers><package name="com.tjetc.entity"/>
  136. </typeAliases>@Override
  137. <typeAliases>
  138. <typeHandlers>
  139.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  140. </typeHandlers><package name="com.tjetc.entity"/>
  141. </typeAliases><typeAliases>
  142. <typeHandlers>
  143.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  144. </typeHandlers><package name="com.tjetc.entity"/>
  145. </typeAliases>public String toString() {
  146. <typeAliases>
  147. <typeHandlers>
  148.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  149. </typeHandlers><package name="com.tjetc.entity"/>
  150. </typeAliases><typeAliases>
  151. <typeHandlers>
  152.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  153. </typeHandlers><package name="com.tjetc.entity"/>
  154. </typeAliases><typeAliases>
  155. <typeHandlers>
  156.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  157. </typeHandlers><package name="com.tjetc.entity"/>
  158. </typeAliases><typeAliases>
  159. <typeHandlers>
  160.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  161. </typeHandlers><package name="com.tjetc.entity"/>
  162. </typeAliases>return "User{" + "id=" + id +", username='" + username + '\'' + ", password='" + password + '\'' + '}'; }
  163. }
复制代码
映射文件UserMapper.xml

映射文件位置为:src/main/resources/mapper/UserMapper.xml
  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="test">
  4.    <select id="queryList" resultType="com.tjetc.entity.User">
  5.      <typeAliases>
  6. <typeHandlers>
  7.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  8. </typeHandlers><package name="com.tjetc.entity"/>
  9. </typeAliases>select * from user
  10.    </select>
  11.    <select id="queryById" parameterType="long" resultType="com.tjetc.entity.User">
  12.      <typeAliases>
  13. <typeHandlers>
  14.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  15. </typeHandlers><package name="com.tjetc.entity"/>
  16. </typeAliases>select * from user where id=#{id}
  17.    </select>
  18. </mapper>
复制代码
测试程序
  1. public class TestUser {
  2.    @Test
  3.    public void testQueryList() throws IOException {
  4.        //实例化SqlSessionFactoryBuilder对象
  5.        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
  6.        //创建SqlSessionFactory对象
  7.        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsReader("mybatis.xml"));
  8.        //创建SqlSession对象
  9.        SqlSession sqlSession = sqlSessionFactory.openSession();
  10.        //调用sqlSession.selectList()查询集合,参数为UserMapper.xml的namespace的值 点 select标签对应 id值
  11.        List<User> users = sqlSession.selectList("test.queryList");
  12.        //打印结果
  13.        System.out.println(users);
  14.        //关闭session
  15.        sqlSession.close();
  16.  <typeAliases>
  17. <typeHandlers>
  18.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  19. </typeHandlers><package name="com.tjetc.entity"/>
  20. </typeAliases>}
  21.    @Test
  22.    public void testQueryById() throws IOException {
  23.        //实例化SqlSessionFactoryBuilder对象
  24.        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
  25.        //创建SqlSessionFactory对象
  26.        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsReader("mybatis.xml"));
  27.        //创建SqlSession对象
  28.        SqlSession sqlSession = sqlSessionFactory.openSession();
  29.        //调用sqlSession.selectOne()查询一条数据,第一个 参数为UserMapper.xml的namespace的值 点 select标签对应 id值 第二个参数为参数值
  30.        User user = sqlSession.selectOne("test.queryById",1L);
  31.        //打印结果
  32.        System.out.println(user);
  33.        //关闭session
  34.        sqlSession.close();
  35.  <typeAliases>
  36. <typeHandlers>
  37.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  38. </typeHandlers><package name="com.tjetc.entity"/>
  39. </typeAliases>}
  40. }
复制代码
使用别名

在mybatis.xml文件中配置别名
  1.    <typeAliases>
  2.        
  3.        <typeAlias type="com.tjetc.entity.User" alias="User"></typeAlias>
  4.    </typeAliases>
复制代码
  1. UserMapper.xml resultType="user"这里的user大小没有影响<?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="test">
  4.    <select id="queryList" resultType="com.tjetc.entity.User">
  5.      <typeAliases>
  6. <typeHandlers>
  7.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  8. </typeHandlers><package name="com.tjetc.entity"/>
  9. </typeAliases>select * from user
  10.    </select>
  11.    <select id="queryById" parameterType="long" resultType="com.tjetc.entity.User">
  12.      <typeAliases>
  13. <typeHandlers>
  14.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  15. </typeHandlers><package name="com.tjetc.entity"/>
  16. </typeAliases>select * from user where id=#{id}
  17.    </select>
  18. </mapper>
复制代码
Mybatis调用接口Dao的接口方法,创建UserMapper接口
  1. public interface UserMapper {
  2.    List<User> queryList();
  3.    List<User> queryById();
  4. }
复制代码
修改UserMapper.xml配置
  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.tjetc.dao.UserMapper">
  4. <typeAliases>
  5. <typeHandlers>
  6.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  7. </typeHandlers><package name="com.tjetc.entity"/>
  8. </typeAliases><typeAliases>
  9. <typeHandlers>
  10.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  11. </typeHandlers><package name="com.tjetc.entity"/>
  12. </typeAliases><select id="queryList" resultType="com.tjetc.entity.User">
  13. <typeAliases>
  14. <typeHandlers>
  15.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  16. </typeHandlers><package name="com.tjetc.entity"/>
  17. </typeAliases><typeAliases>
  18. <typeHandlers>
  19.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  20. </typeHandlers><package name="com.tjetc.entity"/>
  21. </typeAliases><typeAliases>
  22. <typeHandlers>
  23.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  24. </typeHandlers><package name="com.tjetc.entity"/>
  25. </typeAliases><typeAliases>
  26. <typeHandlers>
  27.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  28. </typeHandlers><package name="com.tjetc.entity"/>
  29. </typeAliases>select * from user
  30. <typeAliases>
  31. <typeHandlers>
  32.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  33. </typeHandlers><package name="com.tjetc.entity"/>
  34. </typeAliases><typeAliases>
  35. <typeHandlers>
  36.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  37. </typeHandlers><package name="com.tjetc.entity"/>
  38. </typeAliases></select>
  39. <typeAliases>
  40. <typeHandlers>
  41.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  42. </typeHandlers><package name="com.tjetc.entity"/>
  43. </typeAliases><typeAliases>
  44. <typeHandlers>
  45.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  46. </typeHandlers><package name="com.tjetc.entity"/>
  47. </typeAliases><select id="queryById" parameterType="int" resultType="com.tjetc.entity.User">
  48. <typeAliases>
  49. <typeHandlers>
  50.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  51. </typeHandlers><package name="com.tjetc.entity"/>
  52. </typeAliases><typeAliases>
  53. <typeHandlers>
  54.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  55. </typeHandlers><package name="com.tjetc.entity"/>
  56. </typeAliases><typeAliases>
  57. <typeHandlers>
  58.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  59. </typeHandlers><package name="com.tjetc.entity"/>
  60. </typeAliases><typeAliases>
  61. <typeHandlers>
  62.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  63. </typeHandlers><package name="com.tjetc.entity"/>
  64. </typeAliases>select * from user where id=#{id}
  65. <typeAliases>
  66. <typeHandlers>
  67.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  68. </typeHandlers><package name="com.tjetc.entity"/>
  69. </typeAliases><typeAliases>
  70. <typeHandlers>
  71.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  72. </typeHandlers><package name="com.tjetc.entity"/>
  73. </typeAliases></select>
  74. </mapper>
复制代码
测试:
  1. @Test
  2. public void testQueryList1() throws IOException {
  3. <typeAliases>
  4. <typeHandlers>
  5.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  6. </typeHandlers><package name="com.tjetc.entity"/>
  7. </typeAliases><typeAliases>
  8. <typeHandlers>
  9.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  10. </typeHandlers><package name="com.tjetc.entity"/>
  11. </typeAliases><typeAliases>
  12. <typeHandlers>
  13.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  14. </typeHandlers><package name="com.tjetc.entity"/>
  15. </typeAliases><typeAliases>
  16. <typeHandlers>
  17.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  18. </typeHandlers><package name="com.tjetc.entity"/>
  19. </typeAliases>//实例化SqlSessionFactoryBuilder对象
  20. <typeAliases>
  21. <typeHandlers>
  22.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  23. </typeHandlers><package name="com.tjetc.entity"/>
  24. </typeAliases><typeAliases>
  25. <typeHandlers>
  26.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  27. </typeHandlers><package name="com.tjetc.entity"/>
  28. </typeAliases><typeAliases>
  29. <typeHandlers>
  30.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  31. </typeHandlers><package name="com.tjetc.entity"/>
  32. </typeAliases><typeAliases>
  33. <typeHandlers>
  34.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  35. </typeHandlers><package name="com.tjetc.entity"/>
  36. </typeAliases>SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
  37. <typeAliases>
  38. <typeHandlers>
  39.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  40. </typeHandlers><package name="com.tjetc.entity"/>
  41. </typeAliases><typeAliases>
  42. <typeHandlers>
  43.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  44. </typeHandlers><package name="com.tjetc.entity"/>
  45. </typeAliases><typeAliases>
  46. <typeHandlers>
  47.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  48. </typeHandlers><package name="com.tjetc.entity"/>
  49. </typeAliases><typeAliases>
  50. <typeHandlers>
  51.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  52. </typeHandlers><package name="com.tjetc.entity"/>
  53. </typeAliases>//创建SqlSessionFactory对象
  54. <typeAliases>
  55. <typeHandlers>
  56.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  57. </typeHandlers><package name="com.tjetc.entity"/>
  58. </typeAliases><typeAliases>
  59. <typeHandlers>
  60.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  61. </typeHandlers><package name="com.tjetc.entity"/>
  62. </typeAliases><typeAliases>
  63. <typeHandlers>
  64.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  65. </typeHandlers><package name="com.tjetc.entity"/>
  66. </typeAliases><typeAliases>
  67. <typeHandlers>
  68.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  69. </typeHandlers><package name="com.tjetc.entity"/>
  70. </typeAliases>SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsReader("mybatis.xml"));
  71. <typeAliases>
  72. <typeHandlers>
  73.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  74. </typeHandlers><package name="com.tjetc.entity"/>
  75. </typeAliases><typeAliases>
  76. <typeHandlers>
  77.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  78. </typeHandlers><package name="com.tjetc.entity"/>
  79. </typeAliases><typeAliases>
  80. <typeHandlers>
  81.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  82. </typeHandlers><package name="com.tjetc.entity"/>
  83. </typeAliases><typeAliases>
  84. <typeHandlers>
  85.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  86. </typeHandlers><package name="com.tjetc.entity"/>
  87. </typeAliases>//创建SqlSession对象
  88. <typeAliases>
  89. <typeHandlers>
  90.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  91. </typeHandlers><package name="com.tjetc.entity"/>
  92. </typeAliases><typeAliases>
  93. <typeHandlers>
  94.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  95. </typeHandlers><package name="com.tjetc.entity"/>
  96. </typeAliases><typeAliases>
  97. <typeHandlers>
  98.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  99. </typeHandlers><package name="com.tjetc.entity"/>
  100. </typeAliases><typeAliases>
  101. <typeHandlers>
  102.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  103. </typeHandlers><package name="com.tjetc.entity"/>
  104. </typeAliases>SqlSession sqlSession = sqlSessionFactory.openSession();
  105. <typeAliases>
  106. <typeHandlers>
  107.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  108. </typeHandlers><package name="com.tjetc.entity"/>
  109. </typeAliases><typeAliases>
  110. <typeHandlers>
  111.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  112. </typeHandlers><package name="com.tjetc.entity"/>
  113. </typeAliases><typeAliases>
  114. <typeHandlers>
  115.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  116. </typeHandlers><package name="com.tjetc.entity"/>
  117. </typeAliases><typeAliases>
  118. <typeHandlers>
  119.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  120. </typeHandlers><package name="com.tjetc.entity"/>
  121. </typeAliases>//获取UserDao对象(代理对象)
  122. <typeAliases>
  123. <typeHandlers>
  124.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  125. </typeHandlers><package name="com.tjetc.entity"/>
  126. </typeAliases><typeAliases>
  127. <typeHandlers>
  128.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  129. </typeHandlers><package name="com.tjetc.entity"/>
  130. </typeAliases><typeAliases>
  131. <typeHandlers>
  132.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  133. </typeHandlers><package name="com.tjetc.entity"/>
  134. </typeAliases><typeAliases>
  135. <typeHandlers>
  136.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  137. </typeHandlers><package name="com.tjetc.entity"/>
  138. </typeAliases>UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  139. <typeAliases>
  140. <typeHandlers>
  141.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  142. </typeHandlers><package name="com.tjetc.entity"/>
  143. </typeAliases><typeAliases>
  144. <typeHandlers>
  145.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  146. </typeHandlers><package name="com.tjetc.entity"/>
  147. </typeAliases><typeAliases>
  148. <typeHandlers>
  149.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  150. </typeHandlers><package name="com.tjetc.entity"/>
  151. </typeAliases><typeAliases>
  152. <typeHandlers>
  153.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  154. </typeHandlers><package name="com.tjetc.entity"/>
  155. </typeAliases>//userDao。queryList()方法
  156. <typeAliases>
  157. <typeHandlers>
  158.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  159. </typeHandlers><package name="com.tjetc.entity"/>
  160. </typeAliases><typeAliases>
  161. <typeHandlers>
  162.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  163. </typeHandlers><package name="com.tjetc.entity"/>
  164. </typeAliases><typeAliases>
  165. <typeHandlers>
  166.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  167. </typeHandlers><package name="com.tjetc.entity"/>
  168. </typeAliases><typeAliases>
  169. <typeHandlers>
  170.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  171. </typeHandlers><package name="com.tjetc.entity"/>
  172. </typeAliases>List<User> users = userMapper.queryList();
  173. <typeAliases>
  174. <typeHandlers>
  175.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  176. </typeHandlers><package name="com.tjetc.entity"/>
  177. </typeAliases><typeAliases>
  178. <typeHandlers>
  179.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  180. </typeHandlers><package name="com.tjetc.entity"/>
  181. </typeAliases><typeAliases>
  182. <typeHandlers>
  183.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  184. </typeHandlers><package name="com.tjetc.entity"/>
  185. </typeAliases><typeAliases>
  186. <typeHandlers>
  187.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  188. </typeHandlers><package name="com.tjetc.entity"/>
  189. </typeAliases>//打印结果
  190. <typeAliases>
  191. <typeHandlers>
  192.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  193. </typeHandlers><package name="com.tjetc.entity"/>
  194. </typeAliases><typeAliases>
  195. <typeHandlers>
  196.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  197. </typeHandlers><package name="com.tjetc.entity"/>
  198. </typeAliases><typeAliases>
  199. <typeHandlers>
  200.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  201. </typeHandlers><package name="com.tjetc.entity"/>
  202. </typeAliases><typeAliases>
  203. <typeHandlers>
  204.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  205. </typeHandlers><package name="com.tjetc.entity"/>
  206. </typeAliases>System.out.println(users);
  207. <typeAliases>
  208. <typeHandlers>
  209.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  210. </typeHandlers><package name="com.tjetc.entity"/>
  211. </typeAliases><typeAliases>
  212. <typeHandlers>
  213.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  214. </typeHandlers><package name="com.tjetc.entity"/>
  215. </typeAliases>        //关闭session
  216. <typeAliases>
  217. <typeHandlers>
  218.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  219. </typeHandlers><package name="com.tjetc.entity"/>
  220. </typeAliases><typeAliases>
  221. <typeHandlers>
  222.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  223. </typeHandlers><package name="com.tjetc.entity"/>
  224. </typeAliases><typeAliases>
  225. <typeHandlers>
  226.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  227. </typeHandlers><package name="com.tjetc.entity"/>
  228. </typeAliases><typeAliases>
  229. <typeHandlers>
  230.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  231. </typeHandlers><package name="com.tjetc.entity"/>
  232. </typeAliases>sqlSession.close();
  233. <typeAliases>
  234. <typeHandlers>
  235.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  236. </typeHandlers><package name="com.tjetc.entity"/>
  237. </typeAliases><typeAliases>
  238. <typeHandlers>
  239.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  240. </typeHandlers><package name="com.tjetc.entity"/>
  241. </typeAliases>}
  242. <typeAliases>
  243. <typeHandlers>
  244.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  245. </typeHandlers><package name="com.tjetc.entity"/>
  246. </typeAliases><typeAliases>
  247. <typeHandlers>
  248.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  249. </typeHandlers><package name="com.tjetc.entity"/>
  250. </typeAliases>@Test
  251. <typeAliases>
  252. <typeHandlers>
  253.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  254. </typeHandlers><package name="com.tjetc.entity"/>
  255. </typeAliases><typeAliases>
  256. <typeHandlers>
  257.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  258. </typeHandlers><package name="com.tjetc.entity"/>
  259. </typeAliases>public void testQueryById1() throws IOException {
  260. <typeAliases>
  261. <typeHandlers>
  262.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  263. </typeHandlers><package name="com.tjetc.entity"/>
  264. </typeAliases><typeAliases>
  265. <typeHandlers>
  266.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  267. </typeHandlers><package name="com.tjetc.entity"/>
  268. </typeAliases><typeAliases>
  269. <typeHandlers>
  270.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  271. </typeHandlers><package name="com.tjetc.entity"/>
  272. </typeAliases><typeAliases>
  273. <typeHandlers>
  274.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  275. </typeHandlers><package name="com.tjetc.entity"/>
  276. </typeAliases>//实例化SqlSessionFactoryBuilder对象
  277. <typeAliases>
  278. <typeHandlers>
  279.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  280. </typeHandlers><package name="com.tjetc.entity"/>
  281. </typeAliases><typeAliases>
  282. <typeHandlers>
  283.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  284. </typeHandlers><package name="com.tjetc.entity"/>
  285. </typeAliases><typeAliases>
  286. <typeHandlers>
  287.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  288. </typeHandlers><package name="com.tjetc.entity"/>
  289. </typeAliases><typeAliases>
  290. <typeHandlers>
  291.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  292. </typeHandlers><package name="com.tjetc.entity"/>
  293. </typeAliases>SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
  294. <typeAliases>
  295. <typeHandlers>
  296.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  297. </typeHandlers><package name="com.tjetc.entity"/>
  298. </typeAliases><typeAliases>
  299. <typeHandlers>
  300.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  301. </typeHandlers><package name="com.tjetc.entity"/>
  302. </typeAliases><typeAliases>
  303. <typeHandlers>
  304.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  305. </typeHandlers><package name="com.tjetc.entity"/>
  306. </typeAliases><typeAliases>
  307. <typeHandlers>
  308.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  309. </typeHandlers><package name="com.tjetc.entity"/>
  310. </typeAliases>//创建SqlSessionFactory对象
  311. <typeAliases>
  312. <typeHandlers>
  313.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  314. </typeHandlers><package name="com.tjetc.entity"/>
  315. </typeAliases><typeAliases>
  316. <typeHandlers>
  317.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  318. </typeHandlers><package name="com.tjetc.entity"/>
  319. </typeAliases><typeAliases>
  320. <typeHandlers>
  321.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  322. </typeHandlers><package name="com.tjetc.entity"/>
  323. </typeAliases><typeAliases>
  324. <typeHandlers>
  325.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  326. </typeHandlers><package name="com.tjetc.entity"/>
  327. </typeAliases>SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsReader("mybatis.xml"));
  328. <typeAliases>
  329. <typeHandlers>
  330.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  331. </typeHandlers><package name="com.tjetc.entity"/>
  332. </typeAliases><typeAliases>
  333. <typeHandlers>
  334.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  335. </typeHandlers><package name="com.tjetc.entity"/>
  336. </typeAliases><typeAliases>
  337. <typeHandlers>
  338.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  339. </typeHandlers><package name="com.tjetc.entity"/>
  340. </typeAliases><typeAliases>
  341. <typeHandlers>
  342.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  343. </typeHandlers><package name="com.tjetc.entity"/>
  344. </typeAliases>//创建SqlSession对象
  345. <typeAliases>
  346. <typeHandlers>
  347.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  348. </typeHandlers><package name="com.tjetc.entity"/>
  349. </typeAliases><typeAliases>
  350. <typeHandlers>
  351.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  352. </typeHandlers><package name="com.tjetc.entity"/>
  353. </typeAliases><typeAliases>
  354. <typeHandlers>
  355.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  356. </typeHandlers><package name="com.tjetc.entity"/>
  357. </typeAliases><typeAliases>
  358. <typeHandlers>
  359.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  360. </typeHandlers><package name="com.tjetc.entity"/>
  361. </typeAliases>SqlSession sqlSession = sqlSessionFactory.openSession();
  362. <typeAliases>
  363. <typeHandlers>
  364.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  365. </typeHandlers><package name="com.tjetc.entity"/>
  366. </typeAliases><typeAliases>
  367. <typeHandlers>
  368.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  369. </typeHandlers><package name="com.tjetc.entity"/>
  370. </typeAliases><typeAliases>
  371. <typeHandlers>
  372.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  373. </typeHandlers><package name="com.tjetc.entity"/>
  374. </typeAliases><typeAliases>
  375. <typeHandlers>
  376.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  377. </typeHandlers><package name="com.tjetc.entity"/>
  378. </typeAliases>//获取UserDao对象(代理对象)
  379. <typeAliases>
  380. <typeHandlers>
  381.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  382. </typeHandlers><package name="com.tjetc.entity"/>
  383. </typeAliases><typeAliases>
  384. <typeHandlers>
  385.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  386. </typeHandlers><package name="com.tjetc.entity"/>
  387. </typeAliases><typeAliases>
  388. <typeHandlers>
  389.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  390. </typeHandlers><package name="com.tjetc.entity"/>
  391. </typeAliases><typeAliases>
  392. <typeHandlers>
  393.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  394. </typeHandlers><package name="com.tjetc.entity"/>
  395. </typeAliases>UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  396. <typeAliases>
  397. <typeHandlers>
  398.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  399. </typeHandlers><package name="com.tjetc.entity"/>
  400. </typeAliases><typeAliases>
  401. <typeHandlers>
  402.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  403. </typeHandlers><package name="com.tjetc.entity"/>
  404. </typeAliases><typeAliases>
  405. <typeHandlers>
  406.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  407. </typeHandlers><package name="com.tjetc.entity"/>
  408. </typeAliases><typeAliases>
  409. <typeHandlers>
  410.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  411. </typeHandlers><package name="com.tjetc.entity"/>
  412. </typeAliases>//userDao。queryById()方法
  413. <typeAliases>
  414. <typeHandlers>
  415.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  416. </typeHandlers><package name="com.tjetc.entity"/>
  417. </typeAliases><typeAliases>
  418. <typeHandlers>
  419.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  420. </typeHandlers><package name="com.tjetc.entity"/>
  421. </typeAliases><typeAliases>
  422. <typeHandlers>
  423.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  424. </typeHandlers><package name="com.tjetc.entity"/>
  425. </typeAliases><typeAliases>
  426. <typeHandlers>
  427.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  428. </typeHandlers><package name="com.tjetc.entity"/>
  429. </typeAliases>User user = userMapper.queryById(1L);
  430. <typeAliases>
  431. <typeHandlers>
  432.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  433. </typeHandlers><package name="com.tjetc.entity"/>
  434. </typeAliases><typeAliases>
  435. <typeHandlers>
  436.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  437. </typeHandlers><package name="com.tjetc.entity"/>
  438. </typeAliases><typeAliases>
  439. <typeHandlers>
  440.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  441. </typeHandlers><package name="com.tjetc.entity"/>
  442. </typeAliases><typeAliases>
  443. <typeHandlers>
  444.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  445. </typeHandlers><package name="com.tjetc.entity"/>
  446. </typeAliases>//打印结果
  447. <typeAliases>
  448. <typeHandlers>
  449.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  450. </typeHandlers><package name="com.tjetc.entity"/>
  451. </typeAliases><typeAliases>
  452. <typeHandlers>
  453.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  454. </typeHandlers><package name="com.tjetc.entity"/>
  455. </typeAliases><typeAliases>
  456. <typeHandlers>
  457.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  458. </typeHandlers><package name="com.tjetc.entity"/>
  459. </typeAliases><typeAliases>
  460. <typeHandlers>
  461.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  462. </typeHandlers><package name="com.tjetc.entity"/>
  463. </typeAliases>System.out.println(user);
  464. <typeAliases>
  465. <typeHandlers>
  466.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  467. </typeHandlers><package name="com.tjetc.entity"/>
  468. </typeAliases><typeAliases>
  469. <typeHandlers>
  470.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  471. </typeHandlers><package name="com.tjetc.entity"/>
  472. </typeAliases><typeAliases>
  473. <typeHandlers>
  474.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  475. </typeHandlers><package name="com.tjetc.entity"/>
  476. </typeAliases><typeAliases>
  477. <typeHandlers>
  478.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  479. </typeHandlers><package name="com.tjetc.entity"/>
  480. </typeAliases>//关闭session
  481. <typeAliases>
  482. <typeHandlers>
  483.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  484. </typeHandlers><package name="com.tjetc.entity"/>
  485. </typeAliases><typeAliases>
  486. <typeHandlers>
  487.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  488. </typeHandlers><package name="com.tjetc.entity"/>
  489. </typeAliases><typeAliases>
  490. <typeHandlers>
  491.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  492. </typeHandlers><package name="com.tjetc.entity"/>
  493. </typeAliases><typeAliases>
  494. <typeHandlers>
  495.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  496. </typeHandlers><package name="com.tjetc.entity"/>
  497. </typeAliases>sqlSession.close();
  498. <typeAliases>
  499. <typeHandlers>
  500.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  501. </typeHandlers><package name="com.tjetc.entity"/>
  502. </typeAliases><typeAliases>
  503. <typeHandlers>
  504.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  505. </typeHandlers><package name="com.tjetc.entity"/>
  506. </typeAliases>}
复制代码
mybatis.xml配置详细说明

properties配置

resources目录下创建db.properties
  1. driverName=com.mysql.cj.jdbc.Driver
  2. url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
  3. username=root
  4. password=123456
复制代码
修改mybatis.xml配置
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  3. <configuration>
  4. <typeAliases>
  5. <typeHandlers>
  6.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  7. </typeHandlers><package name="com.tjetc.entity"/>
  8. </typeAliases><typeAliases>
  9. <typeHandlers>
  10.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  11. </typeHandlers><package name="com.tjetc.entity"/>
  12. </typeAliases><properties resource="db.properties"></properties>
  13. <typeAliases>
  14. <typeHandlers>
  15.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  16. </typeHandlers><package name="com.tjetc.entity"/>
  17. </typeAliases><typeAliases>
  18. <typeHandlers>
  19.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  20. </typeHandlers><package name="com.tjetc.entity"/>
  21. </typeAliases><settings>
  22. <typeAliases>
  23. <typeHandlers>
  24.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  25. </typeHandlers><package name="com.tjetc.entity"/>
  26. </typeAliases><typeAliases>
  27. <typeHandlers>
  28.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  29. </typeHandlers><package name="com.tjetc.entity"/>
  30. </typeAliases><typeAliases>
  31. <typeHandlers>
  32.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  33. </typeHandlers><package name="com.tjetc.entity"/>
  34. </typeAliases><typeAliases>
  35. <typeHandlers>
  36.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  37. </typeHandlers><package name="com.tjetc.entity"/>
  38. </typeAliases>
  39. <typeAliases>
  40. <typeHandlers>
  41.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  42. </typeHandlers><package name="com.tjetc.entity"/>
  43. </typeAliases><typeAliases>
  44. <typeHandlers>
  45.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  46. </typeHandlers><package name="com.tjetc.entity"/>
  47. </typeAliases><typeAliases>
  48. <typeHandlers>
  49.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  50. </typeHandlers><package name="com.tjetc.entity"/>
  51. </typeAliases><typeAliases>
  52. <typeHandlers>
  53.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  54. </typeHandlers><package name="com.tjetc.entity"/>
  55. </typeAliases><setting name="logImpl" value="STDOUT_LOGGING"/>
  56. <typeAliases>
  57. <typeHandlers>
  58.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  59. </typeHandlers><package name="com.tjetc.entity"/>
  60. </typeAliases><typeAliases>
  61. <typeHandlers>
  62.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  63. </typeHandlers><package name="com.tjetc.entity"/>
  64. </typeAliases></settings>
  65. <typeAliases>
  66. <typeHandlers>
  67.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  68. </typeHandlers><package name="com.tjetc.entity"/>
  69. </typeAliases><typeAliases>
  70. <typeHandlers>
  71.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  72. </typeHandlers><package name="com.tjetc.entity"/>
  73. </typeAliases><typeAliases>
  74. <typeAliases>
  75. <typeHandlers>
  76.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  77. </typeHandlers><package name="com.tjetc.entity"/>
  78. </typeAliases><typeAliases>
  79. <typeHandlers>
  80.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  81. </typeHandlers><package name="com.tjetc.entity"/>
  82. </typeAliases><typeAliases>
  83. <typeHandlers>
  84.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  85. </typeHandlers><package name="com.tjetc.entity"/>
  86. </typeAliases><typeAliases>
  87. <typeHandlers>
  88.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  89. </typeHandlers><package name="com.tjetc.entity"/>
  90. </typeAliases>
  91. <typeAliases>
  92. <typeHandlers>
  93.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  94. </typeHandlers><package name="com.tjetc.entity"/>
  95. </typeAliases><typeAliases>
  96. <typeHandlers>
  97.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  98. </typeHandlers><package name="com.tjetc.entity"/>
  99. </typeAliases><typeAliases>
  100. <typeHandlers>
  101.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  102. </typeHandlers><package name="com.tjetc.entity"/>
  103. </typeAliases><typeAliases>
  104. <typeHandlers>
  105.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  106. </typeHandlers><package name="com.tjetc.entity"/>
  107. </typeAliases><typeAlias type="com.tjetc.entity.User" alias="User"></typeAlias>
  108. <typeAliases>
  109. <typeHandlers>
  110.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  111. </typeHandlers><package name="com.tjetc.entity"/>
  112. </typeAliases><typeAliases>
  113. <typeHandlers>
  114.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  115. </typeHandlers><package name="com.tjetc.entity"/>
  116. </typeAliases></typeAliases>
  117. <typeAliases>
  118. <typeHandlers>
  119.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  120. </typeHandlers><package name="com.tjetc.entity"/>
  121. </typeAliases><typeAliases>
  122. <typeHandlers>
  123.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  124. </typeHandlers><package name="com.tjetc.entity"/>
  125. </typeAliases>
  126. <typeAliases>
  127. <typeHandlers>
  128.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  129. </typeHandlers><package name="com.tjetc.entity"/>
  130. </typeAliases><typeAliases>
  131. <typeHandlers>
  132.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  133. </typeHandlers><package name="com.tjetc.entity"/>
  134. </typeAliases><environments default="dev">
  135. <typeAliases>
  136. <typeHandlers>
  137.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  138. </typeHandlers><package name="com.tjetc.entity"/>
  139. </typeAliases><typeAliases>
  140. <typeHandlers>
  141.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  142. </typeHandlers><package name="com.tjetc.entity"/>
  143. </typeAliases><typeAliases>
  144. <typeHandlers>
  145.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  146. </typeHandlers><package name="com.tjetc.entity"/>
  147. </typeAliases><typeAliases>
  148. <typeHandlers>
  149.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  150. </typeHandlers><package name="com.tjetc.entity"/>
  151. </typeAliases>
  152. <typeAliases>
  153. <typeHandlers>
  154.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  155. </typeHandlers><package name="com.tjetc.entity"/>
  156. </typeAliases><typeAliases>
  157. <typeHandlers>
  158.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  159. </typeHandlers><package name="com.tjetc.entity"/>
  160. </typeAliases><typeAliases>
  161. <typeHandlers>
  162.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  163. </typeHandlers><package name="com.tjetc.entity"/>
  164. </typeAliases><typeAliases>
  165. <typeHandlers>
  166.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  167. </typeHandlers><package name="com.tjetc.entity"/>
  168. </typeAliases><environment id="dev">
  169. <typeAliases>
  170. <typeHandlers>
  171.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  172. </typeHandlers><package name="com.tjetc.entity"/>
  173. </typeAliases><typeAliases>
  174. <typeHandlers>
  175.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  176. </typeHandlers><package name="com.tjetc.entity"/>
  177. </typeAliases><typeAliases>
  178. <typeHandlers>
  179.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  180. </typeHandlers><package name="com.tjetc.entity"/>
  181. </typeAliases><typeAliases>
  182. <typeHandlers>
  183.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  184. </typeHandlers><package name="com.tjetc.entity"/>
  185. </typeAliases><typeAliases>
  186. <typeHandlers>
  187.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  188. </typeHandlers><package name="com.tjetc.entity"/>
  189. </typeAliases><typeAliases>
  190. <typeHandlers>
  191.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  192. </typeHandlers><package name="com.tjetc.entity"/>
  193. </typeAliases>
  194. <typeAliases>
  195. <typeHandlers>
  196.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  197. </typeHandlers><package name="com.tjetc.entity"/>
  198. </typeAliases><typeAliases>
  199. <typeHandlers>
  200.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  201. </typeHandlers><package name="com.tjetc.entity"/>
  202. </typeAliases><typeAliases>
  203. <typeHandlers>
  204.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  205. </typeHandlers><package name="com.tjetc.entity"/>
  206. </typeAliases><typeAliases>
  207. <typeHandlers>
  208.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  209. </typeHandlers><package name="com.tjetc.entity"/>
  210. </typeAliases><typeAliases>
  211. <typeHandlers>
  212.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  213. </typeHandlers><package name="com.tjetc.entity"/>
  214. </typeAliases><typeAliases>
  215. <typeHandlers>
  216.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  217. </typeHandlers><package name="com.tjetc.entity"/>
  218. </typeAliases><transactionManager type="JDBC"></transactionManager>
  219. <typeAliases>
  220. <typeHandlers>
  221.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  222. </typeHandlers><package name="com.tjetc.entity"/>
  223. </typeAliases><typeAliases>
  224. <typeHandlers>
  225.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  226. </typeHandlers><package name="com.tjetc.entity"/>
  227. </typeAliases><typeAliases>
  228. <typeHandlers>
  229.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  230. </typeHandlers><package name="com.tjetc.entity"/>
  231. </typeAliases><typeAliases>
  232. <typeHandlers>
  233.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  234. </typeHandlers><package name="com.tjetc.entity"/>
  235. </typeAliases><typeAliases>
  236. <typeHandlers>
  237.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  238. </typeHandlers><package name="com.tjetc.entity"/>
  239. </typeAliases><typeAliases>
  240. <typeHandlers>
  241.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  242. </typeHandlers><package name="com.tjetc.entity"/>
  243. </typeAliases>
  244. <typeAliases>
  245. <typeHandlers>
  246.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  247. </typeHandlers><package name="com.tjetc.entity"/>
  248. </typeAliases><typeAliases>
  249. <typeHandlers>
  250.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  251. </typeHandlers><package name="com.tjetc.entity"/>
  252. </typeAliases><typeAliases>
  253. <typeHandlers>
  254.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  255. </typeHandlers><package name="com.tjetc.entity"/>
  256. </typeAliases><typeAliases>
  257. <typeHandlers>
  258.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  259. </typeHandlers><package name="com.tjetc.entity"/>
  260. </typeAliases><typeAliases>
  261. <typeHandlers>
  262.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  263. </typeHandlers><package name="com.tjetc.entity"/>
  264. </typeAliases><typeAliases>
  265. <typeHandlers>
  266.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  267. </typeHandlers><package name="com.tjetc.entity"/>
  268. </typeAliases><dataSource type="POOLED">
  269. <typeAliases>
  270. <typeHandlers>
  271.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  272. </typeHandlers><package name="com.tjetc.entity"/>
  273. </typeAliases><typeAliases>
  274. <typeHandlers>
  275.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  276. </typeHandlers><package name="com.tjetc.entity"/>
  277. </typeAliases><typeAliases>
  278. <typeHandlers>
  279.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  280. </typeHandlers><package name="com.tjetc.entity"/>
  281. </typeAliases><typeAliases>
  282. <typeHandlers>
  283.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  284. </typeHandlers><package name="com.tjetc.entity"/>
  285. </typeAliases><typeAliases>
  286. <typeHandlers>
  287.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  288. </typeHandlers><package name="com.tjetc.entity"/>
  289. </typeAliases><typeAliases>
  290. <typeHandlers>
  291.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  292. </typeHandlers><package name="com.tjetc.entity"/>
  293. </typeAliases><typeAliases>
  294. <typeHandlers>
  295.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  296. </typeHandlers><package name="com.tjetc.entity"/>
  297. </typeAliases><typeAliases>
  298. <typeHandlers>
  299.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  300. </typeHandlers><package name="com.tjetc.entity"/>
  301. </typeAliases>
  302. <typeAliases>
  303. <typeHandlers>
  304.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  305. </typeHandlers><package name="com.tjetc.entity"/>
  306. </typeAliases><typeAliases>
  307. <typeHandlers>
  308.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  309. </typeHandlers><package name="com.tjetc.entity"/>
  310. </typeAliases><typeAliases>
  311. <typeHandlers>
  312.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  313. </typeHandlers><package name="com.tjetc.entity"/>
  314. </typeAliases><typeAliases>
  315. <typeHandlers>
  316.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  317. </typeHandlers><package name="com.tjetc.entity"/>
  318. </typeAliases><typeAliases>
  319. <typeHandlers>
  320.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  321. </typeHandlers><package name="com.tjetc.entity"/>
  322. </typeAliases><typeAliases>
  323. <typeHandlers>
  324.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  325. </typeHandlers><package name="com.tjetc.entity"/>
  326. </typeAliases><typeAliases>
  327. <typeHandlers>
  328.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  329. </typeHandlers><package name="com.tjetc.entity"/>
  330. </typeAliases><typeAliases>
  331. <typeHandlers>
  332.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  333. </typeHandlers><package name="com.tjetc.entity"/>
  334. </typeAliases><property name="driver" value="${driverName}"/>
  335. <typeAliases>
  336. <typeHandlers>
  337.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  338. </typeHandlers><package name="com.tjetc.entity"/>
  339. </typeAliases><typeAliases>
  340. <typeHandlers>
  341.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  342. </typeHandlers><package name="com.tjetc.entity"/>
  343. </typeAliases><typeAliases>
  344. <typeHandlers>
  345.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  346. </typeHandlers><package name="com.tjetc.entity"/>
  347. </typeAliases><typeAliases>
  348. <typeHandlers>
  349.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  350. </typeHandlers><package name="com.tjetc.entity"/>
  351. </typeAliases><typeAliases>
  352. <typeHandlers>
  353.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  354. </typeHandlers><package name="com.tjetc.entity"/>
  355. </typeAliases><typeAliases>
  356. <typeHandlers>
  357.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  358. </typeHandlers><package name="com.tjetc.entity"/>
  359. </typeAliases><typeAliases>
  360. <typeHandlers>
  361.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  362. </typeHandlers><package name="com.tjetc.entity"/>
  363. </typeAliases><typeAliases>
  364. <typeHandlers>
  365.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  366. </typeHandlers><package name="com.tjetc.entity"/>
  367. </typeAliases>
  368. <typeAliases>
  369. <typeHandlers>
  370.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  371. </typeHandlers><package name="com.tjetc.entity"/>
  372. </typeAliases><typeAliases>
  373. <typeHandlers>
  374.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  375. </typeHandlers><package name="com.tjetc.entity"/>
  376. </typeAliases><typeAliases>
  377. <typeHandlers>
  378.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  379. </typeHandlers><package name="com.tjetc.entity"/>
  380. </typeAliases><typeAliases>
  381. <typeHandlers>
  382.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  383. </typeHandlers><package name="com.tjetc.entity"/>
  384. </typeAliases><typeAliases>
  385. <typeHandlers>
  386.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  387. </typeHandlers><package name="com.tjetc.entity"/>
  388. </typeAliases><typeAliases>
  389. <typeHandlers>
  390.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  391. </typeHandlers><package name="com.tjetc.entity"/>
  392. </typeAliases><typeAliases>
  393. <typeHandlers>
  394.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  395. </typeHandlers><package name="com.tjetc.entity"/>
  396. </typeAliases><typeAliases>
  397. <typeHandlers>
  398.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  399. </typeHandlers><package name="com.tjetc.entity"/>
  400. </typeAliases><property name="url" value="${url}"/>
  401. <typeAliases>
  402. <typeHandlers>
  403.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  404. </typeHandlers><package name="com.tjetc.entity"/>
  405. </typeAliases><typeAliases>
  406. <typeHandlers>
  407.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  408. </typeHandlers><package name="com.tjetc.entity"/>
  409. </typeAliases><typeAliases>
  410. <typeHandlers>
  411.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  412. </typeHandlers><package name="com.tjetc.entity"/>
  413. </typeAliases><typeAliases>
  414. <typeHandlers>
  415.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  416. </typeHandlers><package name="com.tjetc.entity"/>
  417. </typeAliases><typeAliases>
  418. <typeHandlers>
  419.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  420. </typeHandlers><package name="com.tjetc.entity"/>
  421. </typeAliases><typeAliases>
  422. <typeHandlers>
  423.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  424. </typeHandlers><package name="com.tjetc.entity"/>
  425. </typeAliases><typeAliases>
  426. <typeHandlers>
  427.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  428. </typeHandlers><package name="com.tjetc.entity"/>
  429. </typeAliases><typeAliases>
  430. <typeHandlers>
  431.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  432. </typeHandlers><package name="com.tjetc.entity"/>
  433. </typeAliases>
  434. <typeAliases>
  435. <typeHandlers>
  436.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  437. </typeHandlers><package name="com.tjetc.entity"/>
  438. </typeAliases><typeAliases>
  439. <typeHandlers>
  440.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  441. </typeHandlers><package name="com.tjetc.entity"/>
  442. </typeAliases><typeAliases>
  443. <typeHandlers>
  444.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  445. </typeHandlers><package name="com.tjetc.entity"/>
  446. </typeAliases><typeAliases>
  447. <typeHandlers>
  448.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  449. </typeHandlers><package name="com.tjetc.entity"/>
  450. </typeAliases><typeAliases>
  451. <typeHandlers>
  452.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  453. </typeHandlers><package name="com.tjetc.entity"/>
  454. </typeAliases><typeAliases>
  455. <typeHandlers>
  456.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  457. </typeHandlers><package name="com.tjetc.entity"/>
  458. </typeAliases><typeAliases>
  459. <typeHandlers>
  460.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  461. </typeHandlers><package name="com.tjetc.entity"/>
  462. </typeAliases><typeAliases>
  463. <typeHandlers>
  464.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  465. </typeHandlers><package name="com.tjetc.entity"/>
  466. </typeAliases><property name="username" value="${username}"/>
  467. <typeAliases>
  468. <typeHandlers>
  469.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  470. </typeHandlers><package name="com.tjetc.entity"/>
  471. </typeAliases><typeAliases>
  472. <typeHandlers>
  473.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  474. </typeHandlers><package name="com.tjetc.entity"/>
  475. </typeAliases><typeAliases>
  476. <typeHandlers>
  477.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  478. </typeHandlers><package name="com.tjetc.entity"/>
  479. </typeAliases><typeAliases>
  480. <typeHandlers>
  481.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  482. </typeHandlers><package name="com.tjetc.entity"/>
  483. </typeAliases><typeAliases>
  484. <typeHandlers>
  485.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  486. </typeHandlers><package name="com.tjetc.entity"/>
  487. </typeAliases><typeAliases>
  488. <typeHandlers>
  489.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  490. </typeHandlers><package name="com.tjetc.entity"/>
  491. </typeAliases><typeAliases>
  492. <typeHandlers>
  493.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  494. </typeHandlers><package name="com.tjetc.entity"/>
  495. </typeAliases><typeAliases>
  496. <typeHandlers>
  497.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  498. </typeHandlers><package name="com.tjetc.entity"/>
  499. </typeAliases>
  500. <typeAliases>
  501. <typeHandlers>
  502.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  503. </typeHandlers><package name="com.tjetc.entity"/>
  504. </typeAliases><typeAliases>
  505. <typeHandlers>
  506.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  507. </typeHandlers><package name="com.tjetc.entity"/>
  508. </typeAliases><typeAliases>
  509. <typeHandlers>
  510.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  511. </typeHandlers><package name="com.tjetc.entity"/>
  512. </typeAliases><typeAliases>
  513. <typeHandlers>
  514.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  515. </typeHandlers><package name="com.tjetc.entity"/>
  516. </typeAliases><typeAliases>
  517. <typeHandlers>
  518.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  519. </typeHandlers><package name="com.tjetc.entity"/>
  520. </typeAliases><typeAliases>
  521. <typeHandlers>
  522.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  523. </typeHandlers><package name="com.tjetc.entity"/>
  524. </typeAliases><typeAliases>
  525. <typeHandlers>
  526.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  527. </typeHandlers><package name="com.tjetc.entity"/>
  528. </typeAliases><typeAliases>
  529. <typeHandlers>
  530.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  531. </typeHandlers><package name="com.tjetc.entity"/>
  532. </typeAliases><property name="password" value="${password}"/>
  533. <typeAliases>
  534. <typeHandlers>
  535.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  536. </typeHandlers><package name="com.tjetc.entity"/>
  537. </typeAliases><typeAliases>
  538. <typeHandlers>
  539.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  540. </typeHandlers><package name="com.tjetc.entity"/>
  541. </typeAliases><typeAliases>
  542. <typeHandlers>
  543.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  544. </typeHandlers><package name="com.tjetc.entity"/>
  545. </typeAliases><typeAliases>
  546. <typeHandlers>
  547.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  548. </typeHandlers><package name="com.tjetc.entity"/>
  549. </typeAliases><typeAliases>
  550. <typeHandlers>
  551.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  552. </typeHandlers><package name="com.tjetc.entity"/>
  553. </typeAliases><typeAliases>
  554. <typeHandlers>
  555.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  556. </typeHandlers><package name="com.tjetc.entity"/>
  557. </typeAliases></dataSource>
  558. <typeAliases>
  559. <typeHandlers>
  560.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  561. </typeHandlers><package name="com.tjetc.entity"/>
  562. </typeAliases><typeAliases>
  563. <typeHandlers>
  564.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  565. </typeHandlers><package name="com.tjetc.entity"/>
  566. </typeAliases><typeAliases>
  567. <typeHandlers>
  568.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  569. </typeHandlers><package name="com.tjetc.entity"/>
  570. </typeAliases><typeAliases>
  571. <typeHandlers>
  572.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  573. </typeHandlers><package name="com.tjetc.entity"/>
  574. </typeAliases></environment>
  575. <typeAliases>
  576. <typeHandlers>
  577.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  578. </typeHandlers><package name="com.tjetc.entity"/>
  579. </typeAliases><typeAliases>
  580. <typeHandlers>
  581.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  582. </typeHandlers><package name="com.tjetc.entity"/>
  583. </typeAliases></environments>
  584. <typeAliases>
  585. <typeHandlers>
  586.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  587. </typeHandlers><package name="com.tjetc.entity"/>
  588. </typeAliases><typeAliases>
  589. <typeHandlers>
  590.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  591. </typeHandlers><package name="com.tjetc.entity"/>
  592. </typeAliases>
  593. <typeAliases>
  594. <typeHandlers>
  595.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  596. </typeHandlers><package name="com.tjetc.entity"/>
  597. </typeAliases><typeAliases>
  598. <typeHandlers>
  599.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  600. </typeHandlers><package name="com.tjetc.entity"/>
  601. </typeAliases><mappers>
  602. <typeAliases>
  603. <typeHandlers>
  604.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  605. </typeHandlers><package name="com.tjetc.entity"/>
  606. </typeAliases><typeAliases>
  607. <typeHandlers>
  608.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  609. </typeHandlers><package name="com.tjetc.entity"/>
  610. </typeAliases><typeAliases>
  611. <typeHandlers>
  612.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  613. </typeHandlers><package name="com.tjetc.entity"/>
  614. </typeAliases><typeAliases>
  615. <typeHandlers>
  616.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  617. </typeHandlers><package name="com.tjetc.entity"/>
  618. </typeAliases><mapper resource="mapper/UserMapper.xml"></mapper>
  619. <typeAliases>
  620. <typeHandlers>
  621.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  622. </typeHandlers><package name="com.tjetc.entity"/>
  623. </typeAliases><typeAliases>
  624. <typeHandlers>
  625.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  626. </typeHandlers><package name="com.tjetc.entity"/>
  627. </typeAliases></mappers>
  628. </configuration>
复制代码
typeAliases配置

类型别名是java类型的简写。它仅在XML配置文件中,用于简化合格的class名字
也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean
  1. <typeAliases>
  2. <typeHandlers>
  3.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  4. </typeHandlers><package name="com.tjetc.entity"/>
  5. </typeAliases>
复制代码
每一个在包 com.tjetc.entity 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 比如 com.tjetc.entit.User 的别名为 user;若有注解,则别名为其注解值 ,例如
  1. @Alias("adm")public class Admin{<typeAliases>
  2. <typeHandlers>
  3.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  4. </typeHandlers><package name="com.tjetc.entity"/>
  5. </typeAliases><typeAliases>
  6. <typeHandlers>
  7.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  8. </typeHandlers><package name="com.tjetc.entity"/>
  9. </typeAliases>//....}
复制代码
下面是一些为常见的 Java 类型内建的类型别名。它们都是不区分大小写的,注意,为了应对原始类型的命名重复,采取了特殊的命名风格

typeHandlers

无论是mybatis设置一个参数给PreparedStatement,还是从PreparedStatement中返回ResultSet,都要面临一个问题:Java类型与JDBC类型之间的转换。
Java类型面向的是内存,JDBC类型面向的是各种关系型数据库,因此两者有很大的不同。
数据类型映射,是ORM框架中最关键的问题。
自定义类型映射器
你可以重写类型映射器,也可以创建自己的非标准类型映射器。
需要实现org.apache.ibatis.type.TypeHandler接口,或继承类org.apache.ibatis.type.BaseTypeHandler
  1. <typeAliases>
  2. <typeHandlers>
  3.   <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
  4. </typeHandlers><package name="com.tjetc.entity"/>
  5. </typeAliases>
复制代码
objectFactory配置

当mybatis每次创建一个新的结果集对象时,都需要使用objectFactory实例。
如果希望重写默认ObjectFactory的行为,可以自定义对象工厂

environments配置

1、mybatis允许你同时配置多个environments。如开发、测试、生产,可以同时配置三个环境。还可以同时对多个不同类型的数据库操作。
注意:虽然你可以同时配置多个环境,但是对于一个SqlSessionFactory实例,只能选择一个环境使用。因此,如果你想同时连接两个数据库,必须要创建两个SqlSessionFactory。
2、transactionManager配置
这里有两种事务管理类型可选,type=[JDBC | MANAGED]
JDBC:依赖于从dataSource返回的Connection对象,直接使用JDBC管理事务
MANAGED:由JavaEE容器管理整个事务
注意:如果使用Spring整合mybatis,无需配置TransactionManager,因为Spring会用自己的事务环境重写mybatis的配置
3、dataSource配置
使用标准数据源接口javax.sql.DataSource配置数据库的JDBC连接
这里有三种数据源类型可选:type="[UNPOOLED | POOLED | JNDI]")

  • UNPOOLED数据源
这个数据源的实现会每次请求时打开和关闭连接。虽然有点慢,但对那些数据库连接可用性要求不高的简单应用程序来说,是一个很好的选择。 性能表现则依赖于使用的数据库,对某些数据库来说,使用连接池并不重要,这个配置就很适合这种情形

  • POOLED
    采用数据库连接池配置,可以优化性能,是当前web项目配置首选。
  • JNDI
    这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用
databaseIdProvider配置

DatabaseIdProvider元素主要是为了支持不同厂商的数据库,即同时支持多个数据库

这个配置非常有用,项目如何同时支持多种数据库?
传统做法是生成多套mapper文件,在mybatis.xml中配置使用那套映射文件。这个做法的很大缺陷是:多套映射文件中,会有很多接口的实现是相同的,如果代码修改,需要同时修改多套文件。这给开发额外增加了很大的工作量。
MyBatis 工作原理


1、SqlSession与Connection

DefaultSqlSession是SqlSession接口的实现类

BaseExcecutor中封装了对数据库Connection的管理


数据库的Connection从dataSource中获取,并用Transaction包装


2、SqlSession的getMapper

调用session.getMapper(),输入映射接口,返回接口的实现对象
UserMapper mapper = session.getMapper(UserMapper.class);

调用MapperRegistry的getMapper()方法
断点观察SqlSession-->>configuration -->>mappedStatements(映射文件中的sql读取后,都存于此处)



使用JDK的动态代理类Proxy,根据映射接口,创建动态代理对象



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表