1. 程式人生 > >Mybatis學習_2_根據id查詢使用者demo

Mybatis學習_2_根據id查詢使用者demo

對映檔案:

在user.xml中新增select標籤,編寫sql:

<?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">
<!-- namespace:名稱空間,用於隔離sql,還有一個很重要的作用,後面會講 -->
<mapper namespace="test">

	<!-- id:statement的id 或者叫做sql的id-->
	<!-- parameterType:宣告輸入引數的型別 -->
	<!-- resultType:宣告輸出結果的型別,應該填寫pojo的全路徑 -->
	<!-- #{}:輸入引數的佔位符,相當於jdbc的? -->
	<select id="queryUserById" parameterType="int"
		resultType="cn.itcast.mybatis.pojo.User">
		SELECT * FROM `user` WHERE id  = #{id}
	</select>

</mapper>

測試程式步驟:

 1. 建立SqlSessionFactoryBuilder物件

 2. 載入SqlMapConfig.xml配置檔案

 3. 建立SqlSessionFactory物件

 4. 建立SqlSession物件

 5. 執行SqlSession物件執行查詢,獲取結果User

 6. 列印結果

 7. 釋放資源

public class MybatisTest {
	private SqlSessionFactory sqlSessionFactory = null;

	@Before
	public void init() throws Exception {
		// 1. 建立SqlSessionFactoryBuilder物件
		SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();

		// 2. 載入SqlMapConfig.xml配置檔案
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");

		// 3. 建立SqlSessionFactory物件
		this.sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
	}

	@Test
	public void testQueryUserById() throws Exception {
		// 4. 建立SqlSession物件
		SqlSession sqlSession = sqlSessionFactory.openSession();

		// 5. 執行SqlSession物件執行查詢,獲取結果User
		// 第一個引數是User.xml的statement的id,第二個引數是執行sql需要的引數;
		Object user = sqlSession.selectOne("queryUserById", 1);

		// 6. 列印結果
		System.out.println(user);

		// 7. 釋放資源
		sqlSession.close();
	}
}

測試結果如下圖