*********Mapper动态代理********
-------模糊查询-------
1>MapperTest.java
@Test
public void Test2() throws IOException{
//配置文件
String resource = "sqlMapConfig.xml";
//读取配置文件
InputStream in = Resources.getResourceAsStream(resource);
//创建sqlSessionFactory
SqlSessionFactory ssf = new SqlSessionFactoryBuilder(in);
//生产一个sqlSession
SqlSession session = ssf.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> list = mapper.selectUserByName("王");
for(User u : list){
System.out.println(u);
}
}
2>UserMapper.java
public interface UserMapper{
//动态代理原则:
//1、接口方法名需要与mapper.xml的要调用的sql语句的id一致
//2、接口的形参类型要与mapper.xml中parameterType一致
//3、接口返回值需要与mapper.xml中resultType一致
//4、mapper.xml中namespace要与接口的全包名一致
//5、注意:mapper动态代理开发中,用什么类型接返回的结果,mybatis会根据返回内容自动选择的。如果返回的是对象,直接用对象接;如果返回的是列表,直接用列表接。
//通过用户名模糊查询,获取用户列表
public List<User> selectUserByName(String name);
}
3>UserMapper.xml
<!-- 模糊查询,返回用户信息列表 -->
<select id="selectUserByName" parameterType="String" resultType=""com.XXX.bean.User>
select * from user where u_username like '%'#{name}'%'
</select>