前言

  上篇SSM框架环境搭建篇,演示了我们进行web开发必不可少的一些配置和准备工作,如果这方面还有疑问的地方,可以先参考上一篇“SSM框架开发web项目系列(一) 环境搭建篇”。本文主要介绍MyBatis的基础内容,包括基本概念、开发步骤、使用实例等。说起MyBatis,工作中做过SSH/SSM相关Web开发的或者正在学习MyBatis的人或多或少都会接触到类似“MyBatis和Hibernate有什么区别?”,“MyBatis和Hibernate哪个更好?”,“为什么Mybatis用的人越来越多?”等等...记得面试问题,区别问的最多,有次被面试官问到更喜欢用哪一个?明明已经知道这个公司介绍用的是SSM了,我答了个Hibernate,并说先用的也是Hibernate,或许初恋的感觉过于深刻吧...谁好谁差这种主观性问题,我们不争论,但是不容质疑的是两者都为企业级开发做出巨大贡献。同时,带着问题和求知欲去学习往往会让学习效率大大提高,因为许多问题在困惑你的同时,也为你指引了方向。就正如你得会用它,理解它了,才知道它在某方面为什么会不足。

  MyBatis介绍

  早些时候,Apache有一个开源项目iBatis,后来改名了叫Mybatis,所以我们在网上有时候会看到一些早期的文章有时候看到iBatis,其实是同一个东西。同时,大家可以看下MyBatis源码工程结构,如下图,也能发现这个问题。

aaarticlea/png;base64,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" alt="" />

  MyBatis是一个半自动-ORM-持久层框架,下面分别介绍这三个概念,如果了解的的可以直接跳过以节省时间。

  首先持久层比较好理解,就是针对数据库的各种操作持久化层面,我们用jdbc也可以对数据库中表进行增删可查;WEB开发分层结构中,类似的还有业务层、控制层,MyBatis所做用的层,主要是用于与数据库打交道。

  其次ORM(Object Relational Mapping,对象关系映射)是一种技术,也是思想,如果用过jdbc的原生方式操作数据的应该都知道,其中各种获取和更新的操作都已有相关的API了,但是这个过程实在太繁琐,获取连接、构造语句、发送SQL和接收数据、最后是处理数据和关闭流等等...实际的工作开发中,显然不太适用。也许是有人想到,最麻烦的地方在于获取数据后的处理过程,为了简化这一过程,以Java中面向对象的思维构造了这一个ORM关系模型,即每张数据表对应一个Java类,数据表中每一条记录分别对应Java类的一个实体对象,数据表中每个字段对应Java类中的一个属性,这样一来Java中一切皆对象,数据库里的东西既然已经对应映射到Java概念中来,我们再用面向对象的思维去操作数据库,就大大简化了开发流程。

  最后,解释半自动,既然有半自动,应该就有全自动,例如Hibernate就是一个全自动的ORM持久层框架,它在建立数据库和bean对象关系映射模型的同时,提供的api还会帮助我们自动生成和发送SQL语句去操作数据库,而MyBatis略有不同,它也建立了对象关系映射模型,但是并不会帮助我们生成SQL语句,需要我们自己写SQL语句,不少人可能会觉得别人都可以帮你自动生成了这还要自己写,不是没事找事吗?但是恰恰相反,很多人因为这点喜欢上了MyBatis,灵活且透明,自己动手不解释。

  MyBatis重要对象

  关于MyBatis的学习使用过程中,依次要注意的四个对象有SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper实例。

  1.SqlSessionFactoryBuilder

  SqlSessionFactoryBuilder是一个类,里面定义许多重载的build方法,通过build方法可以获取SqlSessionFactory对象,即SqlSession工厂实例

  2.SqlSessionFactory

  SqlSessionFactory是一个接口,看名字应该能明白是SqlSession工厂,里面定义了许多重载的openSession方法,用于获取SqlSession对象

  3.SqlSession

  SqlSession是一个很关键的接口,通过它我们可以执行发送SQL语句、获得Mapper实例等等。以它的第一个方法为例, <T> T selectOne(String statement); 方法名很容易理解,获取数据表的一条记录(在Java中对应返回一个实体类对象),前面的泛型对应的就是实体类的类型,关于String类型的参数statement,用过原生的JDBC操作数据库的应该不会陌生,在使用JDBC过程中,有个Statement对象,通过该对象的类似 ResultSet executeQuery(String sql) throws SQLException; 等方法可以发送SQL语句,方法里的字符串类型参数 sql 就是我们要发送的sql语句,而前面的String statement 同样也是代表我们的sql语句总的来说,selectOne中的statement代表sql语句,JDBC中的statement是能发送sql语句的对象实例,不可混淆。

  4.Mapper实例

  Mapper实例就是我们在dao层定义的定义的接口实例,我们在service层中注入dao对象时关联的是该接口名,而实际上我们拿到了该接口实例也就是Mapper实例。而我们在web开发过程中,持久层的相关方法都定义在Mapper接口中,所以四个对象里我们在前面环境搭建篇比较容易发现的也就是这个Mapper实例所属接口,即PersonMappr接口。Mapper实例可以通过SqlSession的getMapper方法获得。

  MyBatis配置文件

  aaarticlea/png;base64,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" alt="" />

  以上为MyBatis配置文件下节点的结构分布图,熟悉DTD的根据org/apache/ibatis/builder/xml下的约束文件mybatis-*-config.dtd也可以获取XML规范。

  environment(环境)

  在开发中,我们要连接到数据库,往往都需要配置一个数据源,其中包括数据库url参数,用户名和密码等等,另外还有事事务管理器配置。MyBatis中也不例外,在这里针对一个数据库的连接,有一个environment(环境)与之对应,如果有多个数据库,我们可以在environments下定义多个environment。environment下面通过dataSource和transactionManager的property属性进行数据源和事务管理器配置。

  typeAliases(类型命名)

  这个是开发中很实用的配置,前面配置篇中mybatis-config.xml中的<typeAlias alias="person" type="com.mmm.pojo.Person" />,给类绑定别名,然后在其他地方引用时可以不用写类的全名(类似com.xxx.Xxx形式),直接写别名即可,例如后面personMapper.xml映射文件中<resultMap type="person" id="personResultMap" >,这里的person别名就代表该类了,如果没有前面的别名绑定,我们在所有需要类型type指定com.mmm.pojo.Person的时候,都需要写全名。另外MyBatis中本身已经绑定了许多类似的别名,在Configuration类的构造中已经预先注册绑定了相关别名,这也是我们在用Spring集成开发的配置文件中那些特殊别名能得到解析的关键所在,如下所示

