什么是MyBatis?为什么要使用Mybatis?

MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_关系映射

Mybatis优点

  • myBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
  • sql和代码的分离,提高了可维护性。
  • 提供映射标签,支持对象与数据库的orm字段关系映射
  • 提供对象关系映射标签,支持对象关系组建维护
  • 提供xml|标签,支持编写动态sql

 

 

例1-只用JDBC,不用Mybatis的情景

当只用jdbc时(MySQL - JDBC介绍),依然需要在UserDaoImpl实现类的方法中,写出实际的sql语句,再用Connection和PrepareStatement进行增删改查的操作,再手动获取结果集.

MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_配置文件_02

jdbc例子:

 

 

 MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_关系映射_03

 

 

例2-使用了Mybatis的情景

接口实现类由原来的UserDaoImpl转变为一个Mapper配置文件。这里的UserMapper.xml实际上就是UserDao的实现类

MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_配置文件_04 

 

为什么需要Mybatis

MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_关系映射_05

 

写一个简单的Mybatis程序

1-搭建环境,导入依赖

MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_配置文件_06

 

 

 

2-编写mybatis-config.xml核心配置文件

MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_配置文件_07

 

 

 

 

 

3-定义工具类,获取SqlSessionFactoryBuilder,SqlSessionFactory, SqlSession

SqlSession包含了所有增删改查的方法,就类似于Mysql里PrepareStatement类,做同样的事情。

MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_xml_08

 

 

三者关系:SqlSessionFactoryBuilder vs SqlSessionFactory vs SqlSession

javascript:void(0)

 

 

4-编写代码

4.1-实体类

对应的数据库表是:

MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_关系映射_09

 

 

因此pojo的类也是同样的三个属性: 

MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_配置文件_10

 

 

 

4.2-Dao接口

MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_sql_11

 

 

4.3-接口实现类由原来的UserDaoImpl转变为一个Mapper配置文件

这里的UserMapper.xml实际上就是UserDao的实现类

MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_配置文件_04

 

 

 

5-测试

写接口即可。

MyBatis - MyBatis简介 + 写一个简单的Mybatis程序_配置文件_13