sql循环查询_根据客户名模糊查询客户信息

359cfbf353b27698fe72f2d99a73fd83.png

了解了如何使用MyBatis根据客户编号查询客户信息后,接下来讲解下如何根据客户的名称来模糊查询相关的客户信息。

模糊查询的实现非常简单,只需要在映射文件中通过元素编写相应的SQL语句,并通过SqlSession的查询方法执行该SQL即可。其具体实现步骤如下。

(1)在映射文件CustomerMapper.xml中,添加根据客户名模糊查询客户信息列表的SQL语句,具体实现代码如下。

d1690c44d877e295056cd02845f052be.png

与根据客户编号查询相比,上述配置代码中的属性id、parameterType和SQL语句都发生相应变化。其中,SQL语句中的“${}”用来表示拼接SQL的字符串,即不加解释的原样输出。“${value}”表示要拼接的是简单类型参数。

脚下留心:在使用“${}”进行SQL字符串拼接时,无法防止SQL注入问题。所以想要既能实现模糊查询,又要防止SQL注入,可以对上述映射文件CustomerMapper.xml中模糊查询的select语句进行修改,使用MySQL中的concat()函数进行字符串拼接。具体修改示例如下所示。

54737e117b9959b8ef0315c899c18298.png

(2)在测试类MybatisTest中,添加一个测试方法findCustomerByNameTest(),其代码如下所示。

74a3e658d8164622acea513aa0e5dc49.png
cec52ee921d7e707a77c09e1168b84d6.png

从上述代码可以看出,findCustomerByNameTest()方法只是在第4步时与根据客户编号查询的测试方法有所不同,其他步骤都一致。在第4步时,由于可能查询出的是多条数据,所以调用的是SqlSession的selectList()方法来查询返回结果的集合对象,并使用for循环输出结果集对象。

使用JUnit4执行findCustomerByNameTest()方法后,控制台的输出结果如图6-10所示。

5f49961373ca20ca70f331e74e16e13d.png

从图6-10可以看出,使用MyBatis框架已成功查询出了客户表中客户名称中带有“j”的两条客户信息。

至此,MyBatis入门程序的查询功能就已经讲解完成。从上面两个查询方法中可以发现,MyBatis的操作大致可分为以下几个步骤。

(1)读取配置文件。

(2)根据配置文件构建SqlSessionFactory。

(3)通过SqlSessionFactory创建SqlSession。

(4)使用SqlSession对象操作数据库(包括查询、添加、修改、删除以及提交事务等)。

(5)关闭SqlSession。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值