搭建mybatis环境实现crud

在这里插入图片描述

1、idea创建maven工程

2、添加对应的依赖pom.xml

 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.29</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.9</version>
        </dependency>

3、创建user实体类


package com.geekmice.mvnmybatis.bo;


import java.util.Date;

public class UserDO {
    
    
    private String userName;
    private Date birthday;
    private String sex;
    private String address;
    private String id;

    public String getUserName() {
    
    
        return userName;
    }

    public void setUserName(String userName) {
    
    
        this.userName = userName;
    }

    public Date getBirthday() {
    
    
        return birthday;
    }

    public void setBirthday(Date birthday) {
    
    
        this.birthday = birthday;
    }

    public String getSex() {
    
    
        return sex;
    }

    public void setSex(String sex) {
    
    
        this.sex = sex;
    }

    public String getAddress() {
    
    
        return address;
    }

    public void setAddress(String address) {
    
    
        this.address = address;
    }

    public String getId() {
    
    
        return id;
    }

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

    @Override
    public String toString() {
    
    
        return "UserBO{" +
                "userName='" + userName + '\'' +
                ", birthday=" + birthday +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                ", id='" + id + '\'' +
                '}';
    }
}

4、创建数据层DAO

package com.geekmice.mvnmybatis.dao;

import com.geekmice.mvnmybatis.bo.UserDO;

import java.util.List;

public interface UserDAO {
    
    
    List<UserDO> listUsers();

    UserDO getUserById(String id);
}

5、创建映射文件xml

<?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.geekmice.mvnmybatis.dao.UserDAO">
    <select id="listUsers" resultType="com.geekmice.mvnmybatis.bo.UserDO">
        select
         user_name as userName,
         birthday,
         sex,
         address,
         id
         from user;
    </select>

    <!--根据id查询用户信息-->
    <select id="getUserById" parameterType="java.lang.String" resultType="com.geekmice.mvnmybatis.bo.UserDO">
        select
        user_name as userName,
        birthday,
        sex,
        address,
        id
        from user
        <where>
            <if test="id != null || id != '' ">
                id = #{id}
            </if>
        </where>
    </select>
</mapper>

6、创建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="dbconfig.properties"/>

    <!--打印日志-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <!-- 7.environments数据库环境配置 -->
    <!-- 和Spring整合后environments配置将被废除 -->
    <environments default="development">
        <environment id="development">
            <!-- 使用JDBC事务管理 -->
            <transactionManager type="JDBC"/>
            <!-- 数据库连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url"
                          value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 8.加载映射文件 -->
    <mappers>
        <mapper resource="mapper/UserDao.xml"/>
    </mappers>
</configuration>


7、创建数据库连接属性文件

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.*:3306/school?useSSL=false&useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

8、单元测试

package com.geekmice.mvnmybatis.test;

import com.geekmice.mvnmybatis.bo.UserDO;
import com.geekmice.mvnmybatis.dao.UserDAO;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.List;

public class MybatisTest {
    
    

    private SqlSession sqlSession;

    /**
     * @throws SQLException
     * @Description 读取配置文件,创建SQL工厂,打开回话
     */
    @Before
    public void init() throws SQLException, IOException {
    
    
        InputStream is = Resources.getResourceAsStream("mybatis_config.xml");
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(is);
        sqlSession = factory.openSession();
    }

    /**
     * @Description 销毁回话
     */
    @After
    public void destroy() {
    
    
        if (sqlSession != null) {
    
    
            sqlSession.close();
        }
    }

    @Test
    public void test() throws IOException {
    
    
        UserDAO userDAO = sqlSession.getMapper(UserDAO.class);
        // 测试查询
        List<UserDO> userDOList = userDAO.listUsers();
        for (UserDO userDO : userDOList) {
    
    
            System.out.println(userDO);
        }
    }
}

9、响应结果

Logging initialized using ‘class org.apache.ibatis.logging.stdout.StdOutImpl’ adapter.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
Opening JDBC Connection
Created connection 1702940637.
Setting autocommit to false on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@6580cfdd]
> Preparing: select user_name as userName, birthday, sex, address, id from user;
> Parameters:
<
Columns: userName, birthday, sex, address, id
<
Row: 胡一刀, 1995-07-07 00:00:00, 男, [email protected], 1
<== Total: 1
UserBO{userName=‘胡一刀’, birthday=Fri Jul 07 00:00:00 CST 1995, sex=‘男’, address=‘[email protected]’, id=‘1’}
Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@6580cfdd]
Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@6580cfdd]
Returned connection 1702940637 to pool.

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/greek7777/article/details/127031906