通过jdbc填充数据库

时间:2010-11-07 04:03:48

标签: java mysql jdbc

在下面的代码中,手动插入值: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+");";

我该怎么做?

2 个答案:

答案 0 :(得分:1)

根据您正在阅读的文件内容的大小,检查LOAD DATA INFILE语法可能是值得的,而不是在forwhile循环中执行查询。

编辑:

在没有看到您的代码的情况下,line是您正在阅读的文件的当前行,并且您使用上面的语法来存储query,我会打破您的问题,

  • 检查line变量之前执行查询
  • 检查如何手动插入值,而不是阅读文件内容,如上图13Aman所示。
  • 弄清楚如何将这两者拼凑在一起,可能需要字符串操作。

这应该就是你所需要的。

答案 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.
}