開發規範
Mapper接口開發方法只需要程序員編寫Mapper接口(相當於Dao接口),由Mybatis框架根據接口定義創建接口的動態代理對象,代理對象的方法體同上邊Dao接口實現類方法。
Mapper接口開發需要遵循以下規範:
1、 Mapper.xml文件中的namespace與mapper接口的類路徑相同。
2、 Mapper接口方法名和Mapper.xml中定義的每個statement的id相同
3、 Mapper接口方法的輸入參數類型和mapper.xml中定義的每個sql 的parameterType的類型相同
4、 Mapper接口方法的輸出參數類型和mapper.xml中定義的每個sql的resultType的類型相同
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();
}
}