平常在写代码的时候,在写模糊查询的时候,一直都是使用
字段名 like ${}
的方式,但是自从换了一家公司之后,发现分页进行模糊查询时使用了 concat函数,
下面我将sql语句复制过来,给大家参考一下 ,希望可以帮助到大家。
<select id="countDeviceByKeyword" resultType="java.lang.Integer">
select count(*) from zz_device where isDel='0'
and (Device_Name like concat('%',#{keyword},'%')
OR Device_Alias LIKE concat('%',#{keyword},'%'))
</select>
这里写的是sql语句,
下面把对应的dao层方法展现给大家
int countDeviceByKeyword(String keyword);
我写的不一定对,但是一定是自己手敲及其心里所想。如果有不对的还请大家指出并且多多包涵,如果用帮助到大家的,说明我的目的已经达到,谢谢大家。
这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!
平常在写代码的时候,在写模糊查询的时候,一直都是使用 字段名 like ${}的方式,但是自从换了一家公司之后,发现分页进行模糊查询时使用了 concat函数,下面我将sql语句复制过来,给大家参考一下 ,希望可以帮助到大家。 <select id="countDeviceByKeyword" resultType="java.lang.Integer"> select...
#{}和${}都是MyBatis提供的sql参数替换。区别是:
#{}是预编译处理,${}是字符串直接替换。
#{}可以防止SQL注入,${}存在SQL注入的风险,例如 “' or 1='1”
虽然存在SQL注入风险,但也有自己的适用场景,比如排序功能,表名,字段名等作为参数传入时。
#{}模糊查询要搭配使用mysql内置的拼接函数concat,安全性高。模糊查询虽然${}可以完成,但是存在SQL注入,不安全。
注意我的Source_Time字段是date类型的,那么我要根据该表的Source_Time字段查询数据,该如何查询呢?
下面我给出sql,写的是一个连表查询,当然这都无所谓,重要讲的是如何根据该表的Source_Time字段进行查询数据
select c.Rate_Value
from ZZ_CoalMiningRate c
left join zz_wor...
正如标题所说,下面配图说明:
图片右边显示我已经设置了不是null 为什么我进行postman测试的时候 或者说页面添加的时候,什么都不写,竟然能够添加进去,且数据库也不报错。
这时候比关键的问题出现了,我们应该纠正自己的一个观点或者一个自身问题。
not null != 空
吃鱼不忘打鱼人,下面我引...
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver
class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered
via the SPI and manual loading of the driver cla...
sql语句 异常 Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your
1377917