一个简单的从txt文件中读取数据插入数据库

本文详细介绍了如何使用Java从txt文件读取数据,并将其插入到MySQL数据库中。首先创建Dynamic Web Project,然后通过FileInputStream和BufferedReader读取文件内容,再建立数据库连接,使用PreparedStatement执行SQL插入数据。文中还展示了数据库连接、Statement的使用以及结果处理的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一: 首先我们应该先·建一个Dynamic web project 工程。

二: 定义一个读文件操作 package com.what.files;
在这里我们要用到用于读取本地文件中的字节数据的FileInputStream,FileInputStream继承了InputStream。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal;


public class ReadFile {


public static void readTxtFile(String filePath){

InfoBean infoBean = new InfoBean();

try {
String encoding = "utf-8";
File file = new File("D:\\数据.txt");
if(file.isFile() && file.exists()){//判断该文件是否存在
InputStreamReader read = new InputStreamReader(new FileInputStream(file) , encoding);
BufferedReader buffereReader = new BufferedReader(read);
String lineTxt = null;
OperationDB operationDB = new OperationDB();
lineTxt = buffereReader.readLine();
while((lineTxt = buffereReader.readLine()) != null){
String[] s = lineTxt.split("\\|");
infoBean.setSeqNo(new BigDecimal(s[0]));
                //(s[0].toString());
                infoBean.setBillNo(s[1].toString());
                infoBean.setPolicyNo(s[2].toString());
                infoBean.setCertiNo(s[3].toString());         
                infoBean.setAmount(new BigDecimal(s[4]));
                operationDB.addRcorder(infoBean);
                System.out.println(lineTxt);
}
read.close();
} else {
            System.out.println("找不到指定的文件");
        }
    } catch (Exception e) {
        System.out.println("读取文件内容出错");
        e.printStackTrace();
    }
}
}


三:写一个链接数据库的类

创建jdbc数据库的一般步骤为:

@1.注册驱动(加载驱动,此次加载只做一次),在链接数据库之前首先要加载链接数据库的驱动JVM(即java虚拟机)

通过Java.lang.Class中的forName(String ClassName)方法实现.

如:【

try{

Class.forName("com.mySql.jdbc.Driver");

}catch(ClassNotFoundException e){

System.out.println("加载失败,找不到驱动程序");

e.printStackTrace();

}

@2.提供链接数据库jdbc的URL

链接URL定义了连接数据库时的协议,子协议,数据源标识。

格式:协议,子协议,数据源标识。

协议:以jdbc开始。

子协议:是桥连接的数据库程序或数据库管理系统的名称

数据源标识:标记找到数据库来源的地址与链接端口;

如:
jdbc : mySql;

Spring Batch是一个强大的批处理框架,它允许你在Java应用程序中组织、调度和监控复杂的批量操作。当你需要从TXT文件读取数据并将其插入数据库时,可以按照以下步骤操作: 1. **配置读取器(Reader)**: 使用`FlatFileItemReader`或自定义的`LineMapper`来读取TXT文件。例如,如果你的数据每行代表一条记录,你可以使用`LineMapper`将文本行映射成批处理任务需要的实体。 ```java @Bean public ItemReader<MyEntity> txtFileReader() { FlatFileItemReader<MyEntity> reader = new FlatFileItemReader<>(); reader.set资源(new ClassPathResource("data.txt")); reader.setName("txtFileReader"); reader.setLineMapper(new DefaultLineMapper<>()); // 配置解析规则,如分隔符、头行处理等 return reader; } ``` 2. **构建处理器(Processor)**: 创建一个处理器,这个处理器通常会对读取到的每个元素进行一些业务处理,然后将其传递给下一个阶段。 ```java @Bean public ItemProcessor<MyEntity, MyProcessedEntity> processor() { // 实现ItemProcessor接口,对MyEntity做处理 return new MyProcessor(); } ``` 3. **配置分路器(Splitter)和聚合器(Aggregator)**: 如果你需要对数据进行拆分或聚合,可以添加适当的分路器和聚合器。默认情况下,Spring Batch直接读取整个列表。 4. **数据库(Writer)**: 使用JDBC模板或Spring Data JPA等技术将处理后的数据插入数据库。 ```java @Bean public ItemWriter<MyProcessedEntity> dbWriter(JdbcTemplate jdbcTemplate) { return new JdbcBatchItemWriter<>(jdbcTemplate); } ``` 5. **创建Job和Step**: 最后,配置Job包含步骤,并将上述组件连接起来。使用`JobBuilderFactory`和`StepBuilderFactory`创建步骤和Job。 ```java @Bean public Job job(JobBuilderFactory jobs, StepBuilderFactory steps) { return jobs.get("myJob") .incrementer(new RunIdIncrementer()) .flow(step1()) .end() .build(); } @Bean public Step step1() { return steps.get("step1") .<MyEntity, MyProcessedEntity>chunk(10) .reader(txtFileReader()) .processor(processor()) .writer(dbWriter()) .build(); } ``` 6. **启动和调度Job**: 在Spring Boot应用中,你可以使用`@EnableBatchProcessing`注解启用批处理功能,并通过`@Autowired`注入JobLauncher启动Job。 记得在项目开始之前设置好数据库连接信息,并确保所有依赖已正确配置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值