Guest User

Untitled

a guest
Mar 8th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.69 KB | None | 0 0
  1. public interface UsuarioDao {
  2. Usuario findByNomeUsuario(String string);
  3. void atualizarUltimoAcesso(Integer id, Date data);
  4. }
  5.  
  6. public class UsuarioDaoImpl implements UsuarioDao {
  7.  
  8. @Autowired
  9. private JdbcTemplate jdbcTemplate;
  10.  
  11. public Usuario findByNomeUsuario(String nomeUsuario) {
  12. try {
  13. return jdbcTemplate.queryForObject(
  14. "select * from usuario where nome_usuario = ?",
  15. new UsuarioRowMapper(),
  16. nomeUsuario);
  17. } catch (EmptyResultDataAccessException e) {
  18. return null;
  19. }
  20. }
  21.  
  22. public void atualizarUltimoAcesso(Integer id, Date data) {
  23. jdbcTemplate.update(
  24. "update usuario set ultimo_acesso = ? where id = ?", data, id);
  25. }
  26.  
  27. }
  28.  
  29. public class UsuarioDao {
  30.  
  31. private DataSource ds;
  32.  
  33. public void setDataSource(DataSource ds) {
  34. this.ds = ds;
  35. }
  36.  
  37. public Usuario findByNomeUsuario(String string) {
  38. Connection con = null;
  39. PreparedStatement ps = null;
  40. try {
  41. con = ds.getConnection();
  42. ps = con.prepareStatement("select * from usuario where nome_usuario = ?");
  43. ps.setString(1, string);
  44. ResultSet rs = ps.executeQuery();
  45. if (rs.next()) {
  46. Usuario usuario = new Usuario();
  47. usuario.setId(rs.getInt("id"));
  48. usuario.setNomeUsuario(rs.getString("nome_usuario"));
  49. usuario.setSenha(rs.getString("senha"));
  50. usuario.setNome(rs.getString("nome"));
  51. usuario.setUltimoAcesso(rs.getTimestamp("ultimo_acesso"));
  52. return usuario;
  53. } else {
  54. return null;
  55. }
  56. } catch (SQLException e) {
  57. e.printStackTrace();
  58. throw new RuntimeException(e);
  59. } finally {
  60. if (con != null) {
  61. try {
  62. con.close();
  63. } catch (SQLException e) {
  64. e.printStackTrace();
  65. }
  66. }
  67. }
  68. }
  69.  
  70. public void atualizarUltimoAcesso(Integer id, Date data) {
  71. Connection con = null;
  72. PreparedStatement ps = null;
  73. try {
  74. con = ds.getConnection();
  75. ps = con.prepareStatement("update usuario set ultimo_acesso = ? where id = ?");
  76. ps.setTimestamp(1, new java.sql.Timestamp(data.getTime()));
  77. ps.setInt(2, id);
  78. ps.executeUpdate();
  79. } catch (SQLException e) {
  80. e.printStackTrace();
  81. throw new RuntimeException(e);
  82. } finally {
  83. if (con != null) {
  84. try {
  85. con.close();
  86. } catch (SQLException e) {
  87. e.printStackTrace();
  88. }
  89. }
  90. }
  91. }
  92.  
  93. }
  94.  
  95. public class Curso {
  96. public long id;
  97. public String nome;
  98.  
  99. public Curso(long id, String nome) {
  100. this.id = id;
  101.  
  102. // finja que aqui existem
  103. // regras hiper complicadas de processamento
  104. // da variável "nome"
  105.  
  106. this.nome = nome;
  107. }
  108. }
  109.  
  110. interface CursoDAO {
  111. public Curso create(String name);
  112.  
  113. public void update(long id, Curso curso);
  114.  
  115. public void delete(long id);
  116.  
  117. public Curso findByName(String name);
  118. }
  119.  
  120. public class CursoDAOMongodb implements CursoDAO {
  121.  
  122. public Curso create(long id, String name) {
  123. // realiza a conexão necessária com a mongodb
  124. MongoClient mongoClient = new MongoClient();
  125. DB db = mongoClient.getDB("minha incrivel database");
  126.  
  127. DBCollection table = db.getCollection("curso");
  128. document.put("id", id);
  129. document.put("name", name);
  130. table.insert(document);
  131.  
  132. return new Curso(id, name);
  133. }
  134.  
  135. public Curso findByName(String name) {
  136. MongoClient mongoClient = new MongoClient();
  137. DB db = mongoClient.getDB("minha incrivel database");
  138. BasicDBObject searchQuery = new BasicDBObject();
  139. searchQuery.put("name", name);
  140.  
  141. // etc, pega os dados da query e retorna um new Curso com eles
  142. }
  143.  
  144. public void delete(long id) {
  145. // realiza a conexão necessária com a mongodb e executa o DELETE no banco
  146. }
  147.  
  148. public void update(long id, Curso curso) {
  149. // realiza a conexão necessária com a mongodb e executa o UPDATE no banco
  150. }
  151. }
  152.  
  153. // digamos que suas regras de negócio estejam na Main
  154. public class Main() {
  155.  
  156. static public CursoDAO getDbAcessorForCurso() {
  157. return new CursoDAOMongodb();
  158. }
  159.  
  160. public static void main(String javaehverborragico[]) {
  161.  
  162. String[] nomes = {"design", "pattern", "dao"};
  163.  
  164. List<Curso> cursos = new ArrayList<Curso>();
  165.  
  166. CursoDAO dbAcessor = Main.getDbAcessorForCurso();
  167.  
  168. // criando cursos
  169. for (String nome : nomes) {
  170. Curso novoCurso = dbAcessor.create(nome);
  171. cursos.add(novoCurso);
  172. }
  173.  
  174. // ...
  175. // realize outras operações de delete ou select usando
  176. // dbAcessor
  177. }
  178. }
  179.  
  180. public class CursoDAOPostgresql implements CursoDAO {
  181.  
  182. public Curso create(long id, String name) {
  183. // realiza a conexão necessária com a mongodb
  184. Connection c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/minha incrivel database");
  185.  
  186. Statement stmt = c.createStatement();
  187. String sql = "INSERT INTO curso (id, name) VALUES (" + id + ", " + name + ") ";
  188. stmt.executeUpdate(sql);
  189.  
  190. stmt.close();
  191. c.commit();
  192. c.close();
  193.  
  194. return new Curso(id, name);
  195. }
  196.  
  197. // ... outros métodos de CursoDAO, mesma ideia.
  198. }
  199.  
  200. public class Main() {
  201.  
  202. static public CursoDAO getDbAcessor() {
  203. return new CursoDAOPostgresql();
  204. }
  205. ...
Add Comment
Please, Sign In to add comment