Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2018
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.26 KB | None | 0 0
  1. package pl.poznan.put.cie.coffee;
  2.  
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9.  
  10. import org.springframework.dao.DataAccessException;
  11. import org.springframework.dao.EmptyResultDataAccessException;
  12. import org.springframework.jdbc.core.ResultSetExtractor;
  13. import org.springframework.jdbc.core.RowMapper;
  14. import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
  15. import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
  16.  
  17. public class CoffeeDao
  18. {
  19.  
  20. private final NamedParameterJdbcTemplate jdbc;
  21.  
  22. public CoffeeDao()
  23. {
  24. // TODO init jdbc using pl.poznan.put.cie.coffee.DbUtilities
  25. DbUtilities db = new DbUtilities();
  26. this.jdbc = new NamedParameterJdbcTemplate(db.getDataSource("jdbc:sqlserver://localhost\\SQLEXPRESS2:1433;database=PP;user=test;password=1qaz2WSX"));
  27.  
  28. //throw new UnsupportedOperationException("Not implemented yet.");
  29. }
  30.  
  31. /**
  32. * Returns a coffee with given name.
  33. *
  34. * @param name coffee name
  35. * @return coffee object or null
  36. */
  37. public Coffee get(String name)
  38. {
  39. final String nameTemp = name;
  40.  
  41.  
  42. String sql = "SELECT sup_id, price, sales, total FROM coffees "
  43. + "WHERE cof_name = :cof_name";
  44. MapSqlParameterSource params = new MapSqlParameterSource("cof_name", name);
  45. return jdbc.query(sql, params, new ResultSetExtractor<Coffee>()
  46. {
  47.  
  48. @Override
  49. public Coffee extractData(ResultSet rs) throws SQLException, DataAccessException
  50. {
  51. // TODO implement method #extractData()
  52. Coffee result;
  53. if (rs.next())
  54. result = new Coffee(
  55. nameTemp,
  56. rs.getInt(1),
  57. rs.getBigDecimal(2),
  58. rs.getInt(3),
  59. rs.getInt(4));
  60. else
  61. return null;
  62.  
  63. return result;
  64. }
  65. });
  66. }
  67.  
  68.  
  69. /**
  70. * Returns a list of all coffees.
  71. *
  72. * @return list of all coffees
  73. */
  74. public List<Coffee> getAll()
  75. {
  76. String sql = "SELECT cof_name, sup_id, price, sales, total FROM coffees";
  77. List<Coffee> result;
  78. try
  79. {
  80. // TODO invoke NamedParameterJdbcTemplate.query(String, RowMapper<T>)
  81. result = jdbc.query(sql, new RowMapper<Coffee>()
  82. {
  83. public Coffee mapRow(ResultSet resultSet, int rowNum)
  84. throws SQLException
  85. {
  86. return new Coffee(
  87. resultSet.getString(1),
  88. resultSet.getInt(2),
  89. resultSet.getBigDecimal(3),
  90. resultSet.getInt(4),
  91. resultSet.getInt(5));
  92. }
  93. });
  94.  
  95. //throw new UnsupportedOperationException("Not implemented yet.");
  96. } catch (EmptyResultDataAccessException ex)
  97. {
  98. return new ArrayList<>();
  99. }
  100. return result;
  101. }
  102.  
  103. public void update(Coffee c)
  104. {
  105. String sql = "UPDATE coffees "
  106. + "SET price = :price, sales = :sales, total = :total "
  107. + "WHERE cof_name = :cof_name AND sup_id = :sup_id";
  108. Map<String, Object> parameters = new HashMap<>();
  109. parameters.put("price", c.getPrice());
  110. parameters.put("sales", c.getSales());
  111. parameters.put("total", c.getTotal());
  112. parameters.put("cof_name", c.getName());
  113. parameters.put("sup_id", c.getSupplierId());
  114. jdbc.update(sql, parameters);
  115. }
  116.  
  117. public void delete(String name, int supplierId)
  118. {
  119. // TODO implement method CoffeeDao#delete(), use NamedParameterJdbcTemplate.update(String, Map)
  120. // DELETE FROM coffees WHERE cof_name = ? AND sup_id = ?
  121. String sql = "DELETE FROM coffees " +
  122. "WHERE cof_name = :cof_name AND sup_id = :sup_id";
  123.  
  124. Map<String, Object> parameters = new HashMap<>();
  125. parameters.put("cof_name", name);
  126. parameters.put("sup_id", supplierId);
  127. jdbc.update(sql, parameters);
  128.  
  129. // throw new UnsupportedOperationException("Not implemented yet.");
  130. }
  131.  
  132. public void create(Coffee c)
  133. {
  134. // TODO implement method CoffeeDao#create(), use NamedParameterJdbcTemplate.update(String, Map)
  135. // INSERT INTO coffees(cof_name, sup_id, price, sales, total) VALUES(?, ?, ?, ?, ?)
  136.  
  137. String sql = "INSERT INTO coffees(cof_name, sup_id, price, sales, total) " +
  138. "VALUES(:cof_name, :sup_id, :price, :sales, :total)";
  139.  
  140. Map<String, Object> parameters = new HashMap<>();
  141. parameters.put("price", c.getPrice());
  142. parameters.put("sales", c.getSales());
  143. parameters.put("total", c.getTotal());
  144. parameters.put("cof_name", c.getName());
  145. parameters.put("sup_id", c.getSupplierId());
  146. jdbc.update(sql, parameters);
  147.  
  148.  
  149. //throw new UnsupportedOperationException("Not implemented yet.");
  150. }
  151.  
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement