JAVA如何实现数据库的批处理 *** 作

JAVA如何实现数据库的批处理 *** 作,第1张

批量数据进入数据库使用addBatch()和executeBatch()方法

PreparedStatement.addBatch()...... PreparedStatement.executeBatch()需要注意的是一次最多不要超过50条:1.因为插入的时候数据库已经锁定,然而若是一次性插入太多会造成其他业务的等待。2.会造成内存的溢出

举例:

PreparedStatement pst = (PreparedStatement) con.prepareStatement("insert into ***** values (?,'***')") for (int i = 0i <10000i++) { pst.setInt(1, i) // 把一个SQL命令加入命令列表 pst.addBatch() } // 执行批量更新 pst.executeBatch() // 语句执行完毕,提交本事务 con.commit()

使用sp_detach_db存储程序可以将数据库从SQL Server 2000分离开来,从而达到数据库的离线 *** 作。同样可以运行另一个存储程序sp_attach_db将数据库重新连接。

Sp_detach_db是一个功能强大的存储程序,它只能由系统管理人员运行。除了具备“分离”功能之外,这一程序在分离数据库之前也自动运行所有表的UPDATE STATISTICS。

以下的范例分离了MyDatabase数据库:

EXEC sp_detach_db 'MyDatabase'

现在可以转移我们的数据库到一个新的磁盘并重新连接它们。连接数据库 *** 作可能比较复杂,除了提供数据库名称,你可以选择SQL Server数据库文件的位置。

在以下的范例中,我们可以从一个新位置D:\AnyFolder\:重新连接数据库。

execsp_attach_db 'MyDatabase',

@filename1='D:\AnyFolder\MyDatabase_Data.MDF',

@filename2='D:\AnyFolder\MyDatabase_Log.LDF'

直接在命令行中输入 mysql,然后回车就会出现 mysql>_

show databases -- 显示所有数据库

use db1 -- 切换到数据库:db1

show tables -- 显示db1中的所有数据表

select * from tb1-- 查询tb1里面的数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6617624.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-25
下一篇 2023-03-25

发表评论

登录后才能评论

评论列表(0条)

保存