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 }