Когда мне приходится иметь дело с MySQL DB в Java, я использую драйвер, разработанный самим MySQL. С этой библиотекой очень легко работать, но у меня вопрос о производительности. Какой метод «закрытия» я должен использовать каждый раз, когда я делаю запрос в БД?Улучшение запроса с помощью соединителя MySQL Java
Если, например, у меня есть цикл for, который делает больше вложений в БД, что я должен использовать?
private void invioInsert(String query){
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception E) {
System.err.println("Non trovo il driver da caricare.");
E.printStackTrace();
}
try {
PreparedStatement statement = conn.prepareStatement(query);
statement.execute();
statement.close();
} catch (SQLException E) {
System.out.println("SQLException: " + E.getMessage());
System.out.println("SQLState: " + E.getSQLState());
System.out.println("VendorError: " + E.getErrorCode());
}
}
Например, цикл может быть:
for(int i=0; i<=10, i++){
String query = "INSERT TABLE VALUES ("+i+")";
sendQuery(query);
}
Так что это полный код для цикла:
for (int i = 0; i < file.getList().size(); i++) {
StringTokenizer tokenizer = new StringTokenizer(file.getList().get(i).replace("\"", ""));
String ID = tokenizer.nextToken("|");
int j = 0;
while(j<5){
tokenizer.nextToken("|");
j++;
}
String voto = tokenizer.nextToken("|");
String query = "Insert RisultatiGiocatori values ('"+giornata+"','"+ID+"','"+voto+"')";
invioInsert(query);
}
Вы пытаетесь сделать подготовленные заявления или просто простую вставку? Я не могу сказать из вашего кода, потому что вы обращаетесь к обоим. –
Я вставил полный код, который я использую (так что цикл for). –