java讀取本地txt文件並插入數據庫


txt文件為sql1.txt

txt中數據格式如圖所示:

代碼:

public class test {
    //連接數據庫
    public static Connection getConnection(String data, String user, String pwd) {

        Connection conn = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/" + data + "?serverTimezone=UTC&characterEncoding=UTF-8", user, pwd);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

    //插入數據庫,只能為一個字段
    public static boolean insertInto(String[] str) throws NumberFormatException {
        try {
            // blog是數據庫表,root是數據庫用戶名,password是數據庫密碼
            Connection conn = getConnection("blog", "root", "password");
            conn.setAutoCommit(false);
            String sql = "INSERT INTO tb_user (id,username,password,name,birthday,sex,email,phone,qq,status,create_time,update_time) VALUES (?,?,?,?,?,?,?,?,?,?,?,?);";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            for (int i = 1; i <= str.length; i++) {
                if (i==1) pstmt.setInt(1,Integer.parseInt(str[i-1]));
                //else pstmt.setString(i, str[i-1]);
                else {
                    pstmt.setString(i, (str[i-1]).substring(1,str[i-1].length()-1));
                }
//              conn.commit();
            }
            pstmt.executeUpdate();
            conn.commit();
            return true;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return false;
        }
    }

    public static void main(String[] args) {

        String[] strings = readTxt("sql1.txt");
        for (String str: strings) {
            String[] split = str.split(",");
            /*boolean b = */insertInto(split);
            /*if (b) {
                System.out.println("插入成功!");
            } else {
                System.out.println("插入失敗!");
            }*/
        }
        System.out.println("終於導完了");
    }

    //讀取文本操作
    public static String[] readTxt(String path) {
        File file = new File(path);
        List<String> list = new ArrayList<String>();
        String[] strings = null;
        try {
            BufferedReader bw = new BufferedReader(new FileReader(file));
            String line = null;
            //因為不知道有幾行數據,所以先存入list集合中
            while ((line = bw.readLine()) != null) {
                list.add(line);
            }
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        //確定數組長度
        strings = new String[list.size()];
        for (int i = 0; i < list.size(); i++) {
            String s = (String) list.get(i);
            strings[i] = s;
        }
        return strings;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM