动态代理只需要接口和mapper映射文件不需要实现类
动态代理规范
1、namespace必须是接口的全路径
2、接口的方法必须与sql的id一致
3、接口的入参与parameterType类型一致
4、接口的返回值必须与resultType类型一致
1、写接口UserMapper.java
package mapper; import java.util.List; import pojo.User; public interface UserMapper { User getUserBYId(Integer id); List<User> getUSerByUserName(String userName); }
2、mapper映射文件UserMapper.xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 <!-- namespace命名空间,隔离sql文件 --> 6 <!-- #{}占位符相当于jdbc的? --> 7 <!-- ${value} 字符串拼接 --> 8 <!-- 动态代理开发原则 9 1、namespace必须是接口的全路径 10 2、接口的方法必须与sql的id一致 11 3、接口的入参与parameterType类型一致 12 4、接口的返回值必须与resultType类型一致 13 --> 14 <mapper namespace="mapper.UserMapper"> 15 <select id="getUserBYId" parameterType="int" resultType="pojo.User"> 16 select id, username,birthday,sex,address from user where id = #{id} 17 </select> 18 <select id="getUSerByUserName" parameterType="String" resultType="pojo.User"> 19 select id, username,birthday,sex,address from user where username like '%${value}%' 20 </select> 21 </mapper>
3、在sqlMapperConfig.xml引入mapper文件
<mappers> <mapper resource="mybatis/user.xml"/> <mapper resource="mybatis/UserMapper.xml"/> </mappers>
4、测试
package mapper; import static org.junit.Assert.*; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import pojo.User; import util.SqlSessionFactoryUtil; public class UserMapperTest { @Test public void test() { SqlSession openSession = SqlSessionFactoryUtil.getSqlSessionFactory().openSession(); //获得接口实现类 UserMapper mapper = openSession.getMapper(UserMapper.class); User userBYId = mapper.getUserBYId(10); System.out.println(userBYId); openSession.close(); } }
浙公网安备 33010602011771号