1.创建工程

alt

alt

2.引入相关依赖

1.在pom.xml文件中导入Mysql驱动包,Junit测试包,Mybatis的核心包等相关依赖。 2.下面代码块放入的里面。 3.在第一次引入依赖时,需要在联网的状态下,且需要的实践较长,需要耐心等待。 alt


	<dependencies>
<!--        mybatis的核心包配置-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
<!--        junit测试包的配置-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
<!--        MySQL驱动包的配置-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>
    </dependencies>
<!--由于idea不会自动编译src/main/java目录下的xml文件,下面的代码是将此目录下的XML资源编译进class文件夹中-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>src/main/resources/db.properties</include>
                    <include>.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

如果遇到依赖包无法加载的情况。。。。 法一:鼠标右击点击Maven,然后在点击Reload project。。

alt

法二:鼠标右击点击Maven,然后在点击Open Settings.xml。。 (此方法可能时镜像的问题,国外下载速度慢)

alt

复制以下代码块到Settings.xml文件中。


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

    <mirrors>
        <mirror>
            <id>aliyunmaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </mirror>

    </mirrors>
</settings>
3.创建数据库连接信息的配置文件信息。

在项目的src/main/resources目录下创建数据库连接的配置文件,这里将其命名为db.properties,该文件中配置数据库连接的参数。


mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&\characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
#注意密码是你电脑中自己设置的数据库密码
mysql.password=root
4.创建mybatis的核心配置文件

在项目的src/main/resources目录下创建Mybatis的核心配置文件,用于项目的环境配置,如数据库的连接的相关配置等。核心配置文件可以随意命名,但通常起名为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>

<!--    映射文件的的配置-->
    <mappers>
			<mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>
5.创建数据库及数据的准备

(1)在mybatis中创建一个名为mybatis的数据库

create  database mybatis;

(2)在mybatis数据库下创建users表,并在表中插入两条值


use mybatis;
create table users(
	uid int primary key auto_increment,
	uname varchar(20) not null,
	uage int not null
);
insert into usesr(uid,uname,uage) values(null,'张三',20),(null,'李四',18);
6.创建POJO实体

在项目src/main/java目录下创建com.example.pojo包,在此包下建立User类,用于封装User对象的属性。


package pojo;

public class User {
    private int uid;//用户id
    private String uname;//用户姓名
    private int uage;//用户年龄
    public int getUid(){
        return uid;
    }
    public void setUid(int uid){
        this.uid=uid;
    }
    public String getUname(){
        return uname;
    }
    public void setUname(String uname){
        this.uname=uname;
    }
    public int getUage(){
        return uage;
    }
    public void setUage(int uage){
        this.uage=uage;
    }
}

7.创建映射文件UserMapper.xml

在项目src/main/resources目录下创建一个mapper文件夹,在mapper文件下创建UserMapper.xml文件,该文件用于配置SQL语句和Java对象之间的映射。

文件内容为:


<?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为映射的根节点-->
<!--mapper为映射的根节点,namespace指定Dao接口的完整类名mybatis会依据这个接口动态创建一个实现类去实现这个接口,而这个实现类是一个Mapper对象-->

<mapper namespace="pojo.User">
    <!--id"接口中的方法名" parameterType="传入的参数类型" resultType="返回实体类对象,使用包.类名"-->
    <select id="findById" parameterType="int" resultType="pojo.User">
        select * from users where uid=#{id}
    </select>

</mapper>

8.修改mybatis-config.xml文件的配置

在mybatis-config.xml映射文件的后面加入UserMapper.xml文件路径的配置(上述文件代码中已加入

<!--    映射文件的的配置-->
    <mappers>
            <mapper resource="mapper/UserMapper.xml"/>
    </mappers>

元素指定了UserMapper.xml文件的路径

9.编写测试类

在src/test/java下创建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 pojo.User;

import java.io.IOException;
import java.io.Reader;

public class UserTest {

    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();
        //传入参数查询,返回结果
        User user=session.selectOne("findById",1);
        //输出结果
        System.out.println(user.getUname());
        //关闭session
        session.close();
    }
}

** 主函数为:**

 package org.example;

import Test.UserTest;

public class UserMain {
    public static void main(String[] args) {
        UserTest test=new UserTest();
        test.userFindByIdTest();
    }
}

运行结果:

alt

10.Mybatis的工作原理:

alt