public Configuration() {
   
typeAliasRegistry.registerAlias("JDBC", JdbcTransactionFactory.class);
typeAliasRegistry.registerAlias("MANAGED", ManagedTransactionFactory.class);
  
typeAliasRegistry.registerAlias("JNDI", JndiDataSourceFactory.class);
typeAliasRegistry.registerAlias("POOLED", PooledDataSourceFactory.class);
typeAliasRegistry.registerAlias("UNPOOLED", UnpooledDataSourceFactory.class);
   
typeAliasRegistry.registerAlias("PERPETUAL", PerpetualCache.class);
typeAliasRegistry.registerAlias("FIFO", FifoCache.class);
typeAliasRegistry.registerAlias("LRU", LruCache.class);
typeAliasRegistry.registerAlias("SOFT", SoftCache.class);
typeAliasRegistry.registerAlias("WEAK", WeakCache.class);
  
typeAliasRegistry.registerAlias("DB_VENDOR", VendorDatabaseIdProvider.class); typeAliasRegistry.registerAlias("XML", XMLLanguageDriver.class);
typeAliasRegistry.registerAlias("RAW", RawLanguageDriver.class); typeAliasRegistry.registerAlias("SLF4J", Slf4jImpl.class);
typeAliasRegistry.registerAlias("COMMONS_LOGGING", JakartaCommonsLoggingImpl.class);
typeAliasRegistry.registerAlias("LOG4J", Log4jImpl.class);
typeAliasRegistry.registerAlias("LOG4J2", Log4j2Impl.class);
typeAliasRegistry.registerAlias("JDK_LOGGING", Jdk14LoggingImpl.class);
typeAliasRegistry.registerAlias("STDOUT_LOGGING", StdOutImpl.class);
typeAliasRegistry.registerAlias("NO_LOGGING", NoLoggingImpl.class); typeAliasRegistry.registerAlias("CGLIB", CglibProxyFactory.class);
typeAliasRegistry.registerAlias("JAVASSIST", JavassistProxyFactory.class); languageRegistry.setDefaultDriverClass(XMLLanguageDriver.class);
languageRegistry.register(RawLanguageDriver.class);
}

  mappers(映射器)

