⑴ java如何实现每20条数据选择一条入库
可以使用java中的模块化编程思想,分成两个模块,一个模块用闷键来收集数据,将收皮悔集到的数据存储在一个数组中,另一个模块用来处理每20条数据中选择一条进行入库。
1.收集数据:// 声明一个数组,用于燃罩正存储收集到的数据String[] dataArray = new String[20];// 循环收集数据,每次收集20条for(int i=0; i<20; i++){ dataArray[i] = getDataFromSource();}
2.处理数据:// 随机生成一个数字,作为要入库的数据的索引int index = (int)(Math.random() * 20);// 取出要入库的数据String data = dataArray[index];// 将数据入库insertDataIntoDB(data);
⑵ java怎么将选中的多行数据插入表中
java 连接数据库时,往数据库一次添加多条数据,可以在 DAO 层,使用
executeBatch0批量插入数据,如下代
码:
conn = DBToolkit .getConnection0;
Statement stmt =
conn . createStatementO ; j //连续添加多条 SQL
stmt . addBatch (" insert into testdb . book ( kind , name ) values ( java ', java in j
aciton )");
stmt . addBatc (" insert into testdb . book ( kind , name ) values ( c ',’ c in aciton )");//执行批量执行
stmt .executeBatch0);
⑶ java mysql批量insert多少条效率最高
conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS);
pstmt = conn
.prepareStatement("insert into loadtest (id,
data) values (?, ?)");
for (int i = 1; i <= COUNT; i++)
{
pstmt.clearParameters();
pstmt.setInt(1,
i);
pstmt.setString(2, DATA);
pstmt.execute();
}
MyISAM:冲皮246.6秒、InnoDB:360.2秒悔判念
方法2: 使用事务,不自动commit
Java code
复制代码
代码如下:
conn =
DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS);
conn.setAutoCommit(false);
pstmt = conn
.prepareStatement("insert into loadtest (id, data) values (?, ?)"碧困);
for (int i = 1; i <= COUNT; i++) {
pstmt.clearParameters();
pstmt.setInt(1, i);
pstmt.setString(2, DATA);
pstmt.execute();
if (i %
COMMIT_SIZE == 0) {
conn.commit();
}
}
conn.commit();
InnoDB:31.5秒
⑷ java中怎么一次性向表中插入一条或多条数据
java连接数据库时,往数据库一次添加多轿困条数据段谈,可以在DAO层,使用executeBatch()批量插入数据,如下代码:
conn = DBToolkit.getConnection();
Statement stmt = conn.createStatement();
//连续添加多条SQL
stmt.addBatch("insert into testdb.book (kind, name) values ('java', 'java in aciton')");
stmt.addBatch("insert into testdb.book (kind, name) values ('c', '闭燃念c in aciton')");
//执行批量执行
stmt.executeBatch();
⑸ java怎么把数据批量插入数据库中
传统拼接insert into table() values(),(),()这种方式实现批量插入
采用数销纳据库持久化唯斗拿框架,比如hibernate,根据插入的记录数,设定每多少次循环执指搭行一次commit操作
⑹ 在Java层面控制ibatis 批量insert
sqlSession.insert(sqlmapNamespace + ".insertList", tempEnt);
数据库羡颤是oracle , 你只能先袜洞查询然后在插入。我用的是mybatis
insert into cc_facinputtrack
(faccode,statdate,filltercom,inputstate,inputdate)
(
<foreach collection="list" item="item" index="index"
separator="union all">
select
#{item.faccode,jdbcType=VARCHAR},#{item.statdate,jdbcType=TIMESTAMP},
#{item.filltercom,jdbcType=TIMESTAMP},
#{item.inputstate,jdbcType=VARCHAR},#{item.inputdate,jdbcType=TIMESTAMP}
from al
</兄好败foreach>
)
⑺ java中怎么实现批量录入数据
批量数据进入数据库使用addBatch()和executeBatch()方法
PreparedStatement.addBatch();
......
PreparedStatement.executeBatch();
需要注意的是轿启中一次最多不要超过50条:
1.因为插入的时候数据库已经锁定,然而若是一次性插入太多会造成其他业务的等待。
2.会造成内存的溢出
举例:
PreparedStatementpst=(PreparedStatement)con.prepareStatement("insertinto*****values(?,'***')");
for(inti=0;i<10000;i++){
pst.setInt(1,i);
//把一个SQL命令加入命令列表
pst.addBatch();
}
//执行批量更新
pst.executeBatch();
//语句执行完毕,提交本事务
con.commit();
资料来源:CSDN论坛旁冲-原资论坛料链接如下
URLSRC:闭山http://bbs.csdn.net/topics/320048117