1 package guru.mikelue.jdut.example;
2
3 import java.sql.SQLException;
4 import javax.sql.DataSource;
5
6 import guru.mikelue.jdut.jdbc.JdbcTemplateFactory;
7
8 public class ExampleDao {
9 private final DataSource dataSource;
10
11 public ExampleDao(DataSource newDataSource)
12 {
13 dataSource = newDataSource;
14 }
15
16 public int countAlbumsByType(int type) throws SQLException
17 {
18 return JdbcTemplateFactory.buildSupplier(
19 () -> dataSource.getConnection(),
20 conn -> JdbcTemplateFactory.buildSupplier(
21 () -> conn.prepareStatement(
22 " SELECT COUNT(ab_id)" +
23 " FROM ex_album" +
24 " WHERE ab_type = ?"
25 ),
26 stat -> JdbcTemplateFactory.buildSupplier(
27 () -> {
28 stat.setInt(1, type);
29 return stat.executeQuery();
30 },
31 rs -> {
32 rs.next();
33 return rs.getInt(1);
34 }
35 ).getJdbc()
36 ).getJdbc()
37 ).getJdbc();
38 }
39
40 public void addArtist(String name) throws SQLException
41 {
42 JdbcTemplateFactory.buildRunnable(
43 () -> dataSource.getConnection(),
44 conn -> JdbcTemplateFactory.buildRunnable(
45 () -> conn.prepareStatement(
46 "INSERT INTO ex_artist(at_name)" +
47 "VALUES(?)"
48 ),
49 stat -> {
50 stat.setString(1, name);
51 stat.executeUpdate();
52 }
53 ).runJdbc()
54 ).runJdbc();
55 }
56
57 public void updateArtistName(int id, String newName) throws SQLException
58 {
59 JdbcTemplateFactory.buildRunnable(
60 () -> dataSource.getConnection(),
61 conn -> JdbcTemplateFactory.buildRunnable(
62 () -> conn.prepareStatement(
63 " UPDATE ex_artist" +
64 " SET at_name = ?" +
65 " WHERE at_id = ?"
66 ),
67 stat -> {
68 stat.setString(1, newName);
69 stat.setInt(2, id);
70 stat.executeUpdate();
71 }
72 ).runJdbc()
73 ).runJdbc();
74 }
75
76 public void removeArtistByName(String name) throws SQLException
77 {
78 JdbcTemplateFactory.buildRunnable(
79 () -> dataSource.getConnection(),
80 conn -> JdbcTemplateFactory.buildRunnable(
81 () -> conn.prepareStatement(
82 " DELETE ex_artist" +
83 " WHERE at_name = ?"
84 ),
85 stat -> {
86 stat.setString(1, name);
87 stat.executeUpdate();
88 }
89 ).runJdbc()
90 ).runJdbc();
91 }
92 }