后台伪代码
connect();
pstmt.setString(1,s)
rs=pstmt.executeQuery()
SQL:select * from dual where name like ?
在设置是s,setString时,可先s定义一下
s="s";
pstmt.setString(1,"%"+s+"%")
这样便能使s的值传到SQL中继续执行
以上方法可以解决like查询时传参问题,但是如果数据量很大的情况下,鼓励使用oracle的instr()函数:
instr(name,'CSDN')>0 相当于 namelike '%CSDN%'
instr(name,'CSDN')=1 相当于 name like 'CSDN%'
instr(name,'CSDN')=0 相当于 namenot like '%CSDN%'
使用instr函数时,传参相对简单,直接使用instr(name,?)>0即可,大数据下执行效率高过like
oracle之前使用的比较少,这种问题可能大家都有自己的解决办法,或者在大家看来这都不属于问题,望对那些想我一样oracle使用较少并且遇到此类问题的朋友有所帮助。
如有问题,可留言讨论。