代码如下:
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包