600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java导入excel数据到mysql_java的poi技术读取Excel数据到MySQL

java导入excel数据到mysql_java的poi技术读取Excel数据到MySQL

时间:2021-12-09 06:16:08

相关推荐

java导入excel数据到mysql_java的poi技术读取Excel数据到MySQL

这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中。

你也可以在 :

项目结构:

Excel中的测试数据:

数据库结构:

对应的SQL:

1 CREATE TABLE`student_info` (

2 `id` int(11) NOT NULLAUTO_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 packagecom.b510.client;

5

6 importjava.io.IOException;

7 importjava.sql.SQLException;

8

9 importcom.b510.excel.SaveData2DB;

10

11 /**

12 * @authorHongten

13 * @created -5-18

14 */

15 public classClient {

16

17 public static void main(String[] args) throwsIOException, SQLException {

18 SaveData2DB saveData2DB = newSaveData2DB();

19 saveData2DB.save();

20 System.out.println("end");

21 }

22 }

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

1 /**

2 *

3 */

4 mon;

5

6 /**

7 * @authorHongten

8 * @created -5-18

9 */

10 public classCommon {

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 packagecom.b510.excel;

5

6 importjava.io.FileInputStream;

7 importjava.io.IOException;

8 importjava.io.InputStream;

9 importjava.util.ArrayList;

10 importjava.util.List;

11

12 importorg.apache.poi.hssf.usermodel.HSSFCell;

13 importorg.apache.poi.hssf.usermodel.HSSFRow;

14 importorg.apache.poi.hssf.usermodel.HSSFSheet;

15 importorg.apache.poi.hssf.usermodel.HSSFWorkbook;

16

17 mon;

18 importcom.b510.excel.vo.Student;

19

20 /**

21 * @authorHongten

22 * @created -5-18

23 */

24 public classReadExcel {

25

26 public List readXls() throwsIOException {

27 InputStream is = newFileInputStream(Common.EXCEL_PATH);

28 HSSFWorkbook hssfWorkbook = newHSSFWorkbook(is);

29 Student student = null;

30 List list = new ArrayList();

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 = newStudent();

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 returnlist;

55 }

56

57 @SuppressWarnings("static-access")

58 privateString getValue(HSSFCell hssfCell) {

59 if (hssfCell.getCellType() ==hssfCell.CELL_TYPE_BOOLEAN) {

60 //返回布尔类型的值

61 returnString.valueOf(hssfCell.getBooleanCellValue());

62 } else if (hssfCell.getCellType() ==hssfCell.CELL_TYPE_NUMERIC) {

63 //返回数值类型的值

64 returnString.valueOf(hssfCell.getNumericCellValue());

65 } else{

66 //返回字符串类型的值

67 returnString.valueOf(hssfCell.getStringCellValue());

68 }

69 }

70 }

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

1 /**

2 *

3 */

4 packagecom.b510.excel;

5

6 importjava.io.IOException;

7 importjava.sql.SQLException;

8 importjava.util.List;

9

10 mon;

11 importcom.b510.excel.util.DbUtil;

12 importcom.b510.excel.vo.Student;

13

14 /**

15 * @authorHongten

16 * @created -5-18

17 */

18 public classSaveData2DB {

19

20 @SuppressWarnings({ "rawtypes"})

21 public void save() throwsIOException, SQLException {

22 ReadExcel xlsMain = newReadExcel();

23 Student student = null;

24 List 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 packagecom.b510.excel.util;

5

6 importjava.sql.Connection;

7 importjava.sql.DriverManager;

8 importjava.sql.PreparedStatement;

9 importjava.sql.ResultSet;

10 importjava.sql.SQLException;

11 importjava.util.ArrayList;

12 importjava.util.List;

13

14 mon;

15 importcom.b510.excel.vo.Student;

16

17 /**

18 * @authorHongten

19 * @created -5-18

20 */

21 public classDbUtil {

22

23 /**

24 * @paramsql

25 */

26 public static void insert(String sql, Student student) throwsSQLException {

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) throwsSQLException {

55 Connection conn = null;

56 PreparedStatement ps = null;

57 ResultSet rs = null;

58 List list = newArrayList();

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 packagecom.b510.excel.vo;

5

6 /**

7 * Student

8 *

9 * @authorHongten

10 * @created -5-18

11 */

12 public classStudent {

13 /**

14 * id

15 */

16 privateInteger id;

17 /**

18 * 学号

19 */

20 privateString no;

21 /**

22 * 姓名

23 */

24 privateString name;

25 /**

26 * 学院

27 */

28 privateString age;

29 /**

30 * 成绩

31 */

32 private floatscore;

33

34 publicInteger getId() {

35 returnid;

36 }

37

38 public voidsetId(Integer id) {

39 this.id =id;

40 }

41

42 publicString getNo() {

43 returnno;

44 }

45

46 public voidsetNo(String no) {

47 this.no =no;

48 }

49

50 publicString getName() {

51 returnname;

52 }

53

54 public voidsetName(String name) {

55 this.name =name;

56 }

57

58 publicString getAge() {

59 returnage;

60 }

61

62 public voidsetAge(String age) {

63 this.age =age;

64 }

65

66 public floatgetScore() {

67 returnscore;

68 }

69

70 public void setScore(floatscore) {

71 this.score =score;

72 }

73

74 }

转载:/hongten/p/java_poi_excel.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。