【问题标题】:Populating database via jdbc通过 jdbc 填充数据库
【发布时间】:2010-11-08 09:57:31
【问题描述】:

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

我该怎么做?

【问题讨论】:

  • 您希望从文件中读取值执行多少次查询?
  • 我正在读取一个文件,然后写“line =br.readLine();”而 while (line!= null) { .....上面的代码行,然后是 s.executeupdate(query)....在我的文件中,有很多数据行。因此,无论我的文件正在读取什么,我都会将其保留在行中。

标签: java mysql jdbc


【解决方案1】:

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

编辑:

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

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

这应该就是你所需要的。

【讨论】:

  • 我不知道我们将如何使用这个命令。 MY 数据为 CSV 文件格式。
  • 如果是逗号分隔,可以在执行语句时指定分隔符。这是使用该语法的一个好处。碰巧,这与任何家庭作业有关吗?
  • 好的,现在这有点改变了。考虑到这是基于家庭作业的,我不想为你做所有的工作。但是,我可以在您的任务指导范围内为您提供帮助。你能发布你的整个代码(包括line = br.readLine())并告诉我你迷路了吗?我们可以从那里开始。
  • 先生,....请尝试帮助我...我编写了整个代码并已编译。但它没有执行。我不能在这里发布我的代码,但我可以发送给你您的电子邮件帐户。我的电子邮件 ID 是:shib.shilpa@gmail.com..plz send urs .
  • @Anthony - 不要在这家伙身上浪费太多时间。他有一段历史……委婉地说。查看他过去的一些问题。
【解决方案2】:
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.
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 2020-11-28
    • 2016-01-21
    相关资源
    最近更新 更多