目录
一、mybatis介绍
官方简介
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
通俗易懂
mybatis之前是Apache的一个开源项目iBatis,从Software Foundation 迁移到了 Google Code更名为Mybatis,是一款优秀的持久层(dao层)框架,对JDBC轻量级的封装,通过核心配置文件xml可以与数据库交互,支持动态 SQL 以及数据缓存。
官网:mybatis
二、搭建步骤
1.创建Maven项目
添加Mybatis和MySQL依赖的jar包,以下是jar包坐标:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
2.创建数据库并建表和相关类
创建数据库和admin表(后面用于测试mybatis),创建接口和java类
sql语句:
CREATE DATABASE ssm_db CHARSET utf8
CREATE TABLE admin(
id INT PRIMARY KEY AUTO_INCREMENT,
account VARCHAR(10),
PASSWORD VARCHAR(20)
)
DROP TABLE IF EXISTS admin
Admin类和AdminDao接口
Admin类属性有id,account,password,注意要与数据库中admin表的字段名称相同
AdminDao接口如下:
3.创建全局配置文件,配置数据库连接信息
在resources文件下创建xml文件,名称可以为mybatis,然后在官网复制粘贴数据库连接实例的xml文件内容,并修改相关元素信息,网址:mybatis – MyBatis 3 | 入门
分别修改property内的value为自己连接的数据库的信息
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/ssm_db?serverTimezone=Asia/Shanghai"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mappers/AdminDao.xml"/>
</mappers>
</configuration>
4.配置sql映射文件
在 resources文件下新建mappers文件夹,在mappers文件夹下新建AdminDao.xml文件,配置映射
在AdminDao.xml文件里可以继续复制mybatis – MyBatis 3 | 入门
官网中一下代码:
将代码中mapper标签中namespace的路径改为接口的全类名,在select标签中填写自己测试的sql语句,id为方法名称,resultType路径为方法返回的数据类型,如果返回类,路径为类的全类名,parameterType为方法的参数类型:
<?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">
<mapper namespace="com.my.mybatis.dao.AdminDao">
<select id="findAdminById" resultType="com.my.mybatis.model.Admin" parameterType="int">
select * from admin where id = #{id}
</select>
</mapper>
最后将新建的AdminDao.xml文件配置到全局配置文件mybatis.xml文件中,在mybatis.xml文件中添加:
<mappers>
<mapper resource="mappers/AdminDao.xml"/>
</mappers>
以上就已经基本搭建好mybatis项目了,下来测试是否搭建测试成功
5.测试
可以新建一个Test类用来测试:
可以添加Admin的无参构造方法,在sql表中添加admin记录用来测试
import com.my.mybatis.dao.AdminDao;
import com.my.mybatis.model.Admin;
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 java.io.IOException;
import java.io.Reader;
public class Test {
public static void main(String[] args) throws IOException {
// 读取配置文件
Reader reader = Resources.getResourceAsReader("mybatis.xml");
//创建 SqlSessionFactory
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//创建 SqlSession
SqlSession sqlSession = sessionFactory.openSession();
//获得接口代理对象
AdminDao adminDao = sqlSession.getMapper(AdminDao.class);
//调用方法
Admin admin = adminDao.findAdminById(1);
//测试返回的admin对象
System.out.println(admin);
//关闭
sqlSession.close();
}
}
测试成功