问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中,怎么将用户选择的excel数据批量导入mySql数据库

发布网友 发布时间:2022-04-23 06:43

我来回答

2个回答

懂视网 时间:2022-04-08 02:05

1 CREATE TABLE `student_info` (
2 `id` int(11) NOT NULL AUTO_INCREMENT,
3 `no` varchar(20) DEFAULT NULL,
4 `name` varchar(20) DEFAULT NULL,
5 `age` varchar(10) DEFAULT NULL,
6 `score` float DEFAULT ‘0‘,
7 PRIMARY KEY (`id`)
8 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
技术分享

插入数据成功:

技术分享

如果重复数据,则丢掉:

技术分享

=============================================

源码部分:

=============================================

/ExcelTest/src/com/b510/client/Client.java

技术分享
 1 /**
 2 * 
 3 */
 4 package com.b510.client;
 5 
 6 import java.io.IOException;
 7 import java.sql.SQLException;
 8 
 9 import com.b510.excel.SaveData2DB;
10 
11 /**
12 * @author Hongten
13 * @created 2014-5-18
14 */
15 public class Client {
16 
17 public static void main(String[] args) throws IOException, SQLException {
18  SaveData2DB saveData2DB = new SaveData2DB();
19  saveData2DB.save();
20  System.out.println("end");
21 }
22 }
技术分享

/ExcelTest/src/com/b510/common/Common.java

技术分享
 1 /**
 2 * 
 3 */
 4 package com.b510.common;
 5 
 6 /**
 7 * @author Hongten
 8 * @created 2014-5-18
 9 */
10 public class Common {
11 
12 // connect the database
13 public static final String DRIVER = "com.mysql.jdbc.Driver";
14 public static final String DB_NAME = "test";
15 public static final String USERNAME = "root";
16 public static final String PASSWORD = "root";
17 public static final String IP = "192.168.1.103";
18 public static final String PORT = "3306";
19 public static final String URL = "jdbc:mysql://" + IP + ":" + PORT + "/" + DB_NAME;
20 
21 // common
22 public static final String EXCEL_PATH = "lib/student_info.xls";
23 
24 // sql
25 public static final String INSERT_STUDENT_SQL = "insert into student_info(no, name, age, score) values(?, ?, ?, ?)";
26 public static final String UPDATE_STUDENT_SQL = "update student_info set no = ?, name = ?, age= ?, score = ? where id = ? ";
27 public static final String SELECT_STUDENT_ALL_SQL = "select id,no,name,age,score from student_info";
28 public static final String SELECT_STUDENT_SQL = "select * from student_info where name like ";
29 }
技术分享

/ExcelTest/src/com/b510/excel/ReadExcel.java

技术分享
 1 /**
 2 * 
 3 */
 4 package com.b510.excel;
 5 
 6 import java.io.FileInputStream;
 7 import java.io.IOException;
 8 import java.io.InputStream;
 9 import java.util.ArrayList;
10 import java.util.List;
11 
12 import org.apache.poi.hssf.usermodel.HSSFCell;
13 import org.apache.poi.hssf.usermodel.HSSFRow;
14 import org.apache.poi.hssf.usermodel.HSSFSheet;
15 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
16 
17 import com.b510.common.Common;
18 import com.b510.excel.vo.Student;
19 
20 /**
21 * @author Hongten
22 * @created 2014-5-18
23 */
24 public class ReadExcel {
25 
26 public List<Student> readXls() throws IOException {
27  InputStream is = new FileInputStream(Common.EXCEL_PATH);
28  HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
29  Student student = null;
30  List<Student> list = new ArrayList<Student>();
31  // 循环工作表Sheet
32  for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
33  HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
34  if (hssfSheet == null) {
35   continue;
36  }
37  // 循环行Row
38  for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
39   HSSFRow hssfRow = hssfSheet.getRow(rowNum);
40   if (hssfRow != null) {
41   student = new Student();
42   HSSFCell no = hssfRow.getCell(0);
43   HSSFCell name = hssfRow.getCell(1);
44   HSSFCell age = hssfRow.getCell(2);
45   HSSFCell score = hssfRow.getCell(3);
46   student.setNo(getValue(no));
47   student.setName(getValue(name));
48   student.setAge(getValue(age));
49   student.setScore(Float.valueOf(getValue(score)));
50   list.add(student);
51   }
52  }
53  }
54  return list;
55 }
56 
57 @SuppressWarnings("static-access")
58 private String getValue(HSSFCell hssfCell) {
59  if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
60   // 返回布尔类型的值
61   return String.valueOf(hssfCell.getBooleanCellValue());
62  } else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
63   // 返回数值类型的值
64   return String.valueOf(hssfCell.getNumericCellValue());
65  } else {
66   // 返回字符串类型的值
67   return String.valueOf(hssfCell.getStringCellValue());
68  }
69  }
70 }
技术分享

