zoukankan      html  css  js  c++  java
  • java读取记事本文件的部分数据添加到mysql

    package com.tideway.readtxt;
    
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    
    public class ReadTXT {
        public static List<String> trim(String[] source){
            List<String> list = new ArrayList<String>();
          //循环遍历得到的行文件,加入到list中
    for(String item : source){ if(null==item||"".equals(item)) continue; list.add(item); } return list; } public static void main(String[] args) { int read = 0; int write = 0; FileInputStream fis = null; InputStreamReader isr = null; BufferedReader br = null; // 用于包装InputStreamReader,提高处理性能。因为BufferedReader有缓冲的,而InputStreamReader没有。 try { String str = ""; fis = new FileInputStream("e:\AGL_001.TXT");// FileInputStream // 从文件系统中的某个文件中获取字节 isr = new InputStreamReader(fis);// InputStreamReader 是字节流通向字符流的桥梁, br = new BufferedReader(isr);// 从字符输入流中读取文件中的内容,封装了一个new // InputStreamReader的对象 while ((str = br.readLine()) != null) { //截取得到的一行数据 String[] parms = str.split(" "); //跳过第一行 if(parms[0].equals("No")) continue; //把得到的数据放进list List<String> list = trim(parms); read++;
              //调用添加方法,把list的第1,3,4,7条数据加入到mysql write
    +=JDBCAdd.Insert(list.get(0),list.get(2),list.get(3),list.get(6)); }
            //记录下读了/写了多少条数据 System.out.println(
    "read="+read+"; write="+write); } catch (FileNotFoundException e) { System.out.println("找不到指定文件"); } catch (IOException e) { System.out.println("读取文件失败"); } finally { try { br.close(); isr.close(); fis.close(); // 关闭的时候最好按照先后顺序关闭最后开的先关闭所以先关s,再关n,最后关m } catch (IOException e) { e.printStackTrace(); } } } }

    读取txt文件,添加到list中,读取一条向数据库中添加一条。

    添加操作:

    package com.tideway.readtxt;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    
    public class JDBCAdd {
        
        
        public static int Insert(String... parms){
        Connection conn=null;
        PreparedStatement preStatement=null;//创建PreparedStatement对象
        try {
            //1、准备Connection连接数据库
            conn=JDBCTools.getConnection();
            //2、准备sql语句
            //sql语句不再采用拼接方式,应用占位符问号的方式写sql语句。
            String sql="insert into t_attendance(id,EnID,Name,DateTime) values(?,?,?,?)";
            //3、准备prepareStatement
            //对占位符设置值,占位符顺序从1开始,第一个参数是占位符的位置,第二个参数是占位符的值。
            preStatement=conn.prepareStatement(sql);
            //4、占位符设置值
            for(int i=0;i<parms.length;i++){
                preStatement.setObject(i+1, parms[i]);
            }
            //5、执行sql
            return preStatement.executeUpdate();
            
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
            return 0;
        }finally{
            //6、关闭数据库等
            JDBCTools.closeConnection(null, preStatement, conn);
        }
    }
    }

    数据库连接的方法:

    package com.tideway.readtxt;
    
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    
    public class JDBCTools {
    
        /**
         * 功能:JDBC连接数据库
         * @return
         * @throws Exception
         */
        public static Connection getConnection() throws Exception{
            //创建Properties对象
            Properties pro=new Properties();
            //获取输入流
            InputStream in=
                    JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.properties");
            //加载输入流
            pro.load(in);
            
            String driver=pro.getProperty("driver");
            String jdbcUrl=pro.getProperty("jdbcUrl");
            String user=pro.getProperty("user");
            String password=pro.getProperty("password");
            //加载数据库驱动程序
            Class.forName(driver);
            //通过DriverManager的getConnection()方法获取数据库连接
            Connection conn=DriverManager.getConnection(jdbcUrl, user, password);
            return conn;
        }
        /**
         * 功能:关闭数据库连接
         * @param rs
         * @param statement
         * @param conn
         */
        public static void closeConnection(ResultSet rs,Statement statement,Connection conn){
            if(rs!=null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(statement!=null){
                
                try {
                    statement.close();
                } catch (Exception e2) {
                    // TODO Auto-generated catch block
                    e2.printStackTrace();
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (Exception e2) {
                    // TODO Auto-generated catch block
                    e2.printStackTrace();
                }
            }
        }
    }
  • 相关阅读:
    指向const的指针和const指针
    c++类中的静态成员
    Vue.js图片预览插件
    vue 报错 Cannot read property '__ob__' of undefined的解决方法
    vue/webpack的一些小技巧
    css强制html不换行 css强制英文单词断行 重拾丢失的
    js将 HTML 页面生成 PDF 并下载
    Vue跨路由触发事件,Vue监听sessionStorage
    ssh 上传文件以及文件夹到linux服务器
    【原创】移动端获取用户公网ip,获取用户ip
  • 原文地址:https://www.cnblogs.com/yunqing/p/6149167.html
Copyright © 2011-2022 走看看