Connection 循环保存大量数据问题

xiaojinchao 2008-12-19 11:00:28
我连接一个sqlite数据库(小型桌面数据库),也是要循环保存几千条数据,一开始快一些后来很慢
代码大约是这样的:
public static Connection getSqlliteConn(String sqlName) {
try {
//sqlName: 数据库路径
Class.forName("org.sqlite.JDBC");
// String aaa=Db.class.getResource("/").toString();
String fileName = sqlName;
Connection conn = DriverManager.getConnection("jdbc:sqlite:" + fileName);
return conn;
}
catch (Exception e) {
e.printStackTrace();
}
return null;
}

/////////////////// 方法//////////
Connection conn=null;
conn = Db.getSqlliteConn(fileName);
conn.setAutoCommit(false);

SqliteDb.sdTask(conn, taskInfoId); ////从oracle数据查出后 插入sqlite数据
////从oracle数据查出后 插入sqlite数据库里8个表 要循环很多次 每次很多条总计有1万条吧
从oracle 查数据 根据id我用的 this.hibernateTemplate.load(TXjInfo.class, id) 查的,还有list的;


conn.commit();
conn.close();

一开始我看sql语句快一些,过了1分钟后就开始慢了,后来更慢了,,看看哪的问题啊,

hibernate可以加
session.flush();
session.clear();
就很快,,Connection 这个怎么清空下 或是有其他办法吗?
...全文
154 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyifei11228 2008-12-23
  • 打赏
  • 举报
回复
你可以把oracle中的数据导出为sql文件,然后执行插入
或者写一个程序按行读取,然后插入
loveunittesting 2008-12-21
  • 打赏
  • 举报
回复
数据库的问题。sqlite哪儿撑得住这样的访问规模啊。别说桌面数据库,就是oracle等数据库,海量数据时也是插入越来越慢
lanzhengwu 2008-12-19
  • 打赏
  • 举报
回复
顶一楼的 。。批量插入 。。今天刚做。。没什么影响。。
wj_18 2008-12-19
  • 打赏
  • 举报
回复


hibernate是还不错,做个提交判断,然后每提交多少数据清下缓存

jdbc最近不怎么用了,关注一下,
铑枪--突廆孒 2008-12-19
  • 打赏
  • 举报
回复
Conn下有个东西:PreparedStatement ,这个是Statement的子接口 。。。
使用方法:PreparedStatement ps =con.preparedStatement("insert into a(?,?,?,?)");
for(XX;XX;XX){
ps.setString(1,"");
ps.setInt(2,3);
ps.setDate(3,XX);
ps.setDouble(4,XX);
ps.addBatch();
if(ps%200==0)
{//200条数据执行一次更新操作
ps.executeBatch();
ps.clearParameters();
}
}

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