zoukankan      html  css  js  c++  java
  • 实现读取文本数据,在将数据导入mysql

    import java.io.BufferedReader;
    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    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.ArrayList;
    import java.util.List;
    import java.util.Properties;
    
    /**
     * ClassName:DBlUtils <br/>
     * Function: TODO ADD FUNCTION. <br/>
     * Reason: TODO ADD REASON. <br/>
     * Date: 2015年9月14日 下午3:19:51 <br/>
     * 
     * @author
     * @version
     * @since JDK 1.7.79
     */
    public class DBlUtils {
    
        public static String url = null;
        public static String username = null;
        public static String password = null;
        public static Connection conn;
        public static Statement stmt;
        public static ResultSet rs;
        public static String fileName = null;
    
        public static String PATH = "/dbconfig.properties";
        private static Properties properties;
        static {
            try {
                InputStream is = DBlUtils.class.getResourceAsStream(PATH);
                properties = new Properties();
                properties.load(is);
                url = properties.getProperty("jdbc.url");
                username = properties.getProperty("jdbc.username");
                password = properties.getProperty("jdbc.password");
                fileName = properties.getProperty("fileName");
                System.out.println("fileName:" + fileName);
                if (is != null)
                    is.close();
            } catch (IOException e) {
    
                e.printStackTrace();
            }
    
        }
    
        public void closeConnection(Connection conn) {
    
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    
        public static void insertData(String sql) {
            try {
    
                conn = DriverManager.getConnection(url, username, password);
                conn.setAutoCommit(false);
                stmt = conn.prepareStatement("load data local infile '' " + "into table loadtest fields terminated by ','");
                StringBuilder sb = new StringBuilder();
                InputStream is = new ByteArrayInputStream(sb.toString().getBytes());
                ((com.mysql.jdbc.Statement) stmt).setLocalInfileInputStream(is);
                stmt.executeUpdate(sql);
                conn.commit();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    
     
        public static String readFileByLines(String fileName) {
            File file = new File(fileName);
            String tempString = null;
            BufferedReader reader = null;
            try {
                System.out.println("以行为单位读取文件内容,一次读一整行:");
                reader = new BufferedReader(new FileReader(file));// 一次读入一行,直到读入null为文件结束
                while ((tempString = reader.readLine()) != null) {
                    String sql = ("insert into tablename(title, feel, state, num, anum, updatetime, createtime) values ('" + tempString + "',0, 0, 0, 0, NOW(), NOW())");
                    insertData(sql);
                }
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (IOException e1) {
                    }
                }
            }
            return tempString;
        }
    
        /**
         * 实现数据增量插入
         * 
         * @param fileName
         *            文件名称
         * @param str
         *            比较关键字
         * @return
         */
        public static String increaseInsertData(String fileName, String str) {
            File file = new File(fileName);
            String tempString = null;
            BufferedReader reader = null;
            List lists = new ArrayList();
            try {
                reader = new BufferedReader(new FileReader(file));
                int line = 1;
                while ((tempString = reader.readLine()) != null) {
                    lists.add(tempString);
                }
                // 取出mysql里面的数据
                String sqlstr = null;
                String sql = ("");
                // 判断是否包含mysql 数据库
                if (!lists.contains(sqlstr)) {
                    // TODO 不包含将数据添加到mysql 中
    
                } else {
                    // 包含 不添加
    
                }
    
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
        public static void main(String[] args) {
    
            // String filePath = "E://zongyi.txt";
            String readFileByLines = readFileByLines(fileName);
            String str = ("insert into table(title, feel, state, snum, anum, updatetime, createtime) values (readFileByLines,0, 0, 0, 0, NOW(), NOW())");
    
            insertData(readFileByLines);
            System.out.println(readFileByLines);
            System.out.println("添加数据成功。。。。");
    
        }
    }

    配置文件信息:在resources 目录下: dbconfig.properties

    
    jdbc.url=jdbc:mysql://ip:3306/databases?useUnicode=true&characterEncoding=UTF-8
    jdbc.username=username
    jdbc.password=password
    jdbc.dbType=mysql
    # filePath fileName
    =E://xx.txt
    fileName=E://words.txt
  • 相关阅读:
    单列模式
    经济数据价格走势图(包括纸黄金),可以查看历史
    UVA10010的类似BFS做法
    转:数据结构专项之Hash函数
    ZOJ1709 DFS和BFS两种搜索方法
    HDU1969(二分搜索)
    HDU1045 回溯
    HDU2899(三分搜索)
    安神口中的水题
    HDU2199(二分搜索无限逼近)
  • 原文地址:https://www.cnblogs.com/zhanggl/p/4812202.html
Copyright © 2011-2022 走看看