Заполнение базы данных через jdbc - PullRequest
0 голосов
/ 07 ноября 2010

В приведенном ниже коде значения вводятся вручную: 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 ]

1 голос
/ 07 ноября 2010

В зависимости от размера содержимого файла, который вы читаете, стоит проверить синтаксис LOAD DATA INFILE, а не выполнять запросы в цикле for или while.

Edit:

Не видя ваш код, и line - это текущая строка файла, который вы читаете, и что вы используете синтаксис выше для хранения query, я бы разбил ваши проблемы,

  • Проверьте line переменную до для выполнения запроса
  • Проверьте, как вставить значения вручную вместо чтения содержимого файла, как вы показали выше с 13 и Aman.
  • Выясните, как соединить эти две части, может потребоваться манипулирование строками.

Это должно быть все, что вам нужно.

0 голосов
/ 07 ноября 2010
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.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...