Добавление переменной в базу данных с помощью JDBC - PullRequest
0 голосов
/ 05 февраля 2012

Как я могу добавить запись в свою базу данных?Боюсь, что когда я сделаю это, в базе данных будет ячейка, содержащая «veriable1», а не veriable1.Это правильно?

public class Record
{
    public Record(String veriable1, String veriable2) throws IOException, SQLException
        {
           addRecord();
        }

        private void addRecord() throws IOException, SQLException
        {   
            try
            {
                Statement stat = DataBase.Connect().createStatement();

                stat.executeUpdate("INSERT INTO tableName "
                                 + "(veriable1, veriable2) "
                                 + "VALUES "
                                 + "(veriable1, veriable2)");
            }
            finally
            {
                BazaDanych.Polacz().close();
            }   

        }

Ответы [ 2 ]

6 голосов
/ 05 февраля 2012

Вы можете (должны) использовать PreparedStatement для этого.

String SQL = "INSERT INTO tableName (variable1, variable2) VALUES (?, ?)";
Connection connection = null;
PreparedStatement statement = null;

try {
    connection = database.getConnection();
    statement = connection.prepareStatement(SQL);
    statement.setString(1, variable1);
    statement.setString(2, variable2);
    statement.executeUpdate();
} finally {
    if (statement != null) try { statement.close(); } catch (IOException ignore) {}
    if (connection != null) try { connection.close(); } catch (IOException ignore) {}
}

If предлагает преимущество, которое дает любая потенциальная SQL-инъекция атак будет исключено, в отличие от использования конкатенации строк, как предлагают другие ответы.

Также обратите внимание, что я немного переписал способ обработки ресурсов.Вышеуказанный способ является стандартной идиомой JDBC.Это гарантирует, что PreparedStatement также будет закрыт до закрытия Connection, в противном случае у вас закончатся ресурсы, когда Connection касается пула соединений.

См. Также:

0 голосов
/ 05 февраля 2012

Вы должны добавить саму переменную внутри оператора SQL, смотрите это

 stat.executeUpdate("INSERT INTO tableName "
                             + "(veriable1, veriable2) "
                             + "VALUES "
                             + "("+veriable1+", "+veriable2+")");
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...