Ответ Тима Бигелайзена правильно о неправильном наборе текста SQL и о совете использовать подготовленный оператор.
Пример приложения
В поддержку своего ОтветаВот полный пример приложения.Использование H2 Database Engine вместо Derby .
package com.basilbourque.example;
import java.sql.*;
import java.util.UUID;
public class CustomerDbEx {
public static void main ( String[] args ) {
CustomerDbEx app = new CustomerDbEx();
app.doIt();
}
private void doIt ( ) {
try {
Class.forName( "org.h2.Driver" );
} catch ( ClassNotFoundException e ) {
e.printStackTrace();
}
try (
Connection conn = DriverManager.getConnection( "jdbc:h2:mem:customer_example_db;DB_CLOSE_DELAY=-1" ) ; // Set `DB_CLOSE_DELAY` to `-1` to keep in-memory database in existence after connection closes.
Statement stmt = conn.createStatement() ;
) {
String sql = "CREATE TABLE customer_ ( \n" +
" id_ UUID NOT NULL PRIMARY KEY , \n" +
" given_name_ VARCHAR NOT NULL , \n" +
" surname_ VARCHAR NOT NULL , \n" +
" address_ VARCHAR NOT NULL , \n" +
" phone_ VARCHAR NOT NULL , \n" +
" email_ VARCHAR NOT NULL \n" +
");";
stmt.execute( sql );
// Insert rows.
sql = "INSERT INTO customer_ ( id_ , given_name_ , surname_ , address_ , phone_ , email_ ) \n";
sql += "VALUES ( ? , ? , ? , ? , ? , ? ) \n";
sql += ";";
try (
PreparedStatement preparedStatement = conn.prepareStatement( sql ) ;
) {
// preparedStatement.setObject( 1 , customer.getId() );
// preparedStatement.setString( 2 , customer.getGivenName() );
// preparedStatement.setString( 3 , customer.getSurname() );
// preparedStatement.setString( 3 , customer.getAddress() );
// preparedStatement.setString( 3 , customer.getPhone() );
// preparedStatement.setString( 3 , customer.getEmail() );
// preparedStatement.executeUpdate();
preparedStatement.setObject( 1 , UUID.fromString( "ddbf2754-f9aa-4ec3-98e9-b03da4aa83d1" ) );
preparedStatement.setString( 2 , "Wendy" );
preparedStatement.setString( 3 , "Melvoin" );
preparedStatement.setString( 4 , "101 Main ST" );
preparedStatement.setString( 5 , "(525) 555-1911" );
preparedStatement.setString( 6 , "wendy@example.com" );
preparedStatement.executeUpdate();
preparedStatement.setObject( 1 , UUID.fromString( "5851c90a-f1cb-4706-a329-c54890e4d190" ) );
preparedStatement.setString( 2 , "Lisa" );
preparedStatement.setString( 3 , "Coleman" );
preparedStatement.setString( 4 , "787 Dream ST" );
preparedStatement.setString( 5 , "(525) 555-7824" );
preparedStatement.setString( 6 , "lisa@example.com" );
preparedStatement.executeUpdate();
}
// Query all.
sql = "SELECT * FROM customer_ ;";
try ( ResultSet rs = stmt.executeQuery( sql ) ; ) {
while ( rs.next() ) {
//Retrieve by column name
UUID id = rs.getObject( "id_" , UUID.class );
String givenName = rs.getString( "given_name_" );
String surname = rs.getString( "surname_" );
String address = rs.getString( "address_" );
String phone = rs.getString( "phone_" );
String email = rs.getString( "email_" );
System.out.println( "Customer: " + id + " | " + givenName + " | " + surname + " | " + address + " | " + phone + " | " + email );
// Instantiate a `Customer` object for this data.
// Customer c = new Customer( id , givenName , surname , address , phone , email );
}
}
} catch ( SQLException e ) {
e.printStackTrace();
}
}
}
При запуске.
Заказчик: ddbf2754-f9aa-4ec3-98e9-b03da4aa83d1 |Венди |Мелвоин |101 Главный ST |(525) 555-1911 |wendy@example.com
Заказчик: 5851c90a-f1cb-4706-a329-c54890e4d190 |Лиза |Коулман |787 Dream ST |(525) 555-7824 |lisa@example.com