mybatis源碼學習之——測試類編寫

爲方便進行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;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章