Java 如何从文本文件导入表中的值
我正在制作一个程序,从txt文件中读取数据,并将它们存储在mysql的表中。在我的程序开始时,将创建包含所有字段的表(ID、名称、文本、价格、日期、升) 代码如上所示:Java 如何从文本文件导入表中的值,java,jdbc,Java,Jdbc,我正在制作一个程序,从txt文件中读取数据,并将它们存储在mysql的表中。在我的程序开始时,将创建包含所有字段的表(ID、名称、文本、价格、日期、升) 代码如上所示: private static String getCreateTable1(Connection con, String tablename) { try { Class.forName("com.mysql.jdbc.Driver"); Statement stmt = con.createStatement
private static String getCreateTable1(Connection con, String tablename) {
try {
Class.forName("com.mysql.jdbc.Driver");
Statement stmt = con.createStatement();
String createtable = "CREATE TABLE " + tablename
+ " ( ID INT, name VARCHAR(255), text VARCHAR(255), price INT , date DATE, litres DECIMAL (20,8) )";
System.out.println("Create a new table in the database");
stmt.executeUpdate(createtable);
} catch (Exception e) {
System.out.println(((SQLException) e).getSQLState());
System.out.println(e.getMessage());
e.printStackTrace();
}
return null;
}
我必须解决的问题是,文本文件中的数据如图所示:
ID在第三行,名称在第五行,然后有一行包含不会存储在某处的数据,一行之后有四列数据。第一个是“价格”后面的“文本”,第二个是“日期”,最后是“升”
例如,我如何使其读取第三行并仅获取ID的值并将其存储在ID字段中?有人能帮我吗?首先,您的数据最好采用XML格式,然后使用XML解析器可以很好地读取数据并将其转换为对象 我猜您甚至还没有创建一个对象来加载数据,所以让我来帮助您:
public class MyDataObject {
int id;
String name;
DataTable table;
private class DataTable {
String col1;
int col2;
Date date;
int col3;
int col4;
DataTable(...) {
...
}
}
}
现在,在阅读文本文件之后(猜测您也不知道这一点,所以这里有另一个用于代码库的实用方法:)
您需要在代码库中使用实用程序方法将XML字符串解析为文档:
public static Document loadXMLFromString(String xml) throws Exception
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(xml));
return builder.parse(is);
}
剩下的最后一件事是将XML数据映射到数据对象(MyDataObject)
为此,请参见
您可能需要编译对象的列表/阵列列表,然后可以在其中循环并轻松访问数据。您可以在SQL命令中直接从CSV文件导入数据。看
您还可以从java中的CSV中读取数据,然后将其存储到数据库中,请参见将日期存储为varchars??嗯,我不知道有哪个SQL引擎没有原生日期类型;这只是一张表格的样本。你是对的,但问题的目的不是这个。
public static Document loadXMLFromString(String xml) throws Exception
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(xml));
return builder.parse(is);
}