MySQL-Mybatis(使用xml配置)

使用Mybatis连接MySQL数据库

使用XML配置

1.建立maven工程,导入mybatis坐标

导入maven坐标和数据库连接的pom坐标

    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.6</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>

2.建立主配置文件

在resource文件夹下建立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文件 -->
    <properties resource="jdbc.properties"></properties>
    <environments default="development">
            <environment id="development">
                    <transactionManager type="JDBC"/>
                    <dataSource type="POOLED">
                            <property name="driver" value="${driver}"/>
                            <property name="url" value="${url}"/>
                            <property name="username" value="${user}"/>
                            <property name="password" value="${password}"/>
                    </dataSource>
            </environment>
    </environments>
</configuration>

在resource文件夹下建立jdbc.properties配置文件保存数据库配置

driver = com.mysql.cj.jdbc.Driver
url = jdbc:mysql://localhost:3306/zzu?serverTimeZone=UTC&characterEncoding=utf-8
user = root
password = 123456

3.建立实体类、工具类、Dao接口

3.1建立实体类

对应数据库表中的字段,进行实体类pojo/userinfo的建立

package pojo;
public class userinfo {
    private Integer id;
    private String college;
    private String name;
    private Integer picId;

    public userinfo(Integer id, String college, String name, Integer picId) {
        this.id = id;
        this.college = college;
        this.name = name;
        this.picId = picId;
    }

    public userinfo() {
    }

    @Override
    public String toString() {
        return "userinfo{" +
                "id=" + id +
                ", college='" + college + '\'' +
                ", name='" + name + '\'' +
                ", picId=" + picId +
                '}';
    }

    public Integer getId() {
        return id;
    }

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

    public String getCollege() {
        return college;
    }

    public void setCollege(String college) {
        this.college = college;
    }

    public String getName() {
        return name;
    }

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

    public Integer getPicId() {
        return picId;
    }

    public void setPicId(Integer picId) {
        this.picId = picId;
    }
}

连接工具类utils/MybatisUtils的创建

package util;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MybatisUtils {
    private static SqlSession sqlSession = null;
    public static SqlSession getSqlSession(){
        try{
            if(sqlSession == null){
                sqlSession = new SqlSessionFactoryBuilder().build(MybatisUtils.class.getClassLoader().
                        getResourceAsStream("mybatis-config.xml")).openSession();
            }
        }catch(Exception e){
                System.out.println("获取session出错");
                e.printStackTrace();
            }
        return sqlSession;
    }

    public static void close(){
        if(sqlSession != null){
            sqlSession.close();
        }
    }
}

Dao接口Dao/userDao的创建

package Dao;

import pojo.userinfo;

import java.util.List;

public interface UserDao {
	// 查找所有
    public List<userinfo> findAll();
}

4.Dao接口映射Mapper的创建

在resource文件下建立与Dao接口相同的目录结构

创建userDaoMapper.xml文件,对Dao接口进行配置

<?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="Dao.UserDao">
    <select id="findAll" resultType="pojo.userinfo">
        select * from userinfo
    </select>
</mapper>

namespace指定的是要绑定的Dao接口,写全限定类名

当进行查询操作时,使用<select>标签,id与Dao接口中的方法绑定,名字相同,resultType对应着返回类型,与实体类绑定,写全限定类名,之后进行SQL语句的书写

5.在mybatis-config.xml中进行Dao接口配置文件的添加

<?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文件 -->
        <properties resource="jdbc.properties"></properties>
        <environments default="development">
                <environment id="development">
                        <transactionManager type="JDBC"/>
                        <dataSource type="POOLED">
                                <property name="driver" value="${driver}"/>
                                <property name="url" value="${url}"/>
                                <property name="username" value="${user}"/>
                                <property name="password" value="${password}"/>
                        </dataSource>
                </environment>
        </environments>
		<!-- 添加Dao接口的xml配置-->
        <mappers>
                <mapper resource="Dao/UserMapper.xml"/>
        </mappers>
</configuration>

6.创建测试类

使用@Test进行测试

package mybatis;
import Dao.UserDao;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import pojo.userinfo;
import util.MybatisUtils;	
import java.util.List;	

public class MybatisTest {
    @Test
    public static void main(String[] args) {
		// 使用工具类获取sqlSession
        SqlSession sqlSession = MybatisUtils.getSqlSession();
		// 利用反射来创建Dao接口的实例
        UserDao userDao = sqlSession.getMapper(UserDao.class);
		// 调用Dao接口的方法,得到结果
        List<userinfo> list = userDao.findAll();
		// 遍历结果
        for (userinfo user : list) {
            System.out.println(user);
        }

    }
}

通过以上六个步骤,完成使用xml配置形式的Mybatis的使用

posted @ 2021-04-07 11:37  慕冰  阅读(2281)  评论(0编辑  收藏  举报