1 动态代理Dao开发规则
- namespace必需是接口的全路径名
- 接口的方法名必需与映射文件的sql id一致
- 接口的输入参数必需与映射文件的parameterType类型一致
- 接口的返回类型必须与映射文件的resultType类型一致
- 也就是说有一个UserMapper接口,他的一个方法的名为getUserById,方法的入参为int,返回值为User
public interface UserMapper{
User getUserById(Integer id)
}
2 开发示例
2.1 创建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="com.itykd.mapper.UserMapper">
<select id="getUserById" parameterType="Integer" resultType="com.itykd.domain.User">
select * from `user` where id=#{id}
</select>
</mapper>
2.2 创建UserMapper接口
public interface UserMapper{
User getUserById(Integer id)
}
2.3 在核心配置文件SqlMapConfig.xml引入UserMapper.xml
<!-- 加载映射文件 -->
<mappers>
<mapper resource="Mapper/UserMapper.xml"/>
<mappers>
2.4 测试
package com.itykd.mapper;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.itykd.domain.User;
import com.itykd.util.MyBatisUtils;
public class UserMapperTest {
@Test
public void testGetUserById() {
SqlSession sqlSession = MyBatisUtils.getSqlSessionFactory().openSession();
//获取接口的代理实现类
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(33);
System.out.println(user);
sqlSession.close();
}
}