一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第15天,点击查看活动详情。
写在前面👀
今天主要讲讲
Mybatis的简单使用,明天再来介绍下它的具体使用
一、Mybatis概述
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射,通过
XML配置文件或注解来简化JDBC的代码。
1️⃣Mybatis官方网址
2️⃣Mybatis依赖下载
- GitHub下载压缩包
- 使用
Maven下载
<!--Mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
二、准备Mybatis环境
1️⃣数据库准备
- 创建user表,添加相关数据
create table user(
id int primary key auto_increment,
username varchar(20),
password varchar(20),
gender char(1),
address varchar(20)
);
INSERT INTO user VALUES (1, '大角牛', '123456', '男', '衢州');
INSERT INTO user VALUES (2, '倔强的牛角', 'abcde', '女', '沈阳');
INSERT INTO user VALUES (3, 'bighorn', 'big', '男', 'Washington');
2️⃣创建Maven工程
3️⃣创建实体类
- 与数据库的user表对应,创建一个User类
public class User {
private int id;
private String username;
private String password;
private String gender;
private String address;
/* getter and setter */
}
4️⃣配置 pom.xml文件
- 导入坐标,使用Maven添加
mybatis依赖、mysql驱动、Junit单元测试
<!--Mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
<!--mysql 驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
<scope>runtime</scope>
</dependency>
<!--junit 单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
5️⃣配置mybatis-config.xml文件
- 在resources目录下创建mybatis的核心配置文件
mybatis-config.xml,其主要作用是提供连接数据库用的驱动,加载Mapper映射文件等
<?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>
<typeAliases>
<package name="com.bighorn.pojo"/>
</typeAliases>
<!--数据库连接信息-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--加载sql映射文件-->
<mappers>
<package name="com.bighorn.mapper"/>
</mappers>
</configuration>
三、使用Mapper映射代理开发
1️⃣一般规范要求
- 定义与SQL映射的
xml文件同名的Mapper接口,并且将Mapper接口和SQL映射的xml文件放置在同一目录下。 - 如下图所示,Mapper接口和xml文件都叫userMapper,都放在com.bighorn.mapper目录下
2️⃣编写userMapper.xml映射文件
- namespace:名称空间。必须是对应接口的
全限定名 - id:对应接口中的方法
- resultType:返回值类型
<?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.bighorn.mapper.userMapper">
<select id="selectAll" resultType="com.bighorn.pojo.User">
select *
from user;
</select>
</mapper>
3️⃣编写userMapper接口
public interface userMapper {
List<User> selectAll();
}
4️⃣写个主方法测试
public static void main(String[] args) throws IOException {
//1. 加载mybatis的核心配置文件,获取 SqlSessionFactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//2. 获取SqlSession对象,用它来执行sql
SqlSession sqlSession = sqlSessionFactory.openSession();
//3. 执行sql
//3.1 获取userMapper接口的代理对象
userMapper userMap = sqlSession.getMapper(userMapper.class);
List<User> users = userMap.selectAll();
System.out.println(users);
//4. 释放资源
sqlSession.close();
}
- 演示结果如下👇
写在后面🍻
感谢观看啦✨
有什么不足,欢迎指出哦💖
掘金的运营同学审核辛苦了💗