springboot 整合mybatis小案例

1.项目结构搭建

2.相关依赖

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.1</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.25</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.25</version>
    </dependency>

3.创建实体类

package com.kgc;

import java.io.Serializable;

public class User implements Serializable {

    private static final long serialVersionUID = 8104961490512068314L;
    private int id;
    private String name;
    private String dept;
    private String phone;

    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 String getDept() {
        return dept;
    }

    public void setDept(String dept) {
        this.dept = dept;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", dept='" + dept + '\'' +
                ", phone='" + phone + '\'' +
                '}';
    }

}

4.创建Mapper

package com.kgc.mapper;

import com.kgc.User;

public interface UserMapper {
    User getUserById(Integer id);
}

5.资源文件相关

<?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.kgc.mapper.UserMapper">
    <!-- 自定义封装规则 -->
    <resultMap id="userMap" type="User">
        <id property="id" column="id" javaType="java.lang.Integer"></id>
        <result property="name" column="name" javaType="java.lang.String"></result>
        <result property="dept" column="dept" javaType="java.lang.String"></result>
        <result property="phone" column="phone" javaType="java.lang.String"></result>
    </resultMap>

    <select id="getUserById" parameterType="int" resultMap="userMap">
        select * from `user` where id = #{id}
    </select>
</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>
    <!--引用properties文件-->
    <properties resource="mysql.properties"></properties>
    <typeAliases>
        <typeAlias alias="User" type="com.kgc.User"/>
    </typeAliases>

    <!-- 配置mybatis多环境,default可以快速切换到某个具体环境 -->
    <environments default="development">
        <!--配置一个具体的环境信息,id是当前环境的唯一标识-->
        <environment id="development">
            <!-- 配置事务管理器:type表示事务管理器的类型 -->
            <transactionManager type="JDBC"/>

            <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
            <!-- POOLED 表示支持JDBC数据源连接池 -->
            <!-- UNPOOLED 表示不支持数据源连接池 -->
            <!-- JNDI 表示支持外部数据源连接池 -->
            <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>

    <!--指定MyBatis映射文件的位置-->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>

</configuration>
jdbc.url=jdbc:mysql://localhost:3306/mybatis_user
jdbc.driver=com.mysql.jdbc.Driver
jdbc.username=root
jdbc.password=kgc

6.测试

package com.kgc;

import com.kgc.mapper.UserMapper;
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.junit.Test;

import java.io.Reader;

/**
 * Unit test for simple App.
 */
public class AppTest 
{
    @Test
    public void getUserById()
    {
        try {
            //使用MyBatis提供的Resources类加载mybatis的配置文件
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            //构建sqlSession的工厂
            SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);

            SqlSession session= sessionFactory.openSession();
            UserMapper mapper=session.getMapper(UserMapper.class);
            User user= mapper.getUserById(1);
            System.out.println("[==mysql数据库==]"+user.toString());

            User user2= mapper.getUserById(2);
            System.out.println("[==mysql数据库==]"+user2.toString());

//            session.commit();//查询可以不写
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

猜你喜欢

转载自blog.csdn.net/wxd772113786/article/details/103348645