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();
}
}
}
}
}
}

 

arrow
arrow
    文章標籤
    jdbc
    全站熱搜

    goodice0728 發表在 痞客邦 留言(0) 人氣()