使用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.XMLSerializer;
    public class test {
static public  void save() throws SQLException {
 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jeecg-boot", "root", "Abc!123D");
  //连接个人数据库
    try {
        FileReader file = new FileReader("localpath"); //要转换的文件的所在路径,filereader读取文件内容
       String sql = "insert into food(category,name,uid,source,company,charact,pronductionshow,area,website) values(?,?,?,?,?,?,?,?,?)";//存入数据库的SQL语句在执行的时候一定要用prepareStatement 。  需要执行的sql语句。
       PreparedStatement statement = conn.prepareStatement(sql);
        String s;
        s = new String(IOUtils.toByteArray(file,Charset.defaultCharset()));//toByteArray就是就一个字节流转换为一个 byte数组,IOUtils.toByteArray需要用到  org.apache.commons.io.IOUtils包,jar包需要从外部导入,若无jar包 可从网上下载。

        String regex ="}";//设置匹配字段。ps:因为我的文档里是json格式数据,所以用}来设置匹配字段,具体字段应该根据文档内的内容自行进行判断。
        String[] split=s.split(regex);//split() 方法用于把一个字符串分割成字符串数组。
        System.out.print(split.length);
        int i=0;
       List< Map <String,String>> map= new ArrayList<Map<String, String>>() ;
        for(String temp:split){
            temp+="}";
            System.out.print(""+(i++)+ JSONObject.parseObject(temp, Map.class));//使用JSONObject.parseObject(json, 类名.class)进行json数据的解析,
            map.add(JSONObject.parseObject(temp, Map.class));
            System.out.print("\n");
            System.out.print( map.get(0));
            System.out.print("\n");
            System.out.print(temp);
            System.out.print("\n");
        }
        for (Map<String,String> employee: map)
        {     statement.setString(1, employee.get("分类名称"));//对sql语句中的value赋值,数字是第几个value内的?,后面是赋给的值
            statement.setString(2, employee.get("品种名称"));
            statement.setString(3, employee.get("国家级审定编号"));
            statement.setString(4, employee.get("品种来源"));
            statement.setString(5, employee.get("选育单位"));
            statement.setString(6, employee.get("特征特性"));
            statement.setString(7, employee.get("产量表现"));
            statement.setString(8, employee.get("适应区域"));
            statement.setString(9, employee.get("网站"));
            statement.addBatch();
        }
        statement.executeBatch();
        statement.close();
        conn.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();} catch (IOException e) {
        e.printStackTrace();
    }
}
    public static void main(String[] args) {
        try {
            save();
        } catch (SQLException e) {
            e.printStackTrace();
        }

}}

filereader的作用与例子

在这里插入图片描述
在这里插入图片描述
**

JSON数据解析

**
在这里插入图片描述

split作用与例子

在这里插入图片描述
在这里插入图片描述
该程序导入的jar包
本人导入的jar包

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用以下步骤快速将文本文件的内容插入到数据库: 1. 首先需要连接数据库。如果你使用的是 MySQL 数据库,可以使用 JDBC 连接。你需要下载 MySQL Connector/J 驱动程序,并在代码引入该驱动程序。 2. 创建一个表格,用于存储文本文件的内容。你可以按照自己的需要创建表格,但是至少需要包含一个文本字段,用于存储文本内容。 3. 使用 Java 读取文本文件的内容。你可以使用 BufferedReader 类来读取文件。使用 readLine() 方法可以一次读取一行文本。 4. 将读取到的文本内容插入到数据库。你可以使用 PreparedStatement 类来执行 SQL 语句。使用 setString() 方法可以将文本内容插入到 SQL 语句。 以下是一个简单的示例代码: ```java import java.io.BufferedReader; import java.io.FileReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; public class InsertTextFileToDatabase { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "root"; String password = "password"; String filePath = "textfile.txt"; try (Connection conn = DriverManager.getConnection(url, username, password); BufferedReader br = new BufferedReader(new FileReader(filePath))) { String line; String sql = "INSERT INTO textfiles (content) VALUES (?)"; PreparedStatement pstmt = conn.prepareStatement(sql); while ((line = br.readLine()) != null) { pstmt.setString(1, line); pstmt.executeUpdate(); } System.out.println("Text file inserted to database."); } catch (Exception ex) { ex.printStackTrace(); } } } ``` 在这个例子,我们首先连接到了名为 "mydatabase" 的 MySQL 数据库。我们创建了一个名为 "textfiles" 的表格,其包含一个名为 "content" 的字段,用于存储文本内容。 我们使用 BufferedReader 类读取名为 "textfile.txt" 的文本文件的内容。我们使用 PreparedStatement 类执行 SQL 语句,将文本内容插入到 "textfiles" 表格的 "content" 字段。 最后,我们输出一条消息,表示文本文件已经插入到数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值