1. mybatis的基本准备操作见我的上一篇博文:https://www.cnblogs.com/wyhluckdog/p/10149480.html
2. 根据用户名查询用户信息:
(1)映射文件:
在User.xml中添加:
<!-- 模糊查询 返回结果可能为集合;如果返回结果为集合,调用selectList(),并且返回类型配置集合中的泛型。集合中存放的就是User,所以返回类型就是User类型 ${}拼接符:字符串原样拼接。如果传入的基本类型{String,long,double,int boolean等},那么 ${}中的变量名必须是value. --> <select id="findUserByUsername" parameterType="java.lang.String" resultType="com.huida.po.User"> <!-- 模糊查询的占位符需要进行拼接 --> select * from user where username like "%${value}%" </select>
parameterType:定义输入到sql中的映射类型。
返回结果可能为集合;如果返回结果为集合,在测试文件中调用selectList(),并且返回类型配置集合中的泛型。集合中存放的就是User,所以返回类型就是User类型。
${}拼接符:字符串原样拼接。如果传入的基本类型{String,long,double,int boolean等},那么${}中的变量名必须是value。
(2)测试程序:
@Test public void testFindUserByUsername() throws Exception{ //通过流将核心配置文件读取进来 InputStream inputStream=Resources.getResourceAsStream("config/SqlMapConfig.xml"); //通过核心配置文件输入流来创建工厂 SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream); //通过工厂创建session SqlSession openSession=factory.openSession(); //查询语句,返回值为User对象 List<User> list=(List) openSession.selectList("test.findUserByUsername","li"); System.out.println(list); //关闭资源 openSession.close(); //factory没有close(),因为session关闭之后,factory也就关闭了。 }
3.单元测试:
当我们查询的条件是“li”的时候,会输出名字中带li的所有记录,当我们的查询条件是“lisi”的时候,查询结果只有username为“lisi”的这一条记录。所以通过模糊查询可以实现查询一条或多条记录。