关于javaweb服务端如何执行才高效;

发布于 2021-12-02 22:49:02 字数 1129 浏览 879 评论 6

又到了每日一问了, 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

左岸枫 2021-12-06 17:34:47

回复
@RickyLi : :joy:不要酱紫,我知道我很小白, 很多原理都不懂;

屌丝范 2021-12-06 17:32:42

回复
批量插入用executeBatch。

网名女生简单气质 2021-12-06 17:28:40

回复
@RickyLi : jdbc工具类已封装好,没有找到executeBatch方法;

多情癖 2021-12-06 17:20:46

回复
batch是jdbc原生的方法, 批处理在业务开发中是必须的。没有封装就自己拓展下封装类

柳若烟 2021-12-06 17:01:50

回复
@RickyLi : 恩,好;

多情癖 2021-12-06 13:23:05

看到你的a和b, 是什么让你有勇气说出了 随着技术加深 这几个字

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文