0.工具

IDEA 2024.2

MySql 8.0.11

Maven 3.6.3

MyBatis 3.5.2

Navicat 或者其他能访问数据库的工具

JDK 1.8

1.数据库准备

创建一个t_student数据库,并插入3条语句。


CREATE TABLE t_student(
   sid INT PRIMARY KEY AUTO_INCREMENT,
   sname VARCHAR(50),
   sage INT
);
INSERT INTO t_student(sname,sage) VALUES('张三',18);
INSERT INTO t_student(sname,sage) VALUES('李四',19);
INSERT INTO t_student(sname,sage) VALUES('王五',20);

navicat运行截图:

2.环境搭建—POM文件

搭建环境前,先在控制台输入 mvn -v 看一下maven是否正常安装,如果没有安装要先安装maven,否则下面的搭建过程没用用。(建议配置阿里云的Maven仓库)

打开IDEA,点击“文件”—>”新建”—>”项目”

然后创建项目参考如下,填写完必要内容后点击“创建”按钮。

点击创建后,项目初始状态如下:

POM文件添加相应的依赖文件,点击刷新按钮,让maven去仓库里面下载所需要的依赖。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.cat</groupId>
    <artifactId>mybatisDemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <!--   	        <scope>test</scope>-->
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>
3.实体类创建

创建实体类文件夹和实体类

然后新建实体类Student

按回车确认。

package org.cat.pojo;

public class Student {
    //学生id
    public  int id;
    //学生姓名
    public  String name;
    //学生年龄
    public  int age;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
4.mapper文件

标记根资源。有的时候创建完项目后,并没用识别出resources文件夹,需要手动标记一下根资源。比较简单,右击“resources”—>将目录标记为—>资源根目录

在resources文件夹底下新增一个文件夹(可以暂时叫mapper),用来存储mapper文件

开始编写xml文件。

右击mapper文件夹

创建完后,添加完相应内容如下:

<?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="org.cat.mapper.StudentMapper">

    <resultMap type="org.cat.pojo.Student" id="studentMap">
        <id property="id" column="sid"/>
        <result property="name" column="sname"/>
        <result property="age" column="sage"/>

    </resultMap>
    <select id="findAllStudent" resultMap="studentMap">
        select * from t_student
    </select>
</mapper>
5. 配置文件

首先配置数据库配置文件。右击“resources”—>新建—>文件

创建结果如下:

mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/javassm?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=123456

再创建MyBatis配置文件。还是右击“resources”——>新建——>文件,这次输入文件名 mybatis-config.xml

<?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>
    <!-- 环境配置 -->
    <!-- 加载类路径下的属性文件 -->
    <properties resource="db.properties"/>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <!-- 数据库连接相关配置 ,db.properties文件中的内容-->
            <dataSource type="POOLED">
                <property name="driver" value="${mysql.driver}"/>
                <property name="url" value="${mysql.url}"/>
                <property name="username" value="${mysql.username}"/>
                <property name="password" value="${mysql.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!-- mapping文件路径配置 -->
    <mappers>
        <mapper resource="mapper/StudentMapper.xml"/>
    </mappers>

</configuration>
6.编写测试类

我们在test文件夹中创建对应的测试类

补充测试类 语句

package Test;


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 org.cat.pojo.Student;
import org.junit.Test;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

public class StudentTest {

    @Test
    public void userFindByIdTest() {
        //读取文件名
        String resources = "mybatis-config.xml";
        //创建流
        Reader reader = null;
        try {
            //读取mybatis-config.xml文件内容到reader对象中
            reader = Resources.getResourceAsReader(resources);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //初始化mybatis数据库,创建SqlSessionFactory类的实例
        SqlSessionFactory sqlMapper = new
                SqlSessionFactoryBuilder().build(reader);
        //创建SqlSession实例
        SqlSession session = sqlMapper.openSession();
        //传入参数查询,返回结果
        List<Student> studentList = session.selectList("findAllStudent"); //查询所有
        //输出结果
        for (Student student : studentList) {
            System.out.println(student);
        }
        //关闭session
        session.close();
    }
}
7.测试效果
分类: java