Merge pull request #10807 from mladensavic94/master
insert null into Integer column using JDBC
This commit is contained in:
commit
425e63a6e8
|
@ -0,0 +1,26 @@
|
||||||
|
package com.baeldung.insertnull;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
|
||||||
|
public class DBConfig {
|
||||||
|
|
||||||
|
private static Connection INSTANCE;
|
||||||
|
|
||||||
|
public static Connection getConnection() throws SQLException {
|
||||||
|
if (INSTANCE == null) {
|
||||||
|
INSTANCE = DriverManager.getConnection("jdbc:h2:mem:insertnull", "user", "password");
|
||||||
|
createPersonTable();
|
||||||
|
}
|
||||||
|
return INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void createPersonTable() throws SQLException {
|
||||||
|
try(Statement statement = INSTANCE.createStatement()) {
|
||||||
|
String sql = "CREATE TABLE Person (id INTEGER not null, name VARCHAR(50), lastName VARCHAR(50), age INTEGER, PRIMARY KEY (id))";
|
||||||
|
statement.executeUpdate(sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package com.baeldung.insertnull;
|
||||||
|
|
||||||
|
public class Person {
|
||||||
|
|
||||||
|
private Integer id;
|
||||||
|
private String name;
|
||||||
|
private String lastName;
|
||||||
|
private Integer age;
|
||||||
|
|
||||||
|
public Person(Integer id, String name, String lastName, Integer age) {
|
||||||
|
this.id = id;
|
||||||
|
this.name = name;
|
||||||
|
this.lastName = lastName;
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Integer id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastName() {
|
||||||
|
return lastName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastName(String lastName) {
|
||||||
|
this.lastName = lastName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getAge() {
|
||||||
|
return age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAge(Integer age) {
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
package com.baeldung.insertnull;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Types;
|
||||||
|
|
||||||
|
import static org.hamcrest.CoreMatchers.equalTo;
|
||||||
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
|
||||||
|
public class InsertNullUnitTest {
|
||||||
|
|
||||||
|
private final String SQL = "INSERT INTO Person VALUES(?,?,?,?)";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenNewPerson_whenSetNullIsUsed_thenNewRecordIsCreated() throws SQLException {
|
||||||
|
Person person = new Person(1, "John", "Doe", null);
|
||||||
|
|
||||||
|
try (PreparedStatement preparedStatement = DBConfig.getConnection().prepareStatement(SQL)) {
|
||||||
|
preparedStatement.setInt(1, person.getId());
|
||||||
|
preparedStatement.setString(2, person.getName());
|
||||||
|
preparedStatement.setString(3, person.getLastName());
|
||||||
|
if (person.getAge() == null) {
|
||||||
|
preparedStatement.setNull(4, Types.INTEGER);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
preparedStatement.setInt(4, person.getAge());
|
||||||
|
}
|
||||||
|
int noOfRows = preparedStatement.executeUpdate();
|
||||||
|
|
||||||
|
assertThat(noOfRows, equalTo(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenNewPerson_whenSetObjectIsUsed_thenNewRecordIsCreated() throws SQLException {
|
||||||
|
Person person = new Person(2, "John", "Doe", null);
|
||||||
|
|
||||||
|
try (PreparedStatement preparedStatement = DBConfig.getConnection().prepareStatement(SQL)) {
|
||||||
|
preparedStatement.setInt(1, person.getId());
|
||||||
|
preparedStatement.setString(2, person.getName());
|
||||||
|
preparedStatement.setString(3, person.getLastName());
|
||||||
|
preparedStatement.setObject(4, person.getAge(), Types.INTEGER);
|
||||||
|
int noOfRows = preparedStatement.executeUpdate();
|
||||||
|
|
||||||
|
assertThat(noOfRows, equalTo(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue