楼主因为要对一些存在txt文件里的文件加入到数据库,但是一些一些已经存在的方法我都试过了,都不成功,无奈之下只好用java编写了一段程序来导入数据;
但中间出现了汉字乱码问题,解决方法如下:
1.将txt文件的编码设为utf8;
2.将数据库的编码格式设为utf8;语句如下:SET character_set_database = utf8 ;set names utf8
3.将eclipse工程的编码格式设为utf8;语句如下:找到工程,右击,properties,resources,设置编码为utf8
具体的代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.*;;
public class JdbcStudy {
private String url = "jdbc:mysql://localhost:3306/bigdata";
private String user="root";
private String password="ROOT";
BufferedReader br;
Connection con;
public void test() throws SQLException, IOException {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
con = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PreparedStatement ps=con.prepareStatement("insert into data values(?,?,?,?,?,?,?,?)");
br=new BufferedReader (new FileReader("f:/gd_train_data.txt"));
String str=null;
String s[]=new String[7];
int i=1;
while ((str=br.readLine())!=null){
s=str.split(",");
ps.setInt(1, i++);
ps.setString(2, s[0]);
ps.setString(3, s[1]);
ps.setString(4, s[2]);
ps.setString(5, s[3]);
ps.setString(6, s[4]);
ps.setString(7, s[5]);
ps.setString(8, s[6]);
ps.executeUpdate();
}
br.close();
ps.close();
con.close();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JdbcStudy JS=new JdbcStudy();
try {
JS.test();
} catch (SQLException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}