已知可以利用MSSQL內建的匯入精靈進行CSV檔案匯入。
想請問如果要利用JDBC將CSV檔匯入MSSQL資料庫的話,
是否必須一定要到資料庫手動新增欲匯入的資料表名稱跟欄位名稱?
另外下方為目前參考網路資料寫出的程式,
請問該如何實現將已經存好所有資料的陣列,匯入資料庫的部分? 謝謝
https://data.gov.tw/dataset/137384
public class CsvTurnSql {
public static void main(String[] args) {
try {
String connUrl = "jdbc:sqlserver://localhost:1433;databaseName=Test";
java.sql.Connection conn = DriverManager.getConnection(connUrl, "sa", "pw");
FileReader fr = new FileReader("D:\\桃園市110年2月觀光遊憩區遊客人次資料.csv");
BufferedReader br = new BufferedReader(fr);
String strLine = null;
while ((strLine = br.readLine()) != null) {
String[] array = strLine.split(",");
//想確認下方寫法,謝謝
String qryInsert = "insert into testInfo values(?,?,?,?,?,?,?)";
PreparedStatement pstmt = conn.prepareStatement(qryInsert);
pstmt.setString(1, array[0]);
pstmt.setInt(2, Integer.parseInt(array[1]));
pstmt.setString(3, array[2]);
pstmt.setString(4, array[3]);
pstmt.setInt(5, Integer.parseInt(array[4]));
pstmt.setFloat(6, Float.parseFloat(array[5]));
pstmt.setString(7, array[6]);
pstmt.execute(); //不確定
}
;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}