Пример использования объекта JDBC PreparedStatement — создание записи

В некоторых случаях для выполнения запросов к реляционной базе данных удобнее использовать объект типа PreparedStatement, который отличается от более общих объектов типа Statement. В частности, если требуется выполнить несколько однотипных запросов, то использование PreparedStatement потребует меньше времени, чем в случае со Statement. Это связано с тем, что в момент обращения к базе данных он содержит в себе не просто SQL запрос, а запрос, для которого выполнена прекомпиляция. Таким образом, СУБД не требуется выполнять эту операцию перед выполнением запроса и время его исполнения уменьшается.

В этом примере мы будем вставлять записи в таблицу. Поскольку операция вставки данных является частным случаем более общей операции обновления данных в базе данных, то для этой цели используется метод PreparedStatement.executeUpdate().

package ru.j4web.examples.java.jdbc.jdbcpreparedstatementinsertexample;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class JDBCPreparedStatementInsertExample {

    private static final String DB_URL = "jdbc:mysql://dev-server/sampledb"
            + "?user=sampleuser&password=samplepassword";
    private static final String SQL_STATEMENT = "REPLACE INTO users "
            + "(username, created_by, creation_date) VALUES (?, ?, ?)";

    public static void main(String[] args) {
        
        try (Connection connection = DriverManager.getConnection(DB_URL);
                PreparedStatement preparedStatement
                = connection.prepareStatement(SQL_STATEMENT)) {
            
            for(int i = 1; i <= 10; i++) {
                
                // Заполняем запрос данными
                preparedStatement.setString(1, "user_" + i);
                preparedStatement.setString(2, "j4web");
                preparedStatement.setDate(3,
                        new Date(new java.util.Date().getTime()));
                
                // Выполняем подготовленный запрос
                preparedStatement.executeUpdate();
            }
            
            System.out.println("Создано 10 пользователей");
            
        } catch (SQLException ex) {
            Logger.getLogger(JDBCPreparedStatementInsertExample.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }
}
--- exec-maven-plugin:1.2.1:exec (default-cli) @ JDBCPreparedStatementInsertExample ---
Создано 10 пользователей
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*