用java实现从文本文件批量导入数据至数据库

java把文本文件内容导入到数据库 在生产企业中,会涉及到许多诸如把外部文件内容导入到数据库。本资源采用java程序开发,文本文件内容里的字段用“,”分开(如果是其他标识符,相应修改一下就行了),方便快捷。 立即下载
1、将数据按一定规律录入到一个文本文件,每一行代表一条记录。 

下面是数据库建表SQL: 
CREATE TABLE t_FltPsgInfo  -- 航班乘客信息 

( 

    FltNum  VARCHAR(10), -- 航班号 

    FltLine  VARCHAR(30),  -- 航线 

    FltDate  VARCHAR(10),  -- 日期 

    PsgName  VARCHAR(30),  -- 姓名 

    PsgType  VARCHAR(30), -- 乘客类型,数字表示,目前是1-13 

    PsgSex  VARCHAR(1),  -- 0 男  1 女 

    PsgCab  VARCHAR(1),  -- 几等舱, F/Y  舱位按字母顺序排列 

    PsgSeatNo  VARCHAR(5),-- 座位号 2A,22F,根据这个得到一排有多少个座位,共有多少排座位信息 

    PsgInfo  VARCHAR(2048) -- 详细信息,可能很长 

) 

我们将向表t_FltPsgInfo中插入1000条记录。 

新建一个文本文件,每一行代表一条记录,如: 

HU7804,广州-北京,2007-07-18,谢丽珍,3,1,C,3A,服务保障信息:未用餐随行人员… 

其中以“,”作为字段的分隔标志,我们在解析这个文本文件时将根据“,”来拆分字段值。 

按照上面的格式,将要插入的数据输入到文本文件中,注意,是每一行代表一条记录,或者你已有从数据库导出的文本文件,那你就只需找到文件的规律,稍作调整就行了。 

2、编写Java源码 

1》数据库操作类InsertDB.java 

package test; 

import java.sql.Connection; 

import java.sql.DriverManager; 

import java.sql.ResultSet; 

import java.sql.Statement; 

public class InsertDB { 

    private static final String user = "sa"; 

    private static final String pwd = "sa"; 

    private static final String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=hhfly"; 

    private static final String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; 

    public static Connection getCon() { 

        Connection con = null; 

        try { 

            Class.forName(driver).newInstance(); 

            con = DriverManager.getConnection(url, user, pwd); 

            if (con != null) { 

                System.out.println("你已连接到数据库:" + con.getCatalog()); 

            } 

        } catch (Exception e) { 

            System.out.println("连接数据库失败!"); 

            e.printStackTrace(); 

        } 

        return con; 

    } 

    public boolean insertDB(String FltNum, String FltLine, String FltDate, 

            String PsgName, String PsgType, String PsgSex, String PsgCab, 

            String PsgSeatNo, String PsgInfo) { 

        Connection con = null; 

        Statement stm = null; 

        boolean flag = false; 

        String sql = "insert into t_FltPsgInfo values('" + FltNum + "','" 

                + FltLine + "','" + FltDate + "','" + PsgName + "','" + PsgType 

                + "','" + PsgSex + "','" + PsgCab + "','" + PsgSeatNo + "','" 

                + PsgInfo + "')"; 

        try { 

            con = getCon(); 

            stm = con.createStatement(); 

            int i = stm.executeUpdate(sql); 

            if (i > 0) { 

                flag = true; 

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

            } 

        } catch (Exception e) { 

            flag = false; 

            e.printStackTrace(); 

        } finally { 

            close(null, stm, con); 

        } 

        return flag; 

    } 

    //关闭相关连接 

    public void close(ResultSet rs, Statement stm, Connection con) { 

        if (rs != null) 

            try { 

                rs.close(); 

            } catch (Exception e) { 

                e.printStackTrace(); 

            } 

        if (stm != null) 

            try { 

                stm.close(); 

            } catch (Exception e) { 

                e.printStackTrace(); 

            } 

        if (con != null) 

            try { 

                con.close(); 

            } catch (Exception e) { 

                e.printStackTrace(); 

            } 

    } 

} 




