View Javadoc
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  }