jdbcTemplate 模糊查找 和 in

本文介绍了如何在JdbcTemplate中实现模糊查询和IN条件查询,并提供了具体的SQL语句构造方法及参数传递方式。特别关注了在进行模糊查询时字符串匹配的处理方式以及IN查询时如何正确传递参数列表。

模糊查找 使用方法

		String SQL = "SELECT * FROM table_in WHERE LIKE ?";//目标sql: SELECT * FROM table_in WHERE LIKE '%abc%'
		String s = "abc";
		getJDBCTemplate().query(SQL, new String[]{"%"+s+"%"});

JdbcTemplate in() 使用方法

		String SQL = "SELECT * FROM table_in WHERE IN (:id)";//目标sql: SELECT * FROM table_in WHERE IN ('1','2','3','4')
		String s = "1,2,3,4";
		Map<String, Object> map = new LinkedHashMap<String, Object>();
		map.put("id", Arrays.asList(s.split(",")));//传入一个数组
		List<TrainPo> result = new NamedParameterJdbcTemplate(getJDBCTemplate()).query(SQL, map);
总结:

之所以这两个和普通的有所不一样是因为,在JdbcTemplate内部会进行转换

转换会按照数据便利对他们一一进行替换同时会给他们加上单引号

这就导致了与本来的意义不一致的行为了

如下

 %xxxx% ==> %'xxxxx'%

(1,2,3,4) ==> ('1,2,3,4')变成了一个整体了


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值