<mappers>
<mapper resource="com/xxx/xxx/mapper/xxxMapper.xml" />
</mappers>

  以上即为一个映射器配置样式,通过该配置,Mybatis会找到相应的SQL映射文件(前面环境搭建篇中为personMapper.xml),下面详细介绍SQL映射文件。

  MyBatis真正的力量

  The true power of MyBatis is in the Mapped Statements(MyBatis真正的力量就在SQL映射语句里)。这是MyBatis对SQL映射文件作介绍的第一句话,足以体现其重要性,前面说到的半自动的MyBatis需要自己写SQL语句,这个写SQL语句的地方就在这里。

aaarticlea/png;base64,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" alt="" />

  根节点mapper有一个属性namespace(命名空间),对应的是Mapper接口的全名,通过这个属性值的设置,MyBatis才能找到该SQL映射文件对象Mapper接口,从而构造相应的Mapper实例对象。  

  以上为MyBatis的SQL映射xml文件的元素结构,子节点中还有一个parameterMap,不过已经被废弃了,就没画上去。前面四个,看单词意思,应该不难理解,分别用于定义增删改查SQL语句。下面以查询<select>为例

<!-- 根据主键id查找记录 -->
<select id="selectById" resultType="person">
select * from `TBL_PERSON` where id = #{id}
</select>

  上面select节点中id为该节点的唯一标识,与其它节点区分,另一方面,id名对应我们的Mapper接口中的方法名,在这里对应PersonMapper的如下方法:

//根据主键id查找Person对象
Person selectById(String id);

  由于是查询,会有返回数据内容,基于ORM思想,这里的T_PERSON表返回记录有一个实体类与之对应,那么具体对应哪个实体类怎么指定?这里的resultType即指定返回数据对应类型,并且用到了别名,所以这里其实就是指定了com.mmm.pojo.Person类作为对应实体类。另外还有一种resultMap定义方式,也可以指定返回类型,两者不能同时使用,下面会具体讲到。如果方法没有返回值,也可以不指定类型。

  节点中的语句即为该方法对应的SQL语句,这里的#{id}表示参数,对应PersonMapper接口中对应方法的参数String id。

  另外三种<delete><updata><insert>类似,不过要注意,<insert>作为插入节点,有几个特殊属性,useGeneratedKeys、keyProperty、keyColumn,这三个属性都是<insert>特有的,也仅对其有效,keyProperty属性指定数据表主键值对应的实体类属性,这里为Person类中的id;keyColumn属性指定数据表主键字段名,这里为id;useGeneratedKeys指定是否使用数据表主键策略生成的主键值,例如在Mysql中主键可以设置自增,然后我们在插入记录(或者说是写SQL语句)时,即使不指定主键值,插入也会成功,并且主键会自动赋值。为了以示区别,文中构建示例我会使用MySQL的自增主键,而不是之前的随机字符串作为主键。

  <sql>被用来定义可重用的SQL代码段,可以包含在其他语句中。

  再来看<resultMap>,之前的Person实例中,数据表的字段名和实体类属性名都是一样的,id,name,gender。如果不一样的话,我们再采用之前的写法就会有问题了,resultMap给我们提供了解决办法,下面我们通过完整构建一个Mybatis环境来演示整体内容。

  MyBatis实践

  这里我们单独讲Mybatis,并未使用Spring集成环境,也并未用到web层的Spring MVC,所以不需要构建web项目。所以首先通过maven新建一个java项目,pom.xml依赖可以参考前面的SSM环境搭建,最后项目结构大致如下图所示

aaarticlea/png;base64,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" alt="" />

  数据库中准备一张员工表TBL_EMP,三个字段:主键id自增,姓名emp_name,性别emp_gender,插入若干数据,如下图

aaarticlea/png;base64,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" alt="" />

  实体类(Emp.java)

package com.mmm.pojo;
//员工实体类
public class Emp {
private Integer id; //主鍵
private String name; //员工姓名
private String gender; //员工性别 public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}