/ExcelTest/src/com/b510/excel/SaveData2DB.java

技术分享
 1 /**
 2 * 
 3 */
 4 package com.b510.excel;
 5 
 6 import java.io.IOException;
 7 import java.sql.SQLException;
 8 import java.util.List;
 9 
10 import com.b510.common.Common;
11 import com.b510.excel.util.DbUtil;
12 import com.b510.excel.vo.Student;
13 
14 /**
15 * @author Hongten
16 * @created 2014-5-18
17 */
18 public class SaveData2DB {
19 
20 @SuppressWarnings({ "rawtypes" })
21 public void save() throws IOException, SQLException {
22  ReadExcel xlsMain = new ReadExcel();
23  Student student = null;
24  List<Student> list = xlsMain.readXls();
25 
26  for (int i = 0; i < list.size(); i++) {
27  student = list.get(i);
28  List l = DbUtil.selectOne(Common.SELECT_STUDENT_SQL + "‘%" + student.getName() + "%‘", student);
29  if (!l.contains(1)) {
30   DbUtil.insert(Common.INSERT_STUDENT_SQL, student);
31  } else {
32   System.out.println("The Record was Exist : No. = " + student.getNo() + " , Name = " + student.getName() + ", Age = " + student.getAge() + ", and has been throw away!");
33  }
34  }
35 }
36 }
技术分享

/ExcelTest/src/com/b510/excel/util/DbUtil.java

技术分享
 1 /**
 2 * 
 3 */
 4 package com.b510.excel.util;
 5 
 6 import java.sql.Connection;
 7 import java.sql.DriverManager;
 8 import java.sql.PreparedStatement;
 9 import java.sql.ResultSet;
 10 import java.sql.SQLException;
 11 import java.util.ArrayList;
 12 import java.util.List;
 13 
 14 import com.b510.common.Common;
 15 import com.b510.excel.vo.Student;
 16 
 17 /**
 18 * @author Hongten
 19 * @created 2014-5-18
 20 */
 21 public class DbUtil {
 22 
 23 /**
 24 * @param sql
 25 */
 26 public static void insert(String sql, Student student) throws SQLException {
 27  Connection conn = null;
 28  PreparedStatement ps = null;
 29  try {
 30  Class.forName(Common.DRIVER);
 31  conn = DriverManager.getConnection(Common.URL, Common.USERNAME, Common.PASSWORD);
 32  ps = conn.prepareStatement(sql);
 33  ps.setString(1, student.getNo());
 34  ps.setString(2, student.getName());
 35  ps.setString(3, student.getAge());
 36  ps.setString(4, String.valueOf(student.getScore()));
 37  boolean flag = ps.execute();
 38  if(!flag){
 39   System.out.println("Save data : No. = " + student.getNo() + " , Name = " + student.getName() + ", Age = " + student.getAge() + " succeed!");
 40  }
 41  } catch (Exception e) {
 42  e.printStackTrace();
 43  } finally {
 44  if (ps != null) {
 45   ps.close();
 46  }
 47  if (conn != null) {
 48   conn.close();
 49  }
 50  }
 51 }
 52 
 53 @SuppressWarnings({ "unchecked", "rawtypes" })
 54 public static List selectOne(String sql, Student student) throws SQLException {
 55  Connection conn = null;
 56  PreparedStatement ps = null;
 57  ResultSet rs = null;
 58  List list = new ArrayList();
 59  try {
 60  Class.forName(Common.DRIVER);
 61  conn = DriverManager.getConnection(Common.URL, Common.USERNAME, Common.PASSWORD);
 62  ps = conn.prepareStatement(sql);
 63  rs = ps.executeQuery();
 64  while(rs.next()){
 65   if(rs.getString("no").equals(student.getNo()) || rs.getString("name").equals(student.getName())|| rs.getString("age").equals(student.getAge())){
 66   list.add(1);
 67   }else{
 68   list.add(0);
 69   }
 70  }
 71  } catch (Exception e) {
 72  e.printStackTrace();
 73  } finally {
 74  if (rs != null) {
 75   rs.close();
 76  }
 77  if (ps != null) {
 78   ps.close();
 79  }
 80  if (conn != null) {
 81   conn.close();
 82  }
 83  }
 84  return list;
 85 }
 86 
 87 
 88 public static ResultSet selectAll(String sql) throws SQLException {
 89  Connection conn = null;
 90  PreparedStatement ps = null;
 91  ResultSet rs = null;
 92  try {
 93  Class.forName(Common.DRIVER);
 94  conn = DriverManager.getConnection(Common.URL, Common.USERNAME, Common.PASSWORD);
 95  ps = conn.prepareStatement(sql);
 96  rs = ps.executeQuery();
 97  } catch (Exception e) {
 98  e.printStackTrace();
 99  } finally {
100  if (rs != null) {
101   rs.close();
102  }
103  if (ps != null) {
104   ps.close();
105  }
106  if (conn != null) {
107   conn.close();
108  }
109  }
110  return rs;
111 }
112 
113 }
技术分享

