什么是 MyBatis
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
1.安装
使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中:添加坐标
<!--下载jar包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
<!--驱动,根据数据库版本配置-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<!--测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--日志-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
2.把数据库的数据封装成对象
连接数据库
创建bean
3.创建接口
public interface IUserDao {
List<User> findAll();
}
resources里面的IUserDao.xml配置文件
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace对象的映射的接⼝-->
<mapper namespace="com.soft.dao.IUserDao">
<!--id对应接⼝的⽅法-->
<!--resultType把结果封装对象类型-->
<select id="findAll" resultType="com.soft.domain.User">
select * from USER;
</select>
</mapper>
4. 编写 SqlMapConfig.xml 文件(创建在resources下)
<?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>
<!-- 配置 mybatis 的环境 -->
<environments default="development">
<!-- 配置 mysql 的环境 -->
<environment id="development">
<!-- 配置事务的类型 -->
<transactionManager type="JDBC"/>
<!-- 配置连接数据库的信息:⽤的是数据源(连接池) -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/webstudent"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 告知 mybatis 映射配置的位置 -->
<mappers>
<mapper resource="com/soft/dao/IUserDao.xml"/>
</mappers>
</configuration>
5.编写测试类 TestMyBatis
从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。 但也可以使用任意的输入流(InputStream)实例,比如用文件路径字符串或 file:// URL 构造的输入流。MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,使得从类路径或其它位置加载资源文件更加容易
//1.读取配置⽂件
//2.创建 SqlSessionFactory 的构建者对象
//3.使⽤构建者创建⼯⼚对象 SqlSessionFactory
//4.使⽤ SqlSessionFactory ⽣产 SqlSession 对象
//5.使⽤ SqlSession 创建 dao 接⼝的代理对象
//6.使⽤代理对象执⾏查询所有⽅法
//7.释放资源
public class TestMybatis {
public static void main(String[] args) throws IOException {
//1.读取配置⽂件
//2.SqlSession工厂
String resource ="SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//3.创建IUserDao对象
SqlSession sqlSession = sqlSessionFactory.openSession();
IUserDao userDao = sqlSession.getMapper(IUserDao.class);
//4.调用对象的方法
List<User> userDaoAll = userDao.findAll();
for (User user : userDaoAll){
System.out.println(user);
}
//5.处理结果
//6.使⽤代理对象执⾏查询所有⽅法
//7.释放资源,关闭
sqlSession.close();
inputStream.close();
}
}