目录
前言
1、创建数据库
2、导入相关依赖
3、Mybatis核心配置文件
4、创建实体类
5、Mybatis封装工具类
6、编写dao接口及接口配置文件
7、编写Junit测试单元
8、结果展示
前言
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
1、创建数据库
在学习Mybatis之前,首先要对数据库操作有所了解,一定要先建好表。
2、导入相关依赖
1)依赖包括Mybatis依赖包,数据库连接驱动以及Junit测试单元
junit junit4.11 test org.mybatis mybatis3.5.6 mysql mysql-connector-java8.0.28
2)在build中配置resources,来防止我们资源导出失败的问题
src/main/resources ***.xml src/main/java ***.xml true
3、Mybatis核心配置文件
1)每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。 并且每一个Mapper.xml都需要在Mybatis核心配置文件中注册。
mybatis-config.xml :
2) 使用属性配置文件连接数据库(推荐使用),可将上述代码一分为二
mybatis-config.xml :
1)可以给实体类起别名
2)也可以扫描实体类的包,它的默认别名就是这个类的类名,首字母小写
3)注册Mapper.xml,可以使用包路径加载,也可以使用资源路径
db.properties:
1)如果mysql-connector-java用的6.0以上的,此时需要把com.mysql.jdbc.Driver 改为com.mysql.cj.jdbc.Driver。
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8 driver=com.mysql.cj.jdbc.Driver username=root password=123456
2)如果使用的数据库是8.0.11以上版本的MySQL,需要配置时区,这是由于数据库和系统时区差异所造成的。
url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=Shanghai&?useUnicode=true&characterEncoding=utf8&useSSL=false
连接数据库:
先点“+”,再选择自己所用的数据库 ,然后点击Schemas,选择自己的数据库即可,连接完成之后,可以查看自己数据库中的表。
4、创建实体类
注意:实体类的变量名称要与数据库字段名一致,否者可能查询为Null
package com.pojo;
public class User {
private int userid;
private String username;
private String password;
public User() {
}
public User(int userid, String username, String password) {
this.userid = userid;
this.username = username;
this.password = password;
}
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "userid:" + userid +
", username:" + username +
", password:" + password;
}
}
5、Mybatis封装工具类
MybatisUtils.java:
package com.dao.utils;
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.InputStream;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
//使用Mybatis第一步:获取sqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession() {
return sqlSessionFactory.openSession();
}
}
6、编写dao接口及接口配置文件
UserMapper:
package com.dao;
import com.pojo.User;
import java.util.List;
public interface UserMapper {
//查询全部用户
List getUserList();
//根据ID查询用户
User getUserById(int userid);
//增加一个用户
int addUser(User user);
//修改用户
int updateUser(User user);
//删除一个用户
void deleteUser(int userid);
}
UserMapper.xml:
7、编写Junit测试单元
package com.dao;
import com.pojo.User;
import com.dao.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserDaoTest {
@Test
public void test() {
//第一步:获得SqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List userList = userMapper.getUserList();
for (User user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
}
8、结果展示
查询到了全部用户,程序结束。
如遇错误 ,请参考下面文章:https://blog.csdn.net/qq_53860947/article/details/123452367



