mybatis Mapper動態代理方式

開發規範

Mapper接口開發方法只需要程序員編寫Mapper接口(相當於Dao接口),由Mybatis框架根據接口定義創建接口的動態代理對象,代理對象的方法體同上邊Dao接口實現類方法。

Mapper接口開發需要遵循以下規範:

1、 Mapper.xml文件中的namespacemapper接口的類路徑相同。

2、  Mapper接口方法名和Mapper.xml中定義的每個statementid相同

3、 Mapper接口方法的輸入參數類型和mapper.xml中定義的每個sql parameterType的類型相同

4、 Mapper接口方法的輸出參數類型和mapper.xml中定義的每個sqlresultType的類型相同


Mapper.xml(映射文件)

    

定義mapper映射文件UserMapper.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="dao.UserMapper">
	<select id="findUserById" parameterType="int" resultType="domain.User">
		select * from user where id = #{id}
	</select>
</mapper>


java接口 :  UserMapper.java

/**
 * 用戶管理mapper
 */
Publicinterface UserMapper {
	//根據用戶id查詢用戶信息
	public User findUserById(int id) throws Exception;
}

1.1.1 加載UserMapper.xml文件

修改SqlMapConfig.xml文件:

 

<!-- 加載映射文件 -->

<mappers>

<mapperresource="mapper/UserMapper.xml"/>

</mappers>

測試:

public class UserMapperTest extends  {

	private SqlSessionFactory sqlSessionFactory;
	@Before
	protectedvoid setUp() throws Exception {
		//mybatis配置文件
		String resource = "sqlMapConfig.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		//使用SqlSessionFactoryBuilder創建sessionFactory
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
	}

	
	Publicvoid testFindUserById() throws Exception {
		//獲取session
		SqlSession session = sqlSessionFactory.openSession();
		//獲取mapper接口的代理對象
		UserMapper userMapper = session.getMapper(UserMapper.class);
		//調用代理對象方法
		User user = userMapper.findUserById(1);
		System.out.println(user);
		//關閉session
		session.close();
	}
}





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