为了偷懒,撇开了JDBC投靠Mybatis。打死都学不会SQL语句的懒癌晚期患者,用Mybatis Generator来解放双手,告别SQL小妖精。
目录
1. 内容简介
快速搭建一个使用MyBatis的工程,在看到它如何让我们简单方便地操作数据库之后再逐步去了解Mybatis中的基础概念和配置项详解。

最系统详细的资料来自于官方:
MyBatis Doc:http://www.mybatis.org/mybatis-3/index.html
2. 基础概念简介
开始配置及使用mybatis之前需要了解几个基本概念。之所以在开始之间清理概念,在因为在查找资料过程中发现很多C++里面没有的词汇,被entity、pojo、dao、po这些搞晕了,在此进行清理。
ORM:对象关系映射
ORM模型就是数据库表和简单Java对象的映射关系模型,主要解决数据库数据和POJO对象的相互映射。通过这层映射关系就可以简单迅速地把数据库表的数据转化为POJO,这样数据库在我们的程序里就可以在程序里当成一般的Java对象来使用。
POJO:plain ordinary java object
直译称作:简单Java对象。
POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。POJO的格式用于数据的临时传递,它只能装在数据,作为数据存储的载体,而不具有业务逻辑处理的能力。
主要是用来对只有setter和getter方法的jaava类的简称,同时又为了区别于JavaBean强调类的简单,所以有这样一个称呼。“We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it’s caught on very nicely.”--Martin Fowler
just为程序员的共同语言取了个名字。
参考链接: POJO的解释
DAO : Data Access Object
数据访问对象。其主要功能是进行数据操作。DAO层在一般程序开发框架中的位置示意图如下:
DAO层功能定义是:提供多个原子性的DAO操作,数据库的增删改查在应用层都属于原子性操作。
在实现中,DAO是以接口为操作标准,DAO应该是something的集合的样子,包含以下几个部分:- DAO接口:定义数据库的增删操作
Mybatis中的mapper接口 - DAO接口的实现:数据的增删改查操作由此部分进行实现
Mybatis中的mapper接口文件或者基于注解的mapper接口。 - PO类:属性与数据库表对应的POJO对象
也有说是VO,关于VO和PO的区别有兴趣可以参看此处,个人觉得是PO,不纠结,只要知道所有跟数据库对应的叫PO、POJO啥的都是表示这个意思就行。 - 代理实现类:主要完成数据库的打开和关闭,并且调用真实实现类对象的操作。
对应Mybatis中的SqlSession。 - 工厂类:通过工厂类取得一个DAO的实例化对象。
在Mybatis中就是SqlSessionFactory。
基于以上理解,在示例工程中将不会使用dao来进行命名,因为整个示例才组成一个DAO。
- DAO接口:定义数据库的增删操作
MyBatis核心组件
- SqlSessionFactoryBuilder:会根据配置信息或者代码来生成SqlSessionFactory(工厂接口);
- SqlSessionFactory:依靠工厂来生成SqlSession(会话);
- SqlSession:可以发送SQL去执行并返回结果,也可以获取Mapper的接口。
- SQL Mapper:映射关系的核心实现,负责发送SQL去执行并返回结果。
他们之间的关联如下:
详细请参考:MyBatis基础概念
MyBatis需要提供的映射文件包含三个部分:SQL、映射规则和POJO。映射规则就是我们常见的教程里介绍的xml配置文件,SQL有两种方式提供:接口文件(.xml)和注解。在MyBatis里面称作Mapper。
MyBatis的ORM模型如下:

厘清以上概念后建立的工程目录如下:

其中,entity包中存放的就是PO或者POJO,也就是与数据库表对应的Java类。mapper包存放的是Mybatis的SQL部分的接口和实现。对于使用接口文件的方式,个人习惯将.xml文件放在resource下mapper文件夹内。service中进行mybatis的调用,包括SqlSessionFactory的生成和mapper接口的调用测试。
resources目录下包含所需的生成及配置文件,到目前为止,暂时认为都是空的,后面的开发环境搭建中会分别进行填补。
3. 开发环境搭建
3.1. pom配置
使用Mybatis只需要再工程中添加对应的依赖即可。使用maven搭建使用MyBatis的开发环境十分方便,此处以IntelliJ IDEA作为开发工具建立maven工程,连接的数据库以MySQL为例。
添加依赖,在pom中加入mybatis包和数据库驱动包(此处是MySQL),version自填,两个包之间的版本号没有关联。
<dependencies>
……
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</