问答文章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-07 21:44

我来回答

4个回答

懂视网 时间: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

读取Excel的第三方工具一般可以用jxl或者poi。jxl比较轻量,poi功能更强大一点。如果数据量较小,推荐jxl,百万级的推荐poi。
从我代码中取出来的一部分,你自己参考下吧。
流程就是:
1、创建workbook对象
2、读取sheet
3、读取行,循环行读取列值
4、将列值拼装成insert语句
5、执行sql
其中要注意的几个问题是:列值合法验证,sql语句过长问题(mysql支持的一条sql不能超过1M好像,这个可以配置的)。列值验证好说,sql语句过长可以循环固定行数分批次执行。整个东西不难,你可以在网上搜索到相关资料。

public void scanXlsx(String path) throws IOException {
log.info("进入Xlsx扫描方法,扫描路径为:{}", path);
// 初始化文件输入流
InputStream is = new FileInputStream(path);
// 初始化workbook对象
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);

// 定义XLSX行对象
XSSFRow xssfRow;
// 定义XLSX sheet对象
XSSFSheet xssfSheet;
// 获得sheet数目
int sheet_sum = xssfWorkbook.getNumberOfSheets();
log.info("该excel共有<" + sheet_sum + ">个工作簿!");

// 初始化读取记录行数,跳过表头,默认开始就读取一行
rows_index = 1;
/*
* 循环遍历每个工作簿
*/
for (int numSheet = 0; numSheet < sheet_sum; numSheet++) {
log.debug("进入循环读页,当前页为Sheet{}", numSheet + 1);
// 初始化sheet对象
xssfSheet = xssfWorkbook.getSheetAt(numSheet);
// 判断sheet所在页内容是否为空
if (xssfSheet == null) {
continue;
}
// 获得第numSheet个工作表的总行数

rows_sum = xssfSheet.getPhysicalNumberOfRows() - 1;

/*
* 如果工作簿的总行数为0或1,那么就跳出本次循环,继续下一个工作簿
*/
if (rows_sum <= 1) {
log.debug("该sheet无有效数据");
continue;
}
// 一次批量插入100条,计算循环次数
int loops = 1;
if (rows_sum % 100 == 0) {
loops = rows_sum / 100;
} else {
loops = rows_sum / 100 + 1;
}
log.debug("循环次数:{}", loops);
// 初始化每个numSheet的成功行数
rows_success = 0;
log.info("第<" + numSheet + ">个工作簿共<" + rows_sum + ">行!");
int m = 0;// 结束条数
int j = 0;// 起始条数
int s = 0;// 起始条数
for (int h = 0; h < loops; h++) {
j = h * 100 + 1;// 开始条数
s = j;
m = (h + 1) * 100 + 1;// 计算结束条数
if (m > rows_sum) {
m = rows_sum;
}
log.info("文件第<" + h + ">次从<" + j + ">行开始读取,读取到<" + m + ">行结束");
// 循环遍历每个sheet的行
out: for (; j < m; j++) {
// 获得行对象
xssfRow = xssfSheet.getRow(j);
/*
* 遍历每列的值
*/
for (int i = 0; i < 13; i++) {
// 获得列值
value = ScanUtils.getValue(xssfRow.getCell(i));
switch (i) {
/*
* 第一列:
*/
case 0:
break;
/*
* 第二列:
*/
case 1:
break;
。。。
default:
break;
}
}
// 增加一条读取记录
++rows_index;
}
}
}
is.close();
}

热心网友 时间:2022-04-08 00:31

要是您的excel是按照一定格式的话,您可以使用POI来读取excel,然后将excel里面的内容存放进MySQL数据库里面

热心网友 时间:2022-04-08 02:06

使用 POI 读excel,,,,,使用 jdbc写入mysql

~
~
~
怎么用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数据库

2、实际操作1)首先需要下载一个数据库管理工具名为Navicat for MySQL,可以通过以下网址下载Navicat for MySQL,下载安装完成后即可进行操作;2)我以一个CET-6的词汇表为例进行讲解,该词汇表内容部分截图如下:其中包含词汇、翻译及其助记方法;3)使用Navicat创建一个新表名为“english”,然后进入到如...

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

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

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

