才参加工作不久,很多代码习惯还没养成,昨天按要求写的数据库基本增删改查操作,在使用这些方法的时候,虽然能实现功能,但是效率低下,还可能产生内存问题,今天被项目经理一顿教育,在此记录学到的教训。
mybatis中重复的代码使用sql和include标签进行封装和调用
数据库操作使用的是mybatis框架,可以使用sql标签将经常重复的代码封装起来,就像java的方法一样,为了便于重复使用,sql语句中使用include标签来调用这段代码。
这样写的好处是,以后修改的时候只需要修改一处代码即可改动所有,例如使用dynamic标签动态生成的where条件判断语句,在多个sql语句中需要使用,可以将这段代码封装,在需要这种判断条件语句的时候,直接调用。
sql和include标签的使用:http://blog.csdn.net/baidu_31657889/article/details/52101130
对数据库的查询尽量拿到需要的最少数据
数据库的操作是需要非常谨慎的,对于数据的操作最多的无非就是增删改查,其中查询又是最频繁的。select查询语句可以获得大量的数据库数据,但是有的时候拿到全面的数据是不必要的,例如,页面做了分页查询,需要在页面显示一个总记录条目数,这个数据可以查询出所有的数据,存在一个list里面,再在java中size()出来,也可以直接sql语句(select count(1) from ***)查询出一个数值;如果仅仅只是为了拿到条目数这个值,第二种方法会比第一种方法的效率高很多,如果select查询出来的条目非常大,把所有的对象都拿出来,这样会对服务器内存造成非常大的压力,很多时候还会爆内存,导致服务器宕机。所以对数据库的查询尽量拿到需要数量的最少数据,完成功能。