java 读取excel第一列数据库_java 读取excel文件到数据库

首先 引入所需jar包 jxl.jar 注意一点的是jxl只支持excel2003的.xls文件

代码如下:

package com.xlsx.jenna;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.PreparedStatement;

import jxl.Cell;

import jxl.Sheet;

import jxl.Workbook;

public class ReadXlsx {

private PreparedStatement ps;

private Connection conn;

private BaseOperate baseOperate = new BaseOperate();

public ReadXlsx(){

conn = baseOperate.getConn();

}

public void read(){

String path = "D:temp/test.xls";

try {

InputStream is = new FileInputStream(new File(path));

Workbook wb = Workbook.getWorkbook(is);

//取得第0个sheet

Sheet sheet = wb.getSheet(0);

//取得所有列

int columns = sheet.getColumns();

//取得所有行

int rows = sheet.getRows();

String sql = "insert into dateTO (name,age,sex,descri) values (?,?,?,?)";

ps = conn.prepareStatement(sql);

for(int i = 1; i < rows; i ++){

//取得第i行的所有单元格

Cell[] cell = sheet.getRow(i);

int j = 0;

//取得第J个单元格的内容

String name = cell[j].getContents();

j ++;

ps.setString(j, name);

int age = Integer.parseInt(cell[j].getContents());

j ++;

ps.setInt(j, age);

String sex = cell[j].getContents();

j ++;

ps.setString(j, sex);

String descri = cell[j].getContents();

ps.setString(j+1, descri);

ps.execute();

}

System.out.println("数据插入成功");

}catch(Exception e){

System.out.println("数据插入异常,请重试");

e.printStackTrace();

}

}

public static void main(String[] args) {

ReadXlsx rx = new ReadXlsx();

rx.read();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个相对较复杂的问题,需要分几个步骤来实现。 1. 使用Java读取Excel文件 可以使用Apache POI这个库来读取Excel文件,具体实现如下: ```java FileInputStream inputStream = new FileInputStream(new File("path/to/excel/file.xlsx")); Workbook workbook = new XSSFWorkbook(inputStream); Sheet sheet = workbook.getSheetAt(0); //获取第一个工作表 for (Row row : sheet) { //遍历每一行 for (Cell cell : row) { //遍历每一个单元格 String cellValue = cell.getStringCellValue(); //将cellValue添加到对应的数据结构中 } } workbook.close(); inputStream.close(); ``` 2. 异步导入数据库 可以使用Java中的ExecutorService来实现异步操作,具体实现如下: ```java ExecutorService executorService = Executors.newFixedThreadPool(10); //创建一个线程池,最多有10个线程同时执行任务 for (Object data : dataList) { executorService.submit(() -> { //将数据异步导入数据库中 }); } executorService.shutdown(); //关闭线程池 ``` 3. 自动生成代码 可以使用MyBatis Generator这个工具来自动生成代码,具体实现如下: 1. 编写一个XML文件,描述数据库中的表结构和生成的Java类的属性、方法等信息。 2. 编写一个Java类,调用MyBatis Generator提供的API来生成代码。 这里给出一个简单的XML文件示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <context id="mysql" targetRuntime="MyBatis3"> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test" userId="root" password=""> </jdbcConnection> <javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/resources"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <table tableName="student" domainObjectName="Student"/> </context> </generatorConfiguration> ``` 然后编写一个Java类,调用MyBatis Generator提供的API来生成代码: ```java List<String> warnings = new ArrayList<>(); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(new File("path/to/mybatis/generator.xml")); DefaultShellCallback callback = new DefaultShellCallback(true); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); ``` 以上就是实现Java读取Excel文件并异步导入数据库生成代码的大致流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值