import java.sql.*;
public class jdbc_test {
public static void main(String[] args)
{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("Driver loaded sql server");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("Driver loaded mysql");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("not loaded");
}
String connectionUrl = "jdbc:sqlserver://172.*.*.*:1433;" +"databaseName=Interface;user=user;password=pwd";
String connectionUrl2="jdbc:odbc:Occupancy_Mysql";
Connection con=null;
Connection con2=null;
Statement stmt = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
try {
con = DriverManager.getConnection(connectionUrl);
System.out.println("CONNECTED sql server");
con2 = DriverManager.getConnection(connectionUrl2);
System.out.println("CONNECTED2 mysql");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
stmt = con.createStatement();
rs=stmt.executeQuery("select * FROM [Interface].[dbo].[VwZoneCount]");
System.out.print("Select executed");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
while (rs.next()) {
String zoneName = rs.getString("Zone Name");
int zonecount = rs.getInt("Zone Count");
String phasename = rs.getString("Phase Name");
String insertSql = "insert into occupancy.occupancy_phase_2(ZoneName,ZoneCount,PhaseName,time_stamp)values('"+zoneName+"',"+zonecount+",'"+phasename+"',now())";
pstmt = con2.prepareStatement(insertSql);
pstmt.executeUpdate();
}
while(rs.next())
{
System.out.print(rs.getString("Zone Name")+"\t");
System.out.print(rs.getInt("Zone Count")+"\t");
System.out.println(rs.getString("Phase Name"));
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("out insert done");
}
}
Я пытаюсь вставить данные с удаленного сервера sql в локальный mysql. Сначала вставка вступила, но теперь ее не происходит, можете ли вы сказать мне, где именно код неправильный.Вставка с удаленного сервера sql на локальный сервер mysql
в то время как блок, где я печатаю на самой консоли, не выполняется.
Если в то время как блок не выполняется, это означает, что resultset ничего не возвращает. Вы проверили это? –
Какой 'while'block? Возвращаются ли запросы при запуске вручную в клиентском инструменте Squirrel/TOAD/SQLServer? –
попытайтесь сохранить данные первого запроса в массиве, а затем прочесть эти данные в другой вставке, я нахожу аналогичную проблему, делаю что-то похожее на вас, моя база данных разбилась, потому что я не закрываю, и я собираюсь открыть много времени opperations in toher database, для которого я думаю, лучше сохранить все данные в базе данных, закрыть эту базу данных, а затем выполнить операции второй базы данных. – Deckard27