一、准备工作 在导入数据之前,请确保已经安装以下配套软件:1. MySQL数据库 2. Microsoft Excel 3. MySQL插件 在安装MySQL插件前,可从下面官网下载最新版本Excel插件即可:https://dev.mysql.com/downloads/windows/excel/并按步骤安装。二、Excel表数据导入MySQL数据库 以下是在MySQL中将Excel表数据...

如何把excel导入mysql数据库

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

如何将excel中数据导入到mysql数据库

1、先在mysql管理工具上面新建一个表,也可以用mysql命令创建。表的字段要和EXECL上对应的数据相对应。2、使用mysql的第三方管理工具,如Navicat for MySQL,打开工具,选择表所在的数据库,然后点击数据库名字,右键数据,出来下拉菜单选择import wizard ,有汉化版本的更明确,在弹出一个选择界面,直接选择...

excel数据导入到mysql数据库

在Excel数据导入MySQL数据库的过程中,主要包括以下几个步骤:首先,你需要明确数据库的相关信息,包括数据库的地址和你想将数据写入的库名。这些信息对于后续操作至关重要。其次,你需要确定要导入的表格数据。这包括决定在数据库中创建哪些表以及每个表需要哪些字段。这一步需要细致规划,以确保数据的准确...

如何将excel表格的数据导入到mysql数据中去

步骤:1、打开mysql,用mysql命令创建一个表。2、打开office excel,按照程序提供的字段填写相应的数据。3、打开mysql管理工具,择表所在的数据库,点击数据库名字,右键数据,选择import wizard,选择excel file文件。4、点击next,选择对应的excel文件,选择有文字内容的sheet,点击next 。5、filed name ...

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

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
云裳羽衣普通6-4完美攻略介绍_云裳羽衣普通6-4完美攻略是什么 ...长期在深圳工作。那我可以在深圳续签港澳通行证吗?是续签喔,_百度... 云裳羽衣第五章怎么过 第五章普通完美攻略 消防法规中规定发生火灾时的处置方法有哪些规定 火灾扑救的基本原则是什么答案 请教专家朝鲜缺的衣食同等商品按中朝汇率和价格差异来看挣钱不?_百度... ...想请教一下高手指点我一下。柿子做法的步骤,如何晒,如果白天晒,晚 ... 如何看待闪婚的林志玲夫妇? 闪婚真的可以幸福吗,有什么弊端呢? 大闸蟹在鱼缸里用什么水养好 《简爱》的观后感500字左右 一加9RT值不值得买? 这个时候买一加9好不好? 一加9好不?值得入手吗? 一加9手机值得买吗 一加9值得买吗? 一加手机好不好用?想买信号好的手机,选一加9怎么样? 一加9手机值得买吗?最近手机摔了想换 一加9值得买吗?有没有买过的来说说,这手机用着流畅吗? 一加9手机用着怎么样啊?需不需要提前买膜啊? 一加9R为什么不建议买 一加9系列手机发布,值得购买吗? 苹果mini2上的爱奇艺如何设置青年 设置? 怎么查看平板苹果平板的爱奇艺登录记录 北京最好的英语口语一对一 北京最好的英语口语一对一 北京有培训三一口语成人培训机构吗? 北京有培训三一口语成人培训机构吗? 北京成人英语培训班 想利用暑假补习下英语,请问北京*口语培训班哪所学校比较好? 简爱观后感500字 速度 高利贷借条范本怎么写 500字的《简·爱》读后感 简爱的观后感 简爱观后感 简爱的观后感? 简爱观后感一千五百字 红米手机发不出声音怎么回事? 求最方便的PPT转化为PDF的方法,顺便可以加密的,急 如何解密PPT转成的PDF文件,安全性方法为口令安全性,加密级别为128-bit RC4 点击抖音里面的加号会出现这个画面,为什么影集旁边没有直播功能啊 慢性肾功能不全可以吃香菇和银耳吗 吃香菇有那些禁忌 肾功能不全排骨香菇汤可以吃吗? “萱”字的意思是什么? 香菇的做法不能和什么一起吃 肾功能不全不宜食用含钾高的食物有哪些 苹果手机怎么设置微信账号不能自启 萱这个字在古代什么意思? 团队精神对企业有什么意义