package cn.itcast.day04.test;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ConMysql {
public static void main(String[] args) {
String[][] strings = writeToDat("E:\\Java\\basic-code\\day04-code\\src\\cn\\itcast\\day04\\test\\en_ch.js");
// getConnection("jdbc:mysql://localhost:3306","db1","root","root");
insertIntoTable("jdbc:mysql://localhost:3306", "db1", "root", "root", "user", strings);
}
private static String url_unic = "?useUnicode=true&characterEncoding=utf8";
//读文件
public static String[][] writeToDat(String path) {
File file = new File(path);
List<String> list = new ArrayList<String>();
String[][] strings = null;
try {
InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf8");
BufferedReader bw = new BufferedReader(isr);
String line = null;
while ((line = bw.readLine()) != null) {
if (!line.equals("")) {
list.add(line);
}
}
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
list = list.subList(1, list.size() - 1);
strings = new String[list.size()][2];
// System.out.println(list);
for (int a = 0; a < list.size(); a++) {
String[] split = list.get(a).split(":");
// System.out.println(Arrays.toString(split));
for (int b = 0; b < split.length; b++) {
Pattern p = Pattern.compile(",|\\s*|\t|\r|\n");
Matcher m = p.matcher(split[b]);
split[b] = m.replaceAll("");
if (a != list.size() - 1) {
if (b == split.length - 1) {
String substring = split[b].substring(0, split[b].length());
strings[a][b] = substring;
} else {
strings[a][b] = split[b];
}
} else {
strings[a][b] = split[b];
}
}
}
// for (int i = 0; i < list.size(); i++) {
// String[] st = list.get(i).split("\t");
//
// for (int j = 0; j < st.length; j++) {
// Pattern p = Pattern.compile(",|\\s*|\t|\r|\n");
// Matcher m = p.matcher(st[j]);
// st[j] = m.replaceAll("");
// st[j] = st[j].replaceAll(":",",");
// strings[i][j] = st[j];
// //System.out.println(strings[i][j]);
// }
// }
//[['11','one'],['22','two']]
System.out.println("load data success!");
return strings;
}
//连接数据库
public static Connection getConnection(String url, String dataBase, String user, String pwd) {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url_total = url + "/" + dataBase + url_unic;
//System.out.println(url_total);
conn = DriverManager.getConnection(url_total, user, pwd);
System.out.println("connection success!");
} catch (Exception e) {
System.out.println("connection fail!");
e.printStackTrace();
}
return conn;
}
//关闭数据库连接
public static void closeCon(Connection con) {
if (con != null) {
try {
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
//插入数据
public static boolean insertIntoTable(String url, String dataBase, String user, String pwd, String table, String[][] str) {
Connection conn = getConnection(url, dataBase, user, pwd);
try {
String sql = "insert into " + table + " (" + "uid,uname"
+ ")" + " values " + "(?,?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
for (int i = 0; i < str.length; i++) {
pstmt.setInt(1, Integer.parseInt(str[i][0]));
// System.out.println(str[i][0]);
for (int j = 1; j < str[i].length; j++) {
//System.out.println(str[i][j]);
pstmt.setString(j + 1, str[i][j]);
}
pstmt.executeUpdate();
}
System.out.println("insert data success!");
closeCon(conn);
return true;
} catch (SQLException e) {
e.printStackTrace();
System.out.println("insert data fail!");
closeCon(conn);
return false;
}
}
}