2》数据采集类DataGather.java 

package test; 

import java.io.RandomAccessFile; 

import java.io.UnsupportedEncodingException; 

public class DataGather { 

    private static final String path = "src/resource/test"; 

    public static final String openFileStyle = "r"; 

    public static final String fieldLimitChar = ","; 

    public static final int fieldAllCount = 9; 

    private int count; 

    private String FltNum; 

    private String FltLine; 

    private String FltDate; 

    private String PsgName; 

    private String PsgType; 

    private String PsgSex; 

    private String PsgCab; 

    private String PsgSeatNo; 

    private String PsgInfo; 

    /* 

     * 功能:解析文本文件 

     */ 

    public void loadFile() { 

        try { 

            RandomAccessFile raf = new RandomAccessFile(path, openFileStyle); 

            String line_record = raf.readLine(); 

            while (line_record != null) { 

                // 解析每一条记录 

                parseRecord(line_record); 

                line_record = raf.readLine(); 

            } 

            System.out.println("共有合法的记录" + count + "条"); 

        } catch (Exception e) { 

            e.printStackTrace(); 

        } 

    } 



    /* 

* 功能:具体解析每一条记录,这里可以增加很多对记录的解析判断条件,如是否为字母、 

* 数字、email等。 

     */ 

    private void parseRecord(String line_record) throws Exception { 

     //拆分记录 

        String[] fields = line_record.split(fieldLimitChar); 

        if (fields.length == fieldAllCount) { 

            FltNum = tranStr(fields[0]); 

            FltLine = tranStr(fields[1]); 

            FltDate = tranStr(fields[2]); 

            PsgName = tranStr(fields[3]); 

            PsgType = tranStr(fields[4]); 

            PsgSex = tranStr(fields[5]); 

            PsgCab = tranStr(fields[6]); 

            PsgSeatNo = tranStr(fields[7]); 

            PsgInfo = tranStr(fields[8]); 

            System.out.println(FltNum + " " + FltLine + " " + FltDate + " " 

                    + PsgName + " " + PsgType + " " + PsgSex + " " + PsgCab 

                    + " " + PsgSeatNo + " " + PsgInfo); 

            InsertDB db = new InsertDB(); 

            db.insertDB(FltNum, FltLine, FltDate, PsgName, PsgType, PsgSex, 

                    PsgCab, PsgSeatNo, PsgInfo); 

            count++; 

        } 

    } 



    private String tranStr(String oldstr) { 

        String newstr = ""; 

        try { 

            newstr = new String(oldstr.getBytes("ISO-8859-1"), "GBK"); 

        } catch (UnsupportedEncodingException e) { 

            e.printStackTrace(); 

        } 

        return newstr; 

    } 

} 




3》测试类Test.java 

package test; 



public class Test { 

    public static void main(String[] args) { 

        try { 

            DataGather gather = new DataGather (); 

            gather.loadFile(); 

        } catch (Exception e) { 

            e.printStackTrace(); 

        } 

    } 

} 
java实现文本数据读取到数据库表 将本地硬盘中的文本数据读取到mysql的数据库表中。 1. 文件保存在本地目录下,按照固定的格式保存,每一行对应着数据库中的一条记录,属性用空格隔开。 2. 创建数据库表,字段需要和文本文件的数据逐列对应。 3. 创建实体类,封装对应的属性。 4. 创建util类,对数据库的连接进行管理。 5. 编写dao层接口,定义添加数据的接口方法。 6. 编写dao层实现类,实现添加数据的方法。 7. 编写一个main方法,逐行读取数据,并调用dao层方法进行逐行的导入。 立即下载

相关推荐

用java程序把text记事本里面的数据导入到数据库里面去

这是一个用java程序编写的----把记事本里面的数据插入到数据库里面!里面是我的源代码,百分百可以实现。

java将文本读取写入数据库

