目前,我正在使用预准备语句来执行数据库的查询或更新。虽然预先编译(因此很快),但我认为如果有这样的安排会更有效率:
情景:
假设我必须在数据库表中插入100行。我使用prepare语句,所以我准备一个语句并将其发送到数据库以供执行。因此,每次查询的格式为:
insert into user values(....);
现在,当我查询表格
时,请考虑这种情况insert into user values (...), (...), ....,(...);
通过这种方式,我们可以一次性最小化表访问和执行查询。
我们是否可以使用预先准备好的语句或这样的安排来执行此操作,我们可以指示数据库一起执行下100个更新。顺便说一句,我目前正在研究mysql
答案 0 :(得分:0)
有什么理由不将其作为bulk insert操作吗?
可能有更好的方法,但我只是将一个“文件”写入/ dev / shm,然后在LOAD DATA INFILE语句中引用,从而不会在客户端计算机上访问磁盘。
答案 1 :(得分:0)
使用VALUES语法的INSERT语句可以插入多行。至 执行此操作,包括多个列值列表,每个列值都包含在其中 括号并用逗号分隔。例如:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
尝试类似
的内容st = con.createStatement();
st.addBatch("INSERT INTO tbl_name VALUES(1,2,3)");
st.addBatch("INSERT INTO tbl_name VALUES(4,5,6)");
st.addBatch("INSERT INTO tbl_name VALUES(7,8,9)");
st.executeBatch();