一.Maven环境搭建
1.新建一个基本maven项目,将src文件夹删掉如下图
2.修改pom.xml导入依赖和防止过滤
- junit单元测试
- mysql导入自己对应的版本
- mybatis环境
<dependencies>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
</dependencies>
防止target过滤xml文件
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
3.连接数据库
此处我们事先建好了一个mysql数据库:mybatis,该数据库下有user表
5.新建一个Module开始写第一个Mybatis程序
二.第一个Mybatis程序
1.首先在resources文件夹下编写mybatis-config.xml
可以从官网(https://mybatis.org/mybatis-3/zh/index.html)中拿到
如下:
2.编写数据库表的对应pojo类
3.编写MybatisUtils类(核心)
从官网中拿到模板
将其封装成utils类方便使用
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {//获取sqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//从 SqlSessionFactory 中获取 SqlSession 返回
// SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
4.新建一个UseDao/Mapper
在javaweb中的Dao(Data Access Object,数据持久化管理)到Mybatis演化成了Mapper,以后Dao建议写成Mapper;同时,以往UserDao实现类UserDaoImpl演化成用UserMapper.xml实现
(1)先看一下常规JDBC操作:UserDaoImpl
在test文件夹下对应路径编写测试类输出
(2)再看一下Mybatis提供的方式:
从官网拿到模板
修改为对应的语句
再到mybatis-config.xml下注册mapper
编写测试方法
5.Mybatis对比传统JDBC
jdbc技术连接数据库需要经历一系列的步骤,先要加载驱动,然后获取连接,获取预处理对象,然后通过预处理对象进行查询,得到结果集。
而Mybatis不需要我们手动加载驱动,获取连接,在预处理对象时不需要手动封装对象等。
Mybatis是基于JDBC的,并且优于JDBC