close
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; /* * 在res資料夾內新增一文字檔emp.txt,並在文字檔內設定五筆employee的資料 * 以批次方式將文字檔內資料寫入資料庫 */ public class EmpInsertHomeWork2 { public static void main(String[] args) throws IOException { Connection conn = null; PreparedStatement pstmt=null; BufferedReader bfr = null; try { String connUrl = "jdbc:sqlserver://localhost:1433;databaseName=jdbc"; conn = DriverManager.getConnection(connUrl, "sa", "passw0rd"); String qryStmt = "INSERT INTO employee2 VALUES (?, ?, ?, ?, ?, ?)"; pstmt = conn.prepareStatement(qryStmt); //使用BufferedReader讀取emp.txt bfr=new BufferedReader(new FileReader("D:/JDBC/workspace/JDBCHomeWork/res/emp.txt")); String data=""; while((data=bfr.readLine()) != null){ //讀出emp.txt檔的值 String result[]=data.trim().split(","); //將emp.txt內的文字以,號分隔並去除,號間的空格並儲存在result字串陣列 for(int i=0;i<result.length;i++){ System.out.println("result["+i+"]="+result[i]+" ");//印出result陣列內的資料 //EX:當i=0時pstmt.setString(1, result[0]);...以此類推 pstmt.setString(i+1, result[i]); } pstmt.addBatch();//addBatch()不得放在for迴圈內否則會造成錯誤 } pstmt.executeBatch();//批次寫入資料庫 } catch (SQLException e) { e.printStackTrace(); } finally{ bfr.close(); //關閉檔案 if(pstmt!=null){ try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } } }
文章標籤
全站熱搜
留言列表