在下面的代码中,手动插入值:13和Aman。但我正在做的是读取文件然后直到文件完成,我将其中的值插入到mysql数据库表中。
public class Main {
public static void main(String[] argv) throws Exception {
String driver = "com.mysql.jdbc.Driver";
Class.forName(driver);
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctutorial", "root", "root");
Statement st = con.createStatement();
int val = st.executeUpdate("INSERT employee VALUES(" + 13 + "," + "'Aman'" + ")");
System.out.println("1 row affected");
}
}
我试图像这样使用每一行:
String query = "INSERT INTO home (home_no, arrival_time, duration, persons, price, origin_city) VALUES("+line+");";
我该怎么做?
答案 0 :(得分:1)
根据您正在阅读的文件内容的大小,检查LOAD DATA INFILE
语法可能是值得的,而不是在for
或while
循环中执行查询。
在没有看到您的代码的情况下,line
是您正在阅读的文件的当前行,并且您使用上面的语法来存储query
,我会打破您的问题,
line
变量之前执行查询13
和Aman
所示。这应该就是你所需要的。
答案 1 :(得分:0)
BufferedReader rd = new BufferedReader(new FileReader("yourFile.txt"));
String line;
while ((line = rd.readLine()) != null)
{
// This time this loop runs, you will have the next time of your file.
insertARecord(line.split(" "));
}
rd.close();
// A bit further
public void insertARecord(String[] data)
{
// insert your record.
}