九天猎人 发表于 2022-8-9 14:43:09

Mybatis入门与配置

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
https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620092001751-923502804.png
MyBatis的优点

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

创建Mybatis工程

https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620092050327-554757545.png
选择maven 输入组织名称、项目名称、版本号和工程名、保存位置

核对信息并点击Finish按钮

引入依赖

<dependencies>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><dependency>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><groupId>org.mybatis</groupId>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><artifactId>mybatis</artifactId>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><version>3.5.6</version>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases></dependency>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><dependency>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><groupId>mysql</groupId>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><artifactId>mysql-connector-java</artifactId>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><version>8.0.27</version>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases></dependency>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><dependency>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><groupId>junit</groupId>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><artifactId>junit</artifactId>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><version>4.12</version>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases></dependency>
</dependencies>mybatis.xml配置文件

mybatis配置顺序如下,不能颠倒,也就是如果有properties属性配置,一定放到最前面,settings放到第二个位置,以此类推
https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620092357726-1564622074.png
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
   <settings>
       
       <setting name="logImpl" value="STDOUT_LOGGING"/>
   </settings>
   
   <environments default="dev">
       
       <environment id="dev">
           
           <transactionManager type="JDBC"></transactionManager>
           
           <dataSource type="POOLED">
               
               <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
               
               <property name="url"
   <typeAliases>
       
       <typeAlias type="com.tjetc.entity.User" alias="User"></typeAlias>
   </typeAliases>  value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai"/>
               
               <property name="username" value="root"/>
               
               <property name="password" value="123456"/>
           </dataSource>
       </environment>
   </environments>
   
   
   <mappers>
       <mapper resource="mapper/UserMapper.xml"></mapper>
   </mappers>
</configuration>写跟数据库表对应的java实体类


[*]*如果要自定义有参的构造方法,原则上要定义一个无参构造方法,因为mybatis 使用反射创建对象时,优先调用无参构造方法
[*]如果不定义无参构造方法,mybatis就会反射调用有参构造方法,有可能会造成参数对应错误或者类型对应不上,会造成结果错误或者出现异常
[*] 实体类至少要有set方法,这样才能把数据库查询的数据设置到实体类定义的成员变量中
 
package com.tjetc.entity;
public class User {
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>private Long id;
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>private String username;
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>private String password;
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>public User() {}
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>public User(Long id, String username, String password) {
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>this.id = id;this.username = username;this.password = password;
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>}
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>public Long getId() {return id;}
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>public void setId(Long id) {this.id = id;}
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>public String getUsername() {return username;}
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>public void setUsername(String username) { this.username = username;}
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>public String getPassword() {return password;}
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>public void setPassword(String password) {this.password = password;}
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>@Override
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>public String toString() {
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>return "User{" + "id=" + id +", username='" + username + '\'' + ", password='" + password + '\'' + '}'; }
}映射文件UserMapper.xml

映射文件位置为:src/main/resources/mapper/UserMapper.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace="test">
   <select id="queryList" resultType="com.tjetc.entity.User">
     <typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>select * from user
   </select>
   <select id="queryById" parameterType="long" resultType="com.tjetc.entity.User">
     <typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>select * from user where id=#{id}
   </select>
</mapper>测试程序

public class TestUser {
   @Test
   public void testQueryList() throws IOException {
       //实例化SqlSessionFactoryBuilder对象
       SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
       //创建SqlSessionFactory对象
       SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsReader("mybatis.xml"));
       //创建SqlSession对象
       SqlSession sqlSession = sqlSessionFactory.openSession();
       //调用sqlSession.selectList()查询集合,参数为UserMapper.xml的namespace的值 点 select标签对应 id值
       List<User> users = sqlSession.selectList("test.queryList");
       //打印结果
       System.out.println(users);
       //关闭session
       sqlSession.close();
 <typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>}

   @Test
   public void testQueryById() throws IOException {
       //实例化SqlSessionFactoryBuilder对象
       SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
       //创建SqlSessionFactory对象
       SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsReader("mybatis.xml"));
       //创建SqlSession对象
       SqlSession sqlSession = sqlSessionFactory.openSession();
       //调用sqlSession.selectOne()查询一条数据,第一个 参数为UserMapper.xml的namespace的值 点 select标签对应 id值 第二个参数为参数值
       User user = sqlSession.selectOne("test.queryById",1L);
       //打印结果
       System.out.println(user);
       //关闭session
       sqlSession.close();
 <typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>}
}使用别名