  配置文件(mybatis-config.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>
<!-- 这里可以定义类的别名,在mapper.xml文件中应用会方便很多 -->
<typeAliases>
<typeAlias alias="emp" type="com.mmm.pojo.Emp" />
</typeAliases>
<!-- 环境配置 -->
<environments default="envir">
<environment id="envir">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/ssm?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/mmm/mapper/empMapper.xml"/>
</mappers>
</configuration>

  Mapper接口(EmpMapper.java)

package com.mmm.mapper;

import java.util.List;

import com.mmm.pojo.Emp;

public interface EmpMapper {

    //新增一个Emp对象
void insert(Emp p); //根据主键id删除Emp对象
void deleteById(Integer id); //修改一个Emp对象
void update(Emp p); //根据主键id查找Emp对象
Emp selectById(Integer id); //查找所有Emp对象,返回集合类型
List<Emp> selectAll();
}

  SQL映射文件(EmpMapper.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"> <!-- namespace命名空间绑定Mapper接口 -->
<mapper namespace="com.mmm.mapper.EmpMapper"> <!-- resultMap定义,property对应实体类中属性,column对应数据表字段名 -->
<resultMap type="emp" id="empResultMap" >
<id property="id" column="id"></id>
<result property="name" column="emp_name"></result>
<result property="gender" column="emp_gender"></result>
</resultMap> <!-- 新增一条记录,这里并未在SQL语句中设置主键id值 -->
<insert id="insert" parameterType="emp" useGeneratedKeys="true" keyProperty="id" keyColumn="id" >
insert into `TBL_EMP`(emp_name,emp_gender) values (#{name},#{gender})
</insert> <!-- 删除一条记录 -->
<delete id="deleteById">
delete from `TBL_EMP` where id = #{id}
</delete> <!-- 更新一条记录 -->
<update id="update" parameterType="EMP">
update `TBL_EMP` set emp_name = #{name}, emp_gender = #{gender}
</update> <!-- 查找所有记录 -->
<select id="selectAll" resultMap="empResultMap">
select * from `TBL_EMP`
</select> <!-- 根据主键id查找记录 -->
<select id="selectById" resultMap="empResultMap">
select * from `TBL_EMP` where id = #{id}
</select>
</mapper>

  测试(TestMyBatis.java)

package com.mmm.test;

import java.io.IOException;
import java.io.Reader;
import java.util.List; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test; import com.mmm.mapper.EmpMapper;
import com.mmm.pojo.Emp; public class TestMyBatis { @Test
public void testCore() throws IOException {
//直接实例SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//MyBatis配置文件路径
String path = "mybatis-config.xml";
//通过路径获取输入流
Reader reader = Resources.getResourceAsReader(path);
//通过reader构建sessionFactory
SqlSessionFactory sessionFactory = builder.build(reader);
//获取SqlSession对象
SqlSession sqlSession = sessionFactory.openSession();
//获取Mapper实例
EmpMapper mapper = sqlSession.getMapper(EmpMapper.class); //获取所有记录并遍历展示
List<Emp> list = mapper.selectAll();
for(Emp emp:list) {
System.out.println("姓名:"+emp.getName()+",性别:"+emp.getGender());
} }
}

  运行程序成功,结果如下

aaarticlea/png;base64,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" alt="" />

  小结

  本文主要介绍了单独以MyBatis构建数据库访问程序的方法步骤,涉及的都是MyBatis基础和核心的内容,数据库也是针对的单表操作。MyBatis的关联查询、动态SQL、事务管理和Spring集成MyBatis等内容准备梳理一番了之后写出来。

SSM框架开发web项目系列(二) MyBatis真正的力量的更多相关文章

  1. SSM框架开发web项目系列(三) MyBatis之resultMap及关联映射

    前言 在上篇MyBatis基础篇中我们独立使用MyBatis构建了一个简单的数据库访问程序,可以实现单表的基本增删改查等操作,通过该实例我们可以初步了解MyBatis操作数据库需要的一些组成部分(配置 ...

  2. SSM框架开发web项目系列(五) Spring集成MyBatis

    前言 在前面的MyBatis部分内容中,我们已经可以独立的基于MyBatis构建一个数据库访问层应用,但是在实际的项目开发中,我们的程序不会这么简单,层次也更加复杂,除了这里说到的持久层,还有业务逻辑 ...

  3. SSM框架开发web项目系列(六) SpringMVC入门

    前言 我们最初的javaSE部分学习后,基本算是入门了,也熟悉了Java的语法和一些常用API,然后再深入到数据库操作.WEB程序开发,渐渐会接触到JDBC.Servlet/Jsp之类的知识,期间可能 ...

  4. SSM框架开发web项目系列(一) 环境搭建篇

    前言 开发环境:Eclipse Mars + Maven + JDK 1.7 + Tomcat 7 + MySQL 主要框架:Spring + Spring MVC + Mybatis 目的:快速上手 ...

  5. SSM框架开发web项目系列(七) SpringMVC请求接收

    前言 在上篇Spring MVC入门篇中,我们初步了解了Spring MVC开发的基本搭建过程,本文将针对实际开发过程的着重点Controller部分,将常用的知识点罗列出来,并配以示例.在这之前,我 ...

  6. SSM框架开发web项目系列(四) MyBatis之快速掌握动态SQL

    前言 通过前面的MyBatis部分学习,已经可以使用MyBatis独立构建一个数据库程序,基本的增删查改/关联查询等等都可以实现了.简单的单表操作和关联查询在实际开的业务流程中一定会有,但是可能只会占 ...

  7. ssm框架下web项目,web.xml配置文件的作用

    1. web.xml中配置了CharacterEncodingFilter,配置这个是拦截所有的资源并设置好编号格式. encoding设置成utf-8就相当于request.setCharacter ...

  8. idea开发web项目框架失效和无法启动问题

    不会配置idea的javaweb环境的小伙伴可以点击此链接 idea最新版,配置javaweb环境 很多小伙伴用idea开发web项目可能会出现所有代码都写对了但是无论如何都没法运行的情况,eclip ...

  9. 使用Spring Boot开发Web项目(二)之添加HTTPS支持

    上篇博客使用Spring Boot开发Web项目我们简单介绍了使用如何使用Spring Boot创建一个使用了Thymeleaf模板引擎的Web项目,当然这还远远不够.今天我们再来看看如何给我们的We ...

随机推荐

  1. Visual Studio中让一个JS文件智能提示另一个JS文件中的成员

    当一个Web页面引用了两个JS文件(假如分别叫common.js和JScript1.js),如果JScript1.js中需要调用大量的common.js中的方法,这时候在JScript1.js中智能提 ...

  2. HDFS Basic Operation

    1.如何启动一个命令行的hadoop客户端 任何一个Hadoop集群中的节点,只要有hadoop安装包,就可以通过# hadoop fs来启动 2.Hadoop基本命令格式 # hadoop  fs  ...

  3. MongoDB固定集合(Capped Collections)

    MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素! ...

  4. HandlerThread学习

    之前基本讲过Handler的一些知识了,我们今天学习下Google封装的一个实现线程通信的一个类HandlerThread 一.HandlerThread使用 @Override protected ...

  5. (转)Spark JAVA RDD API

    对API的解释: 1.1 transform l  map(func):对调用map的RDD数据集中的每个element都使用func,然后返回一个新的RDD,这个返回的数据集是分布式的数据集 l   ...

  6. Linux学习(十三)du、df、fdisk磁盘分区

    一.du du命令是查看文件或者目录大小的命令. 一般使用du -sh 查看,不用-sh参数意义也不大,应为不用这个参数,它会把目录下的所有文件大小递归的显示出来,就像这样: 如果用-sh参数: [r ...

  7. TCP协议的滑动窗口协议以及流量控制

    参考资料 http://blog.chinaunix.net/uid-26275986-id-4109679.html http://network.51cto.com/art/201501/4640 ...

  8. 前端的UI设计与交互之色彩篇

    一.颜色Red热情.警示 Green成功.通过.安全 Blue专业.科技 Pink典雅.明快.女性 Orange醒目.温暖 Purple高雅.浪漫 Yellow活力.提示 Cyan清新.冷静.结构化 ...

  9. RobotFramework自动化测试框架-移动手机自动化测试Get Element Location关键字的使用

    Get Element Location关键字用来获取一个Element的Location位置,该关键字接收一个参数[ locator ] 示例1:使用Get Element Location来获取一 ...

  10. 小程序 wx.getRecorderManager 录音 to 语音识别

    微信扫小程序码看调用效果(自然语言理解小助手) 欢迎转载,请保留原文链接:http://www.happycxz.com/m/?p=125 这次主要是把我的api更新了一下,支持微信小程序新的录音接口 ...