社区
Java SE
帖子详情
怎么批量的插入数据?
guanzhonj9815
2004-04-09 07:39:25
向SQL Server中插入数据,有80条。
但是使用addBatch(sql);
exeBatch();
的效果不好。等了10分钟也没有响应。
有没有其他好方法?
数据库连接等需要优化吗?
最好有个例子阿。
时间紧,任务重。谢谢先。
...全文
81
6
打赏
收藏
怎么批量的插入数据?
向SQL Server中插入数据,有80条。 但是使用addBatch(sql); exeBatch(); 的效果不好。等了10分钟也没有响应。 有没有其他好方法? 数据库连接等需要优化吗? 最好有个例子阿。 时间紧,任务重。谢谢先。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
haha1903
2004-04-09
打赏
举报
回复
sql 语句写 String sql="insert into SIWAKEDENPYOU_TBL VALUES(?,?,?,?,?)";
这样,有多少个参数写多少个 ?
Statement stmt = sqlManager.createStatement();
这句改成 PreparedStatement pstmt=sqlManager.prepareStatement(sql);
要先 setAutoCommit(false)
给 sql 语句赋值可以用 pstmt.setString , pstmt.setXXX , 如果知道类型可以用 pstmt.setObject
然后 addBatch();
最后 executeBatch() 就行了
最后 setAutoCommit(true);
我从 db2 向 sql server 传 76k 条数据,大概不到两分种,我的机器是 C667 , 512M
CoolAbu
2004-04-09
打赏
举报
回复
你用下面这个方法来遍历LinkList
Iterator iter=list.iterator();
while(iter.hasNext())
{
StudentScore ss=(StudentScore)iter.next();
System.out.println(ss.getStudentID()+"'s "+ ss.getCourseName()+" Score is:"+ss.getScore());
}
guanzhonj9815
2004-04-09
打赏
举报
回复
修改了但是还是不行,是不是因为ArrayList使用的关系。
CoolAbu
2004-04-09
打赏
举报
回复
sqlManager.setAutoCommit(true);//这个放到batchUpdate以后
在插入之前先setAutoCommit(false);
guanzhonj9815
2004-04-09
打赏
举报
回复
以下为代码:
list为ArrayList类,执行结果是只有第一条插入了,程序处于等待状态。
Connection sqlManager = SQLManager.getConnection();
sqlManager.setAutoCommit(true);
Statement stmt = sqlManager.createStatement();
stmt.setFetchSize(80);
for (int i = 0;i < 10;i++){
insertSQL[i] = "INSERT INTO SIWAKEDENPYOU_TBL VALUES(" +
Integer.parseInt(String.valueOf(list.item(i).getAttributes().get("no"))) +",\n" +Integer.parseInt(String.valueOf(list.item(i).getAttributes().get(
"gyo"))) +",\n'" + String.valueOf(list.item(i).getAttributes().get("kubun")) + "',\n" +Integer.parseInt(String.valueOf(list.item(i).getAttributes().get("kamoku"))) +",\n" +
Integer.parseInt(String.valueOf(list.item(i).getAttributes().get(
"eda"))) +",\n" +
Integer.parseInt(String.valueOf(list.item(i).getAttributes().get(
"code"))) +",\n" +Integer.parseInt(String.valueOf(list.item(i).getAttributes().get("year"))) +",\n" +
Integer.parseInt(String.valueOf(list.item(i).getAttributes().get(
"mmdd"))) +",\n'" +
String.valueOf(list.item(i).getAttributes().get("tekiyo")) +
"',\n'" +
String.valueOf(list.item(i).getAttributes().get("prjno")) +
"',\n" +
Integer.parseInt(String.valueOf(list.item(i).getAttributes().get(
"xyain"))) +",\n" +
Integer.parseInt(String.valueOf(list.item(i).getAttributes().get(
"kin"))) +",\n" + "101,201" +",\n"+
Integer.parseInt(String.valueOf(list.item(i).getAttributes().get(
"sime"))) + ",\n" +
"'001','001',GETDATE(),GETDATE() " + ")";
stmt.addBatch(insertSQL[i]);
}
int[] counts = stmt.executeBatch();
stmt.close();
sqlManager.close();
iwhp
2004-04-09
打赏
举报
回复
80条就效率这么差啊!
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章