目录
一、mybatis介绍
官方简介
通俗易懂
二、搭建步骤
1.创建Maven项目
2.创建数据库并建表和相关类
3.创建全局配置文件,配置数据库连接信息
4.配置sql映射文件
5.测试
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
添加Mybatis和MySQL依赖的jar包,以下是jar包坐标:
mysql
mysql-connector-java
8.0.16
org.mybatis
mybatis
3.4.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接口如下:
在resources文件下创建xml文件,名称可以为mybatis,然后在官网复制粘贴数据库连接实例的xml文件内容,并修改相关元素信息,网址:mybatis – MyBatis 3 | 入门
分别修改property内的value为自己连接的数据库的信息
在 resources文件下新建mappers文件夹,在mappers文件夹下新建AdminDao.xml文件,配置映射
在AdminDao.xml文件里可以继续复制mybatis – MyBatis 3 | 入门
官网中一下代码:
将代码中mapper标签中namespace的路径改为接口的全类名,在select标签中填写自己测试的sql语句,id为方法名称,resultType路径为方法返回的数据类型,如果返回类,路径为类的全类名,parameterType为方法的参数类型:
最后将新建的AdminDao.xml文件配置到全局配置文件mybatis.xml文件中,在mybatis.xml文件中添加:
以上就已经基本搭建好mybatis项目了,下来测试是否搭建测试成功
可以新建一个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();
}
}
测试成功