mybatis源码学习之——测试类编写

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzl19870309/article/details/89876309

为方便进行debug,我们可以写一个简单的测试类,通过断点来跟踪mybatis的执行过程。

1、创建测试包com.mybatis.mine

2、创建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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC">
            </transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://www.xxx.com:3306/luxydb"/>
                <property name="username" value="luxy"/>
                <property name="password" value="****"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

3、创建测试使用的POJO

package com.mybatis.mine;
import java.io.Serializable;
import java.util.Date;

public class User implements Serializable{

  private String userCode;
  private String userName;
  private Date createTime;
  private String userType;
  private  String mobile;

  public String getUserCode() {
    return userCode;
  }

  public void setUserCode(String userCode) {
    this.userCode = userCode;
  }

  public String getUserName() {
    return userName;
  }

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

  public Date getCreateTime() {
    return createTime;
  }

  public void setCreateTime(Date createTime) {
    this.createTime = createTime;
  }

  public String getUserType() {
    return userType;
  }

  public void setUserType(String userType) {
    this.userType = userType;
  }

  public String getMobile() {
    return mobile;
  }

  public void setMobile(String mobile) {
    this.mobile = mobile;
  }

  @Override
  public String toString() {
    return "User{" +
      "userCode='" + userCode + '\'' +
      ", userName='" + userName + '\'' +
      ", createTime=" + createTime +
      ", userType='" + userType + '\'' +
      ", mobile='" + mobile + '\'' +
      '}';
  }
}

3、创建UserMapper.java

package com.mybatis.mine;

public interface UserMapper {
    public User selectUser(String id);
}

4、创建userMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.mine.UserMapper">

    <select id="selectUser"  parameterType="String" resultType="com.mybatis.mine.User">
        select * from u_user where usercode = #{id}
    </select>

</mapper>

5、在配置文件mybatis-config.xml中对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>
    <environments default="development">
        …………
    </environments>
    
    <!--配置mapper-->
    <mappers>
        <mapper resource="com/mybatis/mine/userMapper.xml"/>
    </mappers>
</configuration>

6、编写测试类

package com.mybatis.mine;

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.jupiter.api.Test;

import java.io.IOException;
import java.io.InputStream;

public class MineTest1 {

    @Test
    public void test01() throws IOException {
      String resource = "com/mybatis/mine/mybatis-config.xml";
      InputStream inputStream = Resources.getResourceAsStream(resource);
      //1、创建SqlSessionFactory 
      SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
      //2、获取sqlSession 
      SqlSession sqlSession = sqlSessionFactory.openSession();
      //3、获取mapper
      UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
      //4、执行数据库操作,并处理结果集
      User user = userMapper.selectUser("10");
      System.out.println(user);
    }
}

7、运行测试类进行测试,如果测试成功,即可在测试代码中打断点进行debug了

附:u_user表的建表语句

CREATE TABLE `u_user` (
  `usercode` varchar(60) NOT NULL DEFAULT '',
  `password` varchar(128) DEFAULT NULL,
  `usertype` varchar(2) DEFAULT NULL COMMENT '00:老师;01:学生 02:家长',
  `mobile` varchar(11) DEFAULT NULL,
  `username` varchar(64) DEFAULT NULL,
  `createtime` datetime DEFAULT NULL,
  PRIMARY KEY (`usercode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

猜你喜欢

转载自blog.csdn.net/wzl19870309/article/details/89876309
今日推荐