2
2
3
3
import java .sql .SQLException ;
4
4
import java .sql .Statement ;
5
+ import java .sql .Timestamp ;
6
+ import java .time .LocalDateTime ;
5
7
import java .util .ArrayList ;
6
8
import java .util .List ;
7
9
import java .util .Optional ;
10
12
11
13
public class CarRepository extends BaseRepository {
12
14
public static void save (Car car ) throws SQLException {
13
- var sql = "INSERT INTO cars (make, model) VALUES (?, ?)" ;
15
+ var sql = "INSERT INTO cars (make, model, created_at ) VALUES (?, ?, ?)" ;
14
16
try (var conn = dataSource .getConnection ();
15
17
var preparedStatement = conn .prepareStatement (sql , Statement .RETURN_GENERATED_KEYS )) {
16
18
preparedStatement .setString (1 , car .getMake ());
17
19
preparedStatement .setString (2 , car .getModel ());
20
+ var createdAt = LocalDateTime .now ();
21
+ preparedStatement .setTimestamp (3 , Timestamp .valueOf (createdAt ));
22
+
18
23
preparedStatement .executeUpdate ();
19
24
var generatedKeys = preparedStatement .getGeneratedKeys ();
20
25
if (generatedKeys .next ()) {
21
26
car .setId (generatedKeys .getLong (1 ));
27
+ car .setCreatedAt (createdAt );
28
+
22
29
} else {
23
30
throw new SQLException ("DB have not returned an id after saving an entity" );
24
31
}
@@ -34,8 +41,11 @@ public static Optional<Car> find(Long id) throws SQLException {
34
41
if (resultSet .next ()) {
35
42
var make = resultSet .getString ("make" );
36
43
var model = resultSet .getString ("model" );
44
+ var createdAt = resultSet .getTimestamp ("created_at" ).toLocalDateTime ();
45
+
37
46
var car = new Car (make , model );
38
47
car .setId (id );
48
+ car .setCreatedAt (createdAt );
39
49
return Optional .of (car );
40
50
}
41
51
return Optional .empty ();
@@ -52,8 +62,11 @@ public static List<Car> getEntities() throws SQLException {
52
62
var id = resultSet .getLong ("id" );
53
63
var make = resultSet .getString ("make" );
54
64
var model = resultSet .getString ("model" );
65
+ var createdAt = resultSet .getTimestamp ("created_at" ).toLocalDateTime ();
66
+
55
67
var car = new Car (make , model );
56
68
car .setId (id );
69
+ car .setCreatedAt (createdAt );
57
70
result .add (car );
58
71
}
59
72
return result ;
0 commit comments