ibatis基础(七):模糊查询实体对象
在Student.xml中添加:
<select id="selectStudentByName" parameterClass="String" resultClass="Student">
select *
from student
where name like '%$name$%'
</select>
此处标红特别注意,跟以往写法不同,可以理解为##自动帮你添加引号,而$$不添加引号
进行单元测试:
1 @Test
2 public void queryStudentByName() throws Exception{
3 Reader reader=Resources.getResourceAsReader("SqlMapConfig.xml");//读取总配置文件
4 SqlMapClient sqlmapclient=SqlMapClientBuilder.buildSqlMapClient(reader);//创建SqlMapClient来操作数据库
5 reader.close();
6 List<Student> students=sqlmapclient.queryForList("selectStudentByName","i");//调用我们写在xml中的sql语句
7 for(Student student:students){
8 System.out.println(student);
9 }
10 }
查看打印结果,发现名字中带有"i"的信息都被查询出来了:
1 Billy 70.5
4 brian 100.0
ibatis的优点(与JDBC相比):
- 减少了61%的代码量(此处有吹牛的嫌疑)
- 简单
- 架构级性能增强
- sql语句与代码分离
- 简化项目中的分工
- 增强了移植性
缺点:
- sql需要自己写
- 参数只能有一个