Mybatis 快速入门(一)⚽

228 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第15天,点击查看活动详情

写在前面👀

今天主要讲讲Mybatis的简单使用,明天再来介绍下它的具体使用

一、Mybatis概述

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射,通过XML配置文件注解来简化JDBC的代码。

1️⃣Mybatis官方网址

2️⃣Mybatis依赖下载

  1. GitHub下载压缩包
  2. 使用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工程

image-20220417223504939

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目录下image-20220417231516608

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();
}
  • 演示结果如下👇

image.png

写在后面🍻

感谢观看啦✨
有什么不足,欢迎指出哦💖
掘金的运营同学审核辛苦了💗