/ExcelTest/src/com/b510/excel/vo/Student.java

技术分享
 1 /**
 2 * 
 3 */
 4 package com.b510.excel.vo;
 5 
 6 /**
 7 * Student
 8 * 
 9 * @author Hongten
10 * @created 2014-5-18
11 */
12 public class Student {
13 /**
14 * id
15 */
16 private Integer id;
17 /**
18 * 学号
19 */
20 private String no;
21 /**
22 * 姓名
23 */
24 private String name;
25 /**
26 * 学院
27 */
28 private String age;
29 /**
30 * 成绩
31 */
32 private float score;
33 
34 public Integer getId() {
35  return id;
36 }
37 
38 public void setId(Integer id) {
39  this.id = id;
40 }
41 
42 public String getNo() {
43  return no;
44 }
45 
46 public void setNo(String no) {
47  this.no = no;
48 }
49 
50 public String getName() {
51  return name;
52 }
53 
54 public void setName(String name) {
55  this.name = name;
56 }
57 
58 public String getAge() {
59  return age;
60 }
61 
62 public void setAge(String age) {
63  this.age = age;
64 }
65 
66 public float getScore() {
67  return score;
68 }
69 
70 public void setScore(float score) {
71  this.score = score;
72 }
73 
74 }
技术分享

用java将excel中数据导入mysql

标签:

热心网友 时间:2022-04-07 23:13

你的应该是WEB工程吧。
用户选择本地文件以后提交后台的上传,后台首先将用户上传的文件获取到,然后通过POI组件对excel进行读取,将每一行数据转换成为对应的Java实体List,然后将List导入数据库。POI组件是APACHE的一个开源项目,你可以到他们的官网下载到,具体POI的使用方法官方网站和很多技术网站都有介绍。
怎么用java程序把excel导入到mysql数据库

1、创建workbook对象 2、读取sheet 3、读取行,循环行读取列值 4、将列值拼装成insert语句 5、执行sql 其中要注意的几个问题是:列值合法验证,sql语句过长问题(mysql支持的一条sql不能超过1M好像,这个可以配置的)。列值验证好说,sql语句过长可以循环固定行数分批次执行。整个东西不难,你可以在...

如何用Java实现把excel表中的数据导入到mysql数据库已有的表中

import java.util.List;public class FromExcelToDb { public static void main(String[] args) { //得到表格中所有的数据 List&lt;Stu&gt; listExcel=StuService.getAllByExcel("d://book.xls");/*//得到数据库表中所有的数据 List&lt;Stu&gt; listDb=StuService.getAllByDb();*/ DBhelper db=new DB...

怎么把excel中的数据批量导入到mysql数据中

1.将选中的数据快儿拷贝到一个TXT文本文件中(记得把后面的空格消掉。。否则导入数据库后会有对应的空行),假如存到“D:\data.txt”这个位置里。2.根据要导入的数据快儿建立MySql数据库和表,然后进入命令提示符里使用命令 load data local infile 'D:/data.txt' into table exceltomysql fields ...

如何把excel导入mysql数据库

准备excel数据,并保存好。打开mysql数据库,在要导入的表上点击右键,选择导入向导。选择要导入的文件类型,点击下一步。选择要导入的文件,选择Excel的sheet,点击下一步。在目标表处修改表名,点击下一步。在目标表处修改字段的类型,点击完成即可。

如何将Excel文件导入MySQL数据库

直到进入如下界面后查看目标栏位与原栏位的对应,如下图:8)确认对应无误后点击下一步,然后选择添加即可,然后再次点击下一步后点击开始,导入完成后提示如下图:9)操作完成后再次打开MySQL数据库中的english表查看倒入是否成功,如下图:3、总结在后面的博客中我会分享Java编程制作的单词查询小程序,...

