使用mysql导入文件

来源:互联网 发布:app数据分析 编辑:程序博客网 时间:2024/06/11 15:06

一,文本文档格式的导入(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();
          conn = null;
         }
     }catch(SQLException e) {
      System.err.println("SQLException:"+e.getMessage());
     }
  }
 }

}




原创粉丝点击