iT邦幫忙

0

關於利用JDBC將CSV檔匯入MSSQL

  • 分享至 

  • xImage

已知可以利用MSSQL內建的匯入精靈進行CSV檔案匯入。

想請問如果要利用JDBC將CSV檔匯入MSSQL資料庫的話,
是否必須一定要到資料庫手動新增欲匯入的資料表名稱跟欄位名稱?

另外下方為目前參考網路資料寫出的程式,
請問該如何實現將已經存好所有資料的陣列,匯入資料庫的部分? 謝謝
https://data.gov.tw/dataset/137384
https://ithelp.ithome.com.tw/upload/images/20220303/20145281Nbp61Ybhnt.jpg

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();
		}
	}
}
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
chen09885
iT邦見習生 ‧ 2022-03-31 17:32:22

印象中純JDBC應該不行

你要用JPA框架(例如hibernate),可以依據VO的內容自動生成TABLE

我要發表回答

立即登入回答