怎么把excel一列导入mysql数据库

使用mysql管理工具,例如:Navicat for MySQL&gt;打开工具,选择表所在的数据库,然后点击数据库名字,右键数据,出来下拉菜单选择import wizard ,有汉化版本的更明确.弹出一个选择界面,我们选择excel file文件,点击next(下一步),我们选择我们对应的excel文件就行 ...

如何将Excel数据导入MySQL数据库学习MySQL中Excel的基本用法mysql中exce...

打开Excel并选择“数据”选项卡,点击“从MySQL数据库导入数据”:在登录窗口输入MySQL数据库的地址,用户名,密码和端口号,点击“确定”:5. 选择数据源 在“导入数据”窗口中,选择“选择正在搜索的数据库…”,选择你创建的数据库,并在下面选择要导入的数据表。然后,点击“下一步”。6. 确认导入...

怎么把excel表格导入mysql数据库

将Excel表格导入MySQL数据库的步骤如下:打开要导入的Excel表格,将其另存为CSV格式(选择“另存为”并选择CSV(逗号分隔值)格式)。打开MySQL数据库,在要导入的表右击选择“导入向导”。选择要导入的文件类型(例如,选择“CSV文件(逗号分隔值)”),然后点击“下一步”。选择要导入的CSV文件,并...

如何将excel批量导入mysql

excel批量导入mysql,下面通过一个例子来介绍方法:用mysql客户端可视化工具Navicat for MySQL,用其打开表 点击右上角文件-&gt;导入向导,或者直接点击表上面的导入向导 按照导入excel类型选择,按下一步 按图提示操作完,下一步 下一步 如图找到导入数据的对应列 下一步 再下一步,点击开始即可完成导入...

如何将excel数据导入数据库(mysql)且能自动更新?

首先,在数据库中创建目标表,确保其结构与Excel文件中的数据对应。使用ExcelToDatabase工具,通过“一键导入”功能,将Excel数据导入至数据库。此步骤可简化Excel数据与数据库之间的初始同步过程。接下来,决定数据更新方式。数据更新一般分为全量更新与增量更新两种策略。全量更新方式:删除数据库表中已有的...

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
腾讯360之争各界反应 当天买了基金,为什么看不到自己的金额,当天买了基金,第二天要拆分分红... 假紫绿玛瑙的特点 你好帮我看一下这个紫绿玛瑙是真的吗 紫绿玛瑙挂件有假的吗 紫绿玛瑙真假 紫绿玛瑙真假怎么看 请问这串紫绿玛瑙是真的吗? 紫绿玛瑙辨别真假 怎样判断真假紫绿玛瑙 酸汤羊肉的做法步骤 淘宝注销店铺以前的聊天记录怎么找 我的手如果想静下来敢一些细致的活,手指就抖,字也总是写不好,甲抗和CT检查都没问题,什么原因 java 怎么把5万条数据分批插入数据到mysql,之前插1,2万没事, 多了就... 酸菜粉丝羊杂汤的做法,酸菜粉丝羊杂汤怎么做 如何防止手抖? 微粒贷最长可以分几期还?利息怎样? 广西哪个省的简称是 java中怎么一次性向表中插入一条或多条数据 酸菜羊肉砂锅的做法热心解答下吧 如何预防手抖? java 怎么多表同时插入到数据库 淘宝网的历史消息记录在哪找 羊蝎子炖酸菜怎么做好吃 桂是哪个省? 手抖的表现都有哪些?老年人该如何预防手抖? 如何利用java连接数据库并批量插入数据 &quot;桂&quot;是哪的简称? 家常酸菜火锅怎么做 我和淘宝卖家3个月以前的聊天记录 能查到吗? java 怎样批量插入到数据库 烫发染发后多久能洗头 java怎么实现千万级数据量批量插入到数据库中 怎么淘宝的消息都不见了 也没删除,想找卖家都找不到聊过记录 桂是哪个地方的简称? 如何使用java代码向oracle数据库一次性插入多条数据 广西省份简称是什么 烫发、染发后多长时间才可以洗头发? 手机旺旺如何查看聊天历史记录? java批量Excel数据导入数据库表???在线等 烫染头发几天可以洗头 染完发多久可以清洗 用java读txt文件内容,然后插入到数据库中去 烫染之后几天才能洗头呢? java怎样将读取数据写入数据库 从excel表格读取数据用Java代码实现批量上传写入数据库 烫染之后几天可以洗头? 手机上怎么将pdf转成word? java相数据库中批量添加记录,必须将这些记录都加到list中吗 染了头发之后几天可以洗头