关于javaweb服务端如何执行才高效;
又到了每日一问了, javaDao层,有这么一个业务逻辑, 随机编程代码量的上升,现在不管的是如何实现的问题,而是哪种实现方式才能算是高效的,节省资源的或者更易于识别,程序代码可读性好等等;
2个例子:
批量插入某个1>N 表问题, 页面端插入字符串逗号分隔的id
a: 方式: service层中,for循环执行 dao方法: insert into 表 value(自段值1, 字段值2)
b: 方式: dao层,for循环拼接sql,然后一条sql执行,直接插入: insert into 表(字段1,字段2) values (字段值1,字段值2),()
如:
String posters= "p101,p102"; StringBuffer sqlSb = new StringBuffer("insert into channel_poster(chid,poster) values "); String[] posterStrings = posters.split(","); for (int i = 0; i < posterStrings.length; i++) { sqlSb.append("(2,'"+posterStrings[i]+"'),"); } String subSql = sqlSb.substring(0, sqlSb.length()-1); exeUpdateSql(subSql,null);
a方式,可能会循环开启链接,执行sql,但可以参入预编译? ,安全
b方式: 一条执行sql解决, 但循环拼接sql相对来说可能会耗性能资源,可读性或许差了点店
大家是推荐使用哪种方式呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
回复
@RickyLi : :joy:不要酱紫,我知道我很小白, 很多原理都不懂;
回复
批量插入用executeBatch。
回复
@RickyLi : jdbc工具类已封装好,没有找到executeBatch方法;
回复
batch是jdbc原生的方法, 批处理在业务开发中是必须的。没有封装就自己拓展下封装类
回复
@RickyLi : 恩,好;
看到你的a和b, 是什么让你有勇气说出了 随着技术加深 这几个字