紧急求助:用JDBC实现MSSQL2000中两个数据库之间数据的读出与写入 现在我有MSSQL2000中有两个数据库A和B,A中有AA表需要导入导B中的BB表,AA表和BB表库结构不完全同,但有几个字段相同,将相同的字段下的数据使用JDBC程序将AA中的数据导入到BB中,如何实现?小弟只会简单JDBC的对一个库的数据读和写,对两个库的操作就没有办法了。请高手帮帮嘛!有程序说明更好。 谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我写了一些,但是执行最后一句的时候抱错 int idb =set.getInt("id"); String BookID = set.getString("BookID"); String PDate = set.getString("PDate"); System.out.println(idb+","+BookID+","+PDate); state.execute("insert scpop.dbo.logs(id,s_id,score) values(idb,BookID,PDate)");程序编译没有问题,运行的时候提示错误为:在此文中不允许使用‘idb'此处值允许使用常量,表达式或变量。不不允许使用列名。为什么啊?idb是变量啊!!!请高手帮忙!! 建两个连接。一个连接到A一个连接到B先从A连接中取得需要数据。然后用B连接插入相关的数据到B中。 我写了一段程序,只建立了一个库,不编译可以通过,但不能运行。import java.sql.*;public class jdbc1{ public static void main(String[] args) { Connection connection = null; //建立与数据库的连接 try { //加载数据库驱动 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); String sourceURL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=BookDB"; //建立与数据库的连接 connection = DriverManager.getConnection(sourceURL, "sa", ""); } catch (ClassNotFoundException e) { System.err.println(e.getMessage()); } catch (SQLException e) { System.err.println("Generate Connection, Error! " + e.getMessage()); } try { Statement state = connection.createStatement(); String sql = "SELECT * FROM Book"; ResultSet set = state.executeQuery(sql); while(set.next()){ // System.out.println(set.getString("id")+","+set.getString("BookID")+","+set.getString("PDate")+","+set.getString("Pages")+","+set.getString("Price")+","+set.getString("Title")+","+set.getString("Author")+","+set.getString("BookMemo")); int idb =set.getInt("id"); String BookID = set.getString("BookID"); String PDate = set.getString("PDate"); System.out.println(idb+","+BookID+","+PDate); state.execute("insert exam.dbo.score(id,s_id,score) values(idb,BookID,PDate)"); } // // String Pages =set.getString("Pages"); // String sql2 = "INSERT INTO Book VALUES (1)"; // String sql3 = "select * from scpop.dbo.logs"; //state.executeUpdate(sql2); // state.execute("insert into scpop.dbo.logs(oid,message) values('5',set.getString("BookID"))"); } catch (SQLException e) { System.err.println(e.getMessage()); } }} 如果你是一个MSSQL实例下面的两个数据库的话,用SQL就可以实现了,在SQL里,你可以通过[数据库名].[表的所有者].[表名]来引用其它库的表,然后你的JAVA里只要执行一句SQL就可以了不用把结果集传回来的。如果不是统一MSSQL实例下面的两个数据库的话,你需要建立链接数据库,如果不能建立的话,只能用JAVA建立两个不同的连接,这个是必须的,你不能用一个连接同时做两个操作。 TCP 双工问题 struts里用validation验证表单的问题 如何把JFrame上的图画存成图片(如bmp) 大家帮忙看看这段代码哪里出错了!!!!!!!!! Java串口通讯 遇到问题,求帮助! 子类方法中引用了父类中非同名方法,但该父类引用了该子类同名父类方法(有点绕,第一次发帖) join()到底是什么用的,看书看不明白。 请教一个简单的问题 jdbc连接基本问题? 运行tomcat时的一个小错误,急急急! java 做界面的问题2 关于JAVA对象定义的几点认识,请大家指点
int idb =set.getInt("id");
String BookID = set.getString("BookID");
String PDate = set.getString("PDate");
System.out.println(idb+","+BookID+","+PDate);
state.execute("insert scpop.dbo.logs(id,s_id,score) values(idb,BookID,PDate)");
程序编译没有问题,运行的时候提示错误为:
在此文中不允许使用‘idb'此处值允许使用常量,表达式或变量。不不允许使用列名。
为什么啊?idb是变量啊!!!请高手帮忙!!
一个连接到B先从A连接中取得需要数据。然后用B连接插入相关的数据到B中。
import java.sql.*;public class jdbc1{ public static void main(String[] args) { Connection connection = null; //建立与数据库的连接 try { //加载数据库驱动 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); String sourceURL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=BookDB"; //建立与数据库的连接 connection = DriverManager.getConnection(sourceURL, "sa", ""); } catch (ClassNotFoundException e) { System.err.println(e.getMessage()); } catch (SQLException e) { System.err.println("Generate Connection, Error! " + e.getMessage()); } try { Statement state = connection.createStatement(); String sql = "SELECT * FROM Book"; ResultSet set = state.executeQuery(sql); while(set.next()){
// System.out.println(set.getString("id")+","+set.getString("BookID")+","+set.getString("PDate")+","+set.getString("Pages")+","+set.getString("Price")+","+set.getString("Title")+","+set.getString("Author")+","+set.getString("BookMemo"));
int idb =set.getInt("id");
String BookID = set.getString("BookID");
String PDate = set.getString("PDate");
System.out.println(idb+","+BookID+","+PDate);
state.execute("insert exam.dbo.score(id,s_id,score) values(idb,BookID,PDate)");
}
//
// String Pages =set.getString("Pages");
// String sql2 = "INSERT INTO Book VALUES (1)";
// String sql3 = "select * from scpop.dbo.logs";
//state.executeUpdate(sql2);
// state.execute("insert into scpop.dbo.logs(oid,message) values('5',set.getString("BookID"))");
} catch (SQLException e) { System.err.println(e.getMessage()); } }}