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 서버에 삽입
블록 (콘솔 자체에 인쇄 중)이 실행되지 않습니다.
블록이 실행되지 않는 경우 결과 집합이 아무 것도 반환하지 않는다는 의미입니다. 그걸 확인해 봤어? –
어떤 '차단'입니까? Squirrel/TOAD/SQLServer 클라이언트 도구에서 수동으로 실행할 때 쿼리가 아무 것도 반환합니까? –
첫 번째 문의 데이터를 배열에 저장하려고 시도한 다음 해당 데이터를 다른 인서트로 지나치게하면 비슷한 문제가 발생합니다. 데이터베이스가 닫히지 않고 mantein이 많은 시간을 열어서 데이터베이스가 손상됩니다. 그것을 toher 데이터베이스에서 opperations 내가 생각하는 데이터베이스 closign 그 데이터베이스에있는 모든 데이터를 저장하고 두 번째 데이터베이스의 작업을 수행하는 것이 좋습니다. – Deckard27