Mybatis之根据用户名称模糊查询用户信息(4)

该系列博客是传智播客Mybatis教学视频学习笔记,自己有补充。

一、User.xml映射文件

使用User.xml,添加根据用户名称模糊查询用户信息的SQL语句。
在User.xml中添加下面的SQL语句:



二、编写测试类进行测试

	/**
	 * 根据用户名称模糊查询用户列表
	 */
	@Test
	public void findUserByNameTest(){
		//mybatis配置文件
		String resource = "SqlMapConfig.xml";
		//得到配置文件,这种方式与路径耦合
		//InputStream inStream = Resources.getResourceAsStream(resource);
		//与路径解耦
		InputStream inStream = this.getClass()
				.getClassLoader().getResourceAsStream(resource);
		
		//创建会话工厂
		SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
		SqlSessionFactory factory = builder.build(inStream);//创建工厂
		
		//通过工厂得到SqlSession
		SqlSession sqlSession = factory.openSession();
		
		//通过SqlSession操作数据库
		//第一个参数:映射文件中statement的id,等于namespace+"."+statement的id
		//第二个参数:指定和映射文件中所匹配的parameterType类型的输入参数
		//sqlSession.selectOne结果是与映射文件中所匹配的resultType类型的对象
		//该方法是泛型方法,不用强转,list中的user和映射文件中的resultType所指定的类型一致
		List list = sqlSession.selectList("test.findUserByName", "张三");
		//select * from user where username like #{username}
		//List list = sqlSession.selectList("test.findUserByName", "%张三%");
		System.out.println(list);
		//释放资源
		sqlSession.close();
	}
测试结果(有SQL注入的危险):

DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@67205a84]
DEBUG [main] - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@67205a84]
DEBUG [main] - ==>  Preparing: select * from user where username like '%张三%' 
DEBUG [main] - ==> Parameters: 
DEBUG [main] - <==      Total: 1
[cn.sunft.mybatis.po.User@1786dec2]
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@67205a84]




你可能感兴趣的:(Mybatis,MyBatis)