1. 程式人生 > >使用mysql匯入檔案

使用mysql匯入檔案

一,文字文件格式的匯入(mysql) 

1. 表tt的格式:


 CREATE TABLE `tt` (
  `ind` int NOT NULL auto_increment,
  `name` char(100) default NULL,
  PRIMARY KEY  (`ind`)
 )

2. 檔案d.txt的內容示例:
 1,a
 2,b
 3,c

3 .匯入命令:
 mysql> load data infile 'd.txt' into table tt
        -> fields terminated by','
        -> lines terminated by'\r\n'


 注意的地方:
 1)、檔案可以使用絕對路徑如'c:/d.txt',否則請將檔案放在資料庫根目錄中
 2)、因為欄位之間用了逗號隔開,所以必須fields terminated by',',否則匯入失敗
 3)、因為Winsows中行以“\r\n”隔開,所以必須lines terminated by'\r\n',
 如果不設定這個引數,也可匯入成功,但是會多匯入一個“\r”控制字元,可能在視覺化
 MySQL工具中看不出欄位異樣,但是在MySQL命令列中顯示會明顯混亂。
 4)、如果表tt非空,且檔案中的ind值在表中有重複,會提示錯誤,並匯入失敗。

 只匯入name欄位,檔案d.txt的內容:
 a
 b
 c

 mysql> load data infile 'd.txt' into table tt

    -> lines terminated by'\r\n'
    -> (name);

 load data 命令還支援更復雜的文字格式、檔案編碼等,可參考官方文件。

4.匯出到資料到windows文字檔案時,為了方便檢視,也需要相同的設定
 mysql> select * from tt into outfile 'd.txt'
    -> fields terminated by','

    -> lines terminated by'\r\n'

二,JDBC連線匯入(mysql)

程式碼如下:

import java.sql.*;

public class TestPreStmt {

 public static void main(String[] args) {
  ResultSet rs = null;
  Connection conn = null;
  PreparedStatement pst = null;
     try {
       //第一步:載入MySQL的JDBC的驅動
          Class.forName("com.mysql.jdbc.Driver"); 
        //取得連線的 url,能訪問MySQL資料庫的使用者名稱,密碼;資料庫名
          String url = "jdbc:mysql://localhost:3306/2";
          String user = "root";
          String password = "19870714";
        //第二步:建立與MySQL資料庫的連線類的例項
          conn = DriverManager.getConnection(url, user, password);
        //第三步:用conn建立Statement物件類例項 stmt
           String sql = "select id,name from student where id=? and name=?";
          pst = conn.prepareStatement(sql);   
           pst.setInt(1, 1);
         pst.setString(2, "張三");
         rs = pst.executeQuery();
          while(rs.next()){
           System.out.println(rs.getString("id"));
           System.out.println(rs.getString("name"));
          }
         
         String ps = "insert into student values(?,?,?)"; 
         pst = conn.prepareStatement(ps);
         pst.setInt(1, 5);
         pst.setString(2, "pig");
         pst.setString(3, "m");
         pst.executeUpdate();
     } catch (ClassNotFoundException e) {  
     //載入JDBC錯誤,所要用的驅動沒有找到
      System.out.println("驅動載入錯誤");
  }catch (SQLException ex) {
    //顯示資料庫連線錯誤或查詢錯誤
    System.err.println("SQLException:"+ex.getMessage());
  }finally {
     try{
      
         if(pst != null) {
          pst.close();
          pst = null;
         }
         if(conn != null) {
          conn.close();