sql语句 ?的作用 , if(a,b,c)是什么,nativeQuery = true是什么意思

259 阅读1分钟

sql语句 ?的作用 , if(a,b,c)是什么,nativeQuery = true是什么意思

1)sql语句中 ?的使用:

占位作用

例,该sql传入三个参数,按照顺序使用 ?1 ?2 ?3 在sql语句中占地方,实际使用时,将真正的参数放到sql语句中执行。

@Query(value = "update course_info set task_flag = ?2,list_code =?3 where course_code = ?1", nativeQuery = true)

Integer updateTaskFlag(String courseCode, String taskFlag, String listCode);

2)

if(?2 is not null,a.course_name like concat('%',?2,'%')1=1)

此处like为模糊查询。concat连接,将前后模糊的地方拼接完整。

if(a,b,c)

if(a,b,c)为三元表达式。a为TRUE则返回 b,否则返回c。

如果?2处不为null则返回a.course_name like concat('%',?2,'%'),如果为null,则返回1=1,即true,可以继续进行后续操作。

3)有nativeQuery = true时,是可以执行原生sql语句,所谓原生sql,也就是说这段sql拷贝到数据库中,然后把参数值给一下就能运行了

4)countQuery:定义一个特殊的count查询,用于分页查询时,查找页面元素的总个数。如果没有配置,将根据方法名派生一个count查询。

5)for循环中间带有一个冒号,是什么意思?这种方式的用处是什么

冒号后是要遍历的集合,冒号前是实例化一个 集合中包含的元素