核心思想: 1.找到要读取的文件。 2.通过文件流按行读取,因为一行是一条记录,按照文件的分割字符方式进行拆分数组。 3.遍历文本的行,每一行存数组。遍历数组,数据库字段对应数组下标进行插入。 代码示例 public class ShjkTest { public static void main(String[] args) { File file = new File("F:...

weixin_42740540的博客 6087

java实现读取word文件并且上传到数据库

用java语言实现对word表格操作,实现自动批量往数据库中插入数据,节省插入数据时间。

使用java从文本文档中读取数据存入数据库中

代码如下: import com.alibaba.fastjson.JSONObject; import org.apache.commons.io.IOUtils; import java.io.*; import java.nio.charset.Charset; import java.sql.*; import java.util.*; import java.util.regex.*; import net.sf.json.JSON; import net.sf.json.xml.XMLSeria

platfarm的博客 2473

java导入txt到数据库 从数据库导出txt

里面没包 只有几个主要的类。。。 主要是怕以后忘记,先保存下来而以 java导入txt到数据库 从数据库导出txt

基于知识图谱的旅游推荐系统

这一系统整合了当今先进的数据技术:采集携程等大型平台的景点数据,通过爬虫技术源源不断地获取最新的旅游信息。此外,我们采用Neo4j图数据库来存储和处理这些数据,结合自然语言处理技术,为你提供精准的旅游建议。:通过直观的知识图谱展示,了解各个景点之间微妙的联系,无论是文化背景还是地理方位,你都能从中发现新的旅行灵感。准备毕业设计的同学,关注我们,这是一个集成了多种前沿技术的项目,为你的学术成果锦上添花。:不再浪费时间,系统根据你的偏好和历史评分,利用协同过滤技术推荐适合的旅游目的地。

qalangtao的博客-qalangtao.com 774

mysql中如何读取txt文件内容_读取文本文件中的内容存到数据库该怎么实现

展开全部不知道你要什么样的文本,文本中的内容是否是有格式的:这里提供下思路,供参考:1.文本文件,62616964757a686964616fe59b9ee7ad9431333363376432基本上式字符格式的了,可以用Readerio流2.如果是格式化的文本,可以按数据的长度读取,readIntreadByte...3.保存到数据库当然用JDBC了,如果你读取出来封装成POJO...

weixin_35408656的博客 1846

告别校准烦恼:用ADS1220和松下ERA3电阻实现±0.05℃精度的Pt100测温方案(附完整电路图)

本文详细介绍了如何利用TI的ADS1220 24位ΔΣ ADC与松下ERA3系列精密电阻构建±0.05℃精度的免校准Pt100测温系统。通过比例测量法架构和关键器件选型,解决了传统方案中的校准繁琐和长期稳定性问题,特别适用于工业控制、医疗设备等高精度温度测量场景。

weixin_30740581的博客 613

java批量执行之分批处理

相关: 在处理一些与数据库相关的操作的时候,通常把一些操作合并能够起到优化的效果,并且数量越大,批量执行的效率比一条一条执行的效率要快的多。 批量插入比单次插入快 比如有十条数据单条执行需要操作十次数据库,批量的话执行一次数据库的操作就可以。 对应的sql语句: 单次:INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....); I...

Mint6的博客 5423

microduck复刻实战:强化学习机器人从仿真训练到真机部署全攻略

强化学习是智能体通过与环境交互试错来学习最优策略的机器学习范式,在机器人控制领域,常借助物理仿真环境进行策略训练,以降低真实世界的试错成本。其核心原理是通过奖励信号引导策略网络迭代优化,PPO等算法则在稳定性和样本效率之间取得平衡。仿真训练的价值在于可批量验证控制策略,但仿真与真实硬件之间存在物理参数偏差,需通过域随机化等技术实现迁移。从四足机器人到仿生机器人,这类方案广泛应用于复杂运动控制任务。microduck作为一个典型的强化学习机器人项目,其复刻过程涉及环境搭建、奖励设计、PPO调参及Sim-to-

weixin_29061425的博客 361

pynq-z2 HLS开发

定制Overlay一.用HLS生成一个定制IP功啊啊是合理的创建标题,有助于目录的生成如何改变是式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 一.用HLS生成一个定制IP ...

qq_38769280的博客 4156

java中word导入数据库

java中word导入数据库 前言 > word导入到数据库主要是对word的解析,word分为2003版、2007版以上,还有xml格式的,2003和2007以上的主要是对单元格内容进行判断,进行获取;而xml格式的主要是对标签进行解析,根据标签去内容,进行判断;下面三种的解析方法都有: 1.直接附代码了 //导入word @RequestMapping("/wordImp...

jia814583973的博客 5287

【AI Infra】【RLHF框架】VeRL中WorkerGroup与Ray资源调度的协同机制剖析

本文深入剖析了VeRL框架中WorkerGroup与Ray资源调度的协同机制。通过解析Ray Placement Group的资源抽象和VeRL的RayResourcePool封装,详细阐述了WorkerGroup如何与底层资源精确绑定,并实现RLHF训练中异构、多阶段任务的灵活资源分配与动态调整,为大规模分布式强化学习训练提供了高效解决方案。

weixin_29204205的博客 390

用java实现从txt文本文件批量导入数据至数据库

今天同事让我准备一个项目的测试数据,要向一个表中插入上千条记录,并且保证每条记录内容不同,如果用手工一条一条插入肯定是不可能,也不会有哪个SB去做这样的事,我最开始想到了用循环,但要求插入的记录内容不能相同,用循环实现比较麻烦,于是我想到了将记录从文本文件导入至数据库(其实SQLServer可利用sql语句实现导入xls或txt文件,在这就不具体说明了),写个简单的具有解析文本文件并将解析结果插入

MatinBell的博客 1万+

【花雕学编程】Arduino FOC 之AS5048A磁编码器模块

您的硬件平台、使用场景和Arduino版本可能影响使用方法的选择。在Arduino平台上实现FOC可以提供平滑的运行和高度的扭矩、速度和位置控制,它通过精确控制电机的电流和电压来实现高效率、高精度和低噪声的操作。5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。1、高性能电机控制:FOC是一种高级的电机控制算法,可以精准控制PMSM(永磁同步电机)和BLDC(无刷直流)电机,实现平滑的转速和扭矩输出。

雕爷学编程 1496

基于Simulink的四足机器人楼梯攀爬仿真模型

构建一个基于Simulink的四足机器人楼梯攀爬仿真模型,旨在模拟四足机器人在面对楼梯等障碍时的运动控制和稳定性调整。以下是一个详细的步骤指南,帮助你从零开始创建这样一个仿真模型。

xiaoheshang_123的博客 247

java读取文本文件到mysql数据库【示例3】-批量导入文本文件

1、需求:批量导入文件夹“手机号码归属地”下的所有文本文件,如图: 2、java源代码: package com.insigma.zd.group4.liuchao.jdbc; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.Fi

keep calm and carry on 4640

Claude Code 官方文档+3 个高活跃社区+5 个可复用开源项目:14.4 节持续学习资源实测清单

揭示 Claude Code 的核心交互范式是「状态机驱动的对话式编程」,强调官方文档实为配置契约、社区是直觉验证场、开源项目是配置能力校准器;通过真实故障案例解析上下文丢失根源,提出以工程化方式管理 claude.config.json、CLAUDE.md 和技能配置。

weixin_28728443的博客 326

将txt数据导入数据库

用java实现从txt文本文件批量导入数据至数据库 标签: 数据库java文本文件批量导入 2017-05-07 14:11 2231人阅读 评论(3) 收藏 举报 分类: 数据库(12) 今天同事让我准备一个项目的测试数据,要向一个表中插入上千条记录,并且保证每条记录内容不同,如果用手工一条一条插入肯定是不可能,也不会有哪个SB去

独守夕阳余晖 8902

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 深入理解Java接口(一)
下一篇: java foreach 使用
Hack_Bug
博客等级 码龄15年 34粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值