在mybatis.xml文件中配置别名
   <typeAliases>
       
       <typeAlias type="com.tjetc.entity.User" alias="User"></typeAlias>
   </typeAliases>UserMapper.xml resultType="user"这里的user大小没有影响<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace="test">
   <select id="queryList" resultType="com.tjetc.entity.User">
     <typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>select * from user
   </select>
   <select id="queryById" parameterType="long" resultType="com.tjetc.entity.User">
     <typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>select * from user where id=#{id}
   </select>
</mapper>Mybatis调用接口Dao的接口方法,创建UserMapper接口

public interface UserMapper {
   List<User> queryList();
   List<User> queryById();
}修改UserMapper.xml配置
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace="com.tjetc.dao.UserMapper">
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><select id="queryList" resultType="com.tjetc.entity.User">
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>select * from user
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases></select>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><select id="queryById" parameterType="int" resultType="com.tjetc.entity.User">
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>select * from user where id=#{id}
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases></select>
</mapper>测试:
@Test
public void testQueryList1() throws IOException {
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//实例化SqlSessionFactoryBuilder对象
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//创建SqlSessionFactory对象
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsReader("mybatis.xml"));
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//创建SqlSession对象
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>SqlSession sqlSession = sqlSessionFactory.openSession();
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//获取UserDao对象(代理对象)
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//userDao。queryList()方法
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>List<User> users = userMapper.queryList();
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//打印结果
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>System.out.println(users);
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>        //关闭session
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>sqlSession.close();
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>}

<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>@Test
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>public void testQueryById1() throws IOException {
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//实例化SqlSessionFactoryBuilder对象
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//创建SqlSessionFactory对象
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsReader("mybatis.xml"));
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//创建SqlSession对象
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>SqlSession sqlSession = sqlSessionFactory.openSession();
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//获取UserDao对象(代理对象)
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//userDao。queryById()方法
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>User user = userMapper.queryById(1L);
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//打印结果
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>System.out.println(user);
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>//关闭session
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>sqlSession.close();
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>}mybatis.xml配置详细说明

properties配置

resources目录下创建db.properties
driverName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username=root
password=123456修改mybatis.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><properties resource="db.properties"></properties>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><settings>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><setting name="logImpl" value="STDOUT_LOGGING"/>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases></settings>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAlias type="com.tjetc.entity.User" alias="User"></typeAlias>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases></typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><environments default="dev">
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><environment id="dev">
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><transactionManager type="JDBC"></transactionManager>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><dataSource type="POOLED">
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><property name="driver" value="${driverName}"/>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><property name="url" value="${url}"/>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><property name="username" value="${username}"/>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><property name="password" value="${password}"/>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases></dataSource>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases></environment>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases></environments>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><mappers>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><mapper resource="mapper/UserMapper.xml"></mapper>
<typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases><typeAliases>
<typeHandlers>
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers><package name="com.tjetc.entity"/>
</typeAliases></mappers>
</configuration>typeAliases配置

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

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

当mybatis每次创建一个新的结果集对象时,都需要使用objectFactory实例。
如果希望重写默认ObjectFactory的行为,可以自定义对象工厂
https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620143640390-1017713752.png
environments配置

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

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

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

DatabaseIdProvider元素主要是为了支持不同厂商的数据库,即同时支持多个数据库
https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620143700947-619871861.png
这个配置非常有用,项目如何同时支持多种数据库?
传统做法是生成多套mapper文件,在mybatis.xml中配置使用那套映射文件。这个做法的很大缺陷是:多套映射文件中,会有很多接口的实现是相同的,如果代码修改,需要同时修改多套文件。这给开发额外增加了很大的工作量。
MyBatis 工作原理

https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620143715095-1344282726.png
1、SqlSession与Connection

DefaultSqlSession是SqlSession接口的实现类
https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620144730282-109703772.png
BaseExcecutor中封装了对数据库Connection的管理

https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620144651095-1294975599.png
数据库的Connection从dataSource中获取,并用Transaction包装

https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620144509072-1075880688.png
2、SqlSession的getMapper

调用session.getMapper(),输入映射接口,返回接口的实现对象
UserMapper mapper = session.getMapper(UserMapper.class);
https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620145008276-1633454517.png
调用MapperRegistry的getMapper()方法
断点观察SqlSession-->>configuration -->>mappedStatements(映射文件中的sql读取后,都存于此处)
https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620151614487-1443121586.png
https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620151636540-1205977500.png
https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620151554744-1671917495.png
使用JDK的动态代理类Proxy,根据映射接口,创建动态代理对象

https://img2022.cnblogs.com/blog/2791316/202206/2791316-20220620145107699-652656437.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Mybatis入门与配置