Вставка записи с использованием PreparedStatement отличается тем, что значение параметров в запрос устанавливается не в момент его составления, а непосредственно перед выполнением. Вместе этого, в запрос устанавливаются маркеры, вместо которых будет установлено реальное значение. Минимально необходимый код:
String QUERY = "INSERT INTO USERS_TABLE " + "(ID, USER_NAME) VALUES " + "(?, ?)"; Connection connection = getConnection(); PreparedStatement statement = connection.prepareStatement(QUERY); statement.setInt(1, i); statement.setString(2, "user_name"); statement.executeUpdate();
Полный код:
package statements; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; public class StatementsExample { private static final String DRIVER_NAME = "org.apache.derby.jdbc.EmbeddedDriver"; private static final String CONNECTION_STRING = "jdbc:derby:derbyDB;create=true"; private static final String QUERY = "INSERT INTO USERS_TABLE " + "(ID, USER_NAME) VALUES " + "(?, ?)"; private void run() throws SQLException { Connection connection = null; PreparedStatement statement = null; try { connection = getConnection(); for (int i = 0; i < 10; i++) { statement = connection.prepareStatement(QUERY); statement.setInt(1, i); statement.setString(2, "USER_" + i); statement.executeUpdate(); System.out.println("Record inserted"); } } catch (Exception e) { e.printStackTrace(); } finally { if (statement != null) { statement.close(); } if (connection != null) { connection.close(); } } } private Connection getConnection() throws ClassNotFoundException, SQLException { Class.forName(DRIVER_NAME); Connection connection = DriverManager.getConnection(CONNECTION_STRING); return connection; } public static void main(String[] args) { StatementsExample app = new StatementsExample(); try { app.run(); } catch (SQLException e) { e.printStackTrace(); } } }
Необходимые зависимости можно получить через Apache Maven, pom.xml приведен ниже:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ru.mydesignstudio</groupId> <artifactId>statements</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.derby</groupId> <artifactId>derby</artifactId> <version>10.12.1.1</version> </dependency> </dependencies> </project>