java实现数据库数据移植问题?来者有分,有建议者分多,无建议者有参与分! 数据库不是自己有医治的功能吗?也有写地三方软件可以实现如果非要自己来那可能就是select 出来在insert到另一个库表吧? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能不能把库a传到另一台服务器后,然后用SQLServer的SQL命令把库a添加到SQLServer中呢(如同import功能)?学习! 非要用java?上面的方法是通用法! 如果是Oracle的话,有命令行的导入导出工具,SQL Server的话,有工具直接导出,所以最有效率的是先用工具。 在java中调用 sql的导出库a然后在导入到库b中! 這很容易. 寫兩個method 一個method是結果集取到存放在一個Vector中間.方法返回該Vector 另外一個method傳入上一個method取得的Vector.並寫入數據庫. 當然,這兩個method的DriverManager.getConnection(url,login,password)中傳入的url不同.如下:package test;import java.sql.*;import java.lang.*;import java.util.Vector;import com.inet.tds.*;public class databaseAccess{ public static Vector getDataFromServer1(String URL,String login,String password) { Vector vReturn = null; try { DriverManager.setLogStream(System.out); // to create more info Class.forName("com.inet.tds.TdsDriver").newInstance(); DriverManager.setLoginTimeout(10); Connection connection = DriverManager.getConnection(URL,login,password); Statement st = connection.createStatement(); ResultSet rs = st.executeQuery("SELECT t1,t2 FROM table1"); while (rs.next()) { Vector oneValue=new Vector(); oneValue.addElement(rs.getString(1)); oneValue.addElement(rs.getString(2)); if (vReturn == null) vReturn = new Vector(); vReturn.addElement(oneValue); } } catch(Exception e) { e.printStackTrace(); } finally { return vReturn; } } public static void saveDataToServer2(Vector vDetail,String URL,String login,String password) { try { DriverManager.setLogStream(System.out); // to create more info Class.forName("com.inet.tds.TdsDriver").newInstance(); DriverManager.setLoginTimeout(10); Connection connection = DriverManager.getConnection(URL,login,password); Statement st = connection.createStatement(); int nItem=vDetail.size(); String strInsert; for(int i=0;i<nItem;i++) { Vector vItem = (Vector)vDetail.elementAt(i); strInsert = "insert into table2(t1,t2) values('"+(String)vItem.elementAt(0)+"','"+(String)vItem.elementAt(1)+"')"; st.executeUpdate(strInsert); } } catch(Exception e) { e.printStackTrace(); } }} 忘了關閉連接了. :P在getDataFromServer1方法的try語句塊的最後加上:rs.close(); st.close(); connection.close();在saveDataToServer2方法的try語句塊的最後加上:st.close(); connection.close(); 同意楼上! CanFly(我会飞) 的方法如果可行,也不错(不知效率如何?) 如果JDBC支持的话,用PreparedStatement加batch insert能提高点效率。 能不能在java中用数据库的存贮过程或者sql语句来实现备份与恢复呢?当然我对java不太熟,初学,但我用其它程序语言实现过! 在java中调用 sql的导出库a 然后在导入到库b中!我同意这样的方法。并且我也这样做过! 建议利用DELPHI去做->1.程序开发效率高--一个BatchMove控件搞定2.代码运行速度快--Object Pascal3.很多的数据库驱动 go to www.jars.com to find some controls or jars for you job. 用SQL SERVER实现:(1)在SQL SERVER1中将SQL SERVER2添加为linked Server; 在SQL SERVER2中将SQL SERVER1添加为linked Server;(2)Insert into Server1.YourDbName.dbo.tableName Select * from Server2.YourDbName.dbo.tableName 用SQL SERVER实现:(1)在SQL SERVER1企业管理器中将SQL SERVER2添加为linked Server; 在SQL SERVER2企业管理器中将SQL SERVER1添加为linked Server;(2)Insert into Server1.YourDbName.dbo.tableName Select * from Server2.YourDbName.dbo.tableName 从*.class变成*.java的工具有吗?反编译准确吗?? 关于split的用法? 在cmd里面打javac HelloWorld.java 出错 初学者在mysql中的小问题 客户端sorket编程 读取网络电子称数据 菜鸟问题:数字分解 又是一个中文的问题(这次是写文件打印的) 急求大神帮忙:imageJ 开发图像处理方程!!!!重奖!!! 求SE获取硬件信息的代码 这样定义import语句中要引入的类?也就是说是我怎么知道要引入哪些类? 为何我在JDK甚至Jbuilder3.下的程序运行下常,但在jbuilder6下总出错? java 访问数据库问题?
学习!
上面的方法是通用法!
SQL Server的话,有工具直接导出,所以最有效率的是先用工具。
然后在导入到库b中!
寫兩個method
一個method是結果集取到存放在一個Vector中間.方法返回該Vector
另外一個method傳入上一個method取得的Vector.並寫入數據庫.
當然,這兩個method的DriverManager.getConnection(url,login,password)中傳入的url不同.如下:package test;import java.sql.*;
import java.lang.*;
import java.util.Vector;
import com.inet.tds.*;public class databaseAccess
{
public static Vector getDataFromServer1(String URL,String login,String password)
{
Vector vReturn = null;
try
{
DriverManager.setLogStream(System.out); // to create more info
Class.forName("com.inet.tds.TdsDriver").newInstance();
DriverManager.setLoginTimeout(10); Connection connection = DriverManager.getConnection(URL,login,password); Statement st = connection.createStatement();
ResultSet rs = st.executeQuery("SELECT t1,t2 FROM table1");
while (rs.next())
{
Vector oneValue=new Vector();
oneValue.addElement(rs.getString(1));
oneValue.addElement(rs.getString(2));
if (vReturn == null)
vReturn = new Vector();
vReturn.addElement(oneValue);
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
return vReturn;
}
}
public static void saveDataToServer2(Vector vDetail,String URL,String login,String password)
{
try
{
DriverManager.setLogStream(System.out); // to create more info
Class.forName("com.inet.tds.TdsDriver").newInstance();
DriverManager.setLoginTimeout(10); Connection connection = DriverManager.getConnection(URL,login,password);
Statement st = connection.createStatement();
int nItem=vDetail.size();
String strInsert;
for(int i=0;i<nItem;i++)
{
Vector vItem = (Vector)vDetail.elementAt(i);
strInsert = "insert into table2(t1,t2) values('"+(String)vItem.elementAt(0)+"','"+(String)vItem.elementAt(1)+"')";
st.executeUpdate(strInsert);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
rs.close();
st.close();
connection.close();
在saveDataToServer2方法的try語句塊的最後加上:
st.close();
connection.close();
然后在导入到库b中!我同意这样的方法。并且我也这样做过!
1.程序开发效率高--一个BatchMove控件搞定
2.代码运行速度快--Object Pascal
3.很多的数据库驱动
(1)在SQL SERVER1中将SQL SERVER2添加为linked Server;
在SQL SERVER2中将SQL SERVER1添加为linked Server;
(2)Insert into Server1.YourDbName.dbo.tableName
Select * from Server2.YourDbName.dbo.tableName
(1)在SQL SERVER1企业管理器中将SQL SERVER2添加为linked Server;
在SQL SERVER2企业管理器中将SQL SERVER1添加为linked Server;
(2)Insert into Server1.YourDbName.dbo.tableName
Select * from Server2.YourDbName.dbo.tableName