【高分求助】Java读取csv文件,并导入MySql。

geleisi 2011-07-22 12:13:28
有如下格式的csv文件:

序号 考号 姓名 性别 身份证 专业 缴费金额
5 1076134121 王 女 33333 艺术 126.00
9 1077734120 朱 女 3082X 艺术 326.00
10 1088134124 郭 女 62720 艺术 126.00
19 1023651083 朱 女 6072X 艺术 126.00
20 1068541006 何 女 01387 艺术 326.00

现在想将数据(从第二行开始)导入mysql中,请问怎么导?麻烦高手给段完整的代码!谢谢!
...全文
662 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
fireelf000 2011-08-01
  • 打赏
  • 举报
回复
useUnicode=true&characterEncoding=UTF-8应该不会有问题吧,我的mysql也是utf-8的,这样写从来都没问题啊
shixitong 2011-07-22
  • 打赏
  • 举报
回复
不过一般数据库都可以识别csv文件,为什么还要通过java呢?
shixitong 2011-07-22
  • 打赏
  • 举报
回复
我的最傻的就是解析csv文件,然后把记录插入数据库中。
geleisi 2011-07-22
  • 打赏
  • 举报
回复
传到服务器上试试
geleisi 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 pipi517 的回复:]
我测试时,mysql也是utf-8
String url = "jdbc:mysql://localhost:3306/test";
这样没问题的
[/Quote]

和我本地运行的有关系么?
皮皮 2011-07-22
  • 打赏
  • 举报
回复
我测试时,mysql也是utf-8
String url = "jdbc:mysql://localhost:3306/test";
这样没问题的
HeiBoyYang 2011-07-22
  • 打赏
  • 举报
回复
csv 格式要改
跟execl格式差不多
有的要空几行看情况
geleisi 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 pipi517 的回复:]
你mysql安装的时候用什么编码
[/Quote]
utf-8,我别的程序插入这个表都是中文。
皮皮 2011-07-22
  • 打赏
  • 举报
回复
你mysql安装的时候用什么编码
geleisi 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 pipi517 的回复:]
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gb2312
[/Quote]
useUnicode=true&characterEncoding=gb2312 加上了没有效果还是“???”改成utf-8也不行
皮皮 2011-07-22
  • 打赏
  • 举报
回复
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gb2312
geleisi 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 pipi517 的回复:]
Java code

String filePath = "D:\\bbb.csv";
BufferedReader bufferedReader = null;
Connection conn = null;
String driver = "com.mysql.jdbc.Driver";
String url = "……
[/Quote]

谢谢,但是中文数据插入后一堆“???”是怎么回事?
Inhibitory 2011-07-22
  • 打赏
  • 举报
回复
1. 拆分字符串
2. 插入数据库(最好使用事务,如1000条提交一次)
皮皮 2011-07-22
  • 打赏
  • 举报
回复

String filePath = "D:\\bbb.csv";
BufferedReader bufferedReader = null;
Connection conn = null;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, "root", "123456");

bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));
String line = null;
while ((line = bufferedReader.readLine()) != null) {
String[] columns = line.split(",");
if(columns[0].trim().equalsIgnoreCase("序号")){
continue;
}
PreparedStatement pstmt = conn.prepareStatement("insert into test(xh,kaohao,name,sex,sfz,zy,xf)values(?,?,?,?,?,?,?)");
pstmt.setString(1, columns[0]);
pstmt.setString(2, columns[1]);
pstmt.setString(3, columns[2]);
pstmt.setString(4, columns[3]);
pstmt.setString(5, columns[4]);
pstmt.setString(6, columns[5]);
pstmt.setString(7, columns[6]);
pstmt.executeUpdate();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
conn.close();
bufferedReader.close();
} catch (Exception e) {
e.printStackTrace();
}
}

geleisi 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zl3450341 的回复:]
在网上很多啊。
[/Quote]

找了好多都有问题
zl3450341 2011-07-22
  • 打赏
  • 举报
回复
在网上很多啊。
geleisi 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shixitong 的回复:]
http://topic.csdn.net/u/20080902/22/4fd782e6-2b57-471e-862d-038875dd04e8.html
[/Quote]

谢谢,不过我现在需要一段Java类来处理csv文件。
我嘞个去 2011-07-22
  • 打赏
  • 举报
回复
不懂。友情帮顶!

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