2 qq 27836205 qq_27836205 于 2017.09.13 17:47 提问

sql 公司框架设计的sql写法好像不好 大神看看
sql

公司设计的框架,sql写法是将参数放到map中,然后where条件引用,但以前好像看过书说,where条件引用参数 会导致全表扫描,不会使用索引,大神看看,公司这种写法是不是不好?那么应该如何设计才好呢?
图片说明

3个回答

u011781616
u011781616   2017.09.13 21:08
已采纳

这样的查询 一般是使用索引,看不到你底层封装是怎么写的,但是不管是使用map 还是object[]{} 数组做参数,底层无非就是参数解析,最后到达DB还是原始的SQL
,只是写法不一样而已,没有什么好不好之说。 如果使用索引,那你大可放心,不会产生全表扫面,索引有一套自己的算法,马上能找到这条记录,主键索引查询速度非常快。

zanjun95277
zanjun95277   2017.09.13 17:57

給 fid加上索引 或者使用主键条件,这样搜索范围会小很多,在关键的更新语句where 后面的条件不是索引或主键,搜索范围会很大,有可能造成锁表问题

u011781616
u011781616   2017.09.13 21:13

JPAUtils.query("select a from DXB a where a.sjkflb =?1,and a.id = ?2", "参数1",“参数2”);

如果是开发的角度,我更加倾向这样的实现,这样写法很简单,不用一个一个去put进去。 Java 支持 Object... 可以理解是动态数组
JPAUtils.query(String sql,Object... params);

Csdn user default icon
上传中...
上传图片
插入图片