Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public interface UsuarioDao {
- Usuario findByNomeUsuario(String string);
- void atualizarUltimoAcesso(Integer id, Date data);
- }
- public class UsuarioDaoImpl implements UsuarioDao {
- @Autowired
- private JdbcTemplate jdbcTemplate;
- public Usuario findByNomeUsuario(String nomeUsuario) {
- try {
- return jdbcTemplate.queryForObject(
- "select * from usuario where nome_usuario = ?",
- new UsuarioRowMapper(),
- nomeUsuario);
- } catch (EmptyResultDataAccessException e) {
- return null;
- }
- }
- public void atualizarUltimoAcesso(Integer id, Date data) {
- jdbcTemplate.update(
- "update usuario set ultimo_acesso = ? where id = ?", data, id);
- }
- }
- public class UsuarioDao {
- private DataSource ds;
- public void setDataSource(DataSource ds) {
- this.ds = ds;
- }
- public Usuario findByNomeUsuario(String string) {
- Connection con = null;
- PreparedStatement ps = null;
- try {
- con = ds.getConnection();
- ps = con.prepareStatement("select * from usuario where nome_usuario = ?");
- ps.setString(1, string);
- ResultSet rs = ps.executeQuery();
- if (rs.next()) {
- Usuario usuario = new Usuario();
- usuario.setId(rs.getInt("id"));
- usuario.setNomeUsuario(rs.getString("nome_usuario"));
- usuario.setSenha(rs.getString("senha"));
- usuario.setNome(rs.getString("nome"));
- usuario.setUltimoAcesso(rs.getTimestamp("ultimo_acesso"));
- return usuario;
- } else {
- return null;
- }
- } catch (SQLException e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- } finally {
- if (con != null) {
- try {
- con.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
- public void atualizarUltimoAcesso(Integer id, Date data) {
- Connection con = null;
- PreparedStatement ps = null;
- try {
- con = ds.getConnection();
- ps = con.prepareStatement("update usuario set ultimo_acesso = ? where id = ?");
- ps.setTimestamp(1, new java.sql.Timestamp(data.getTime()));
- ps.setInt(2, id);
- ps.executeUpdate();
- } catch (SQLException e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- } finally {
- if (con != null) {
- try {
- con.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
- public class Curso {
- public long id;
- public String nome;
- public Curso(long id, String nome) {
- this.id = id;
- // finja que aqui existem
- // regras hiper complicadas de processamento
- // da variável "nome"
- this.nome = nome;
- }
- }
- interface CursoDAO {
- public Curso create(String name);
- public void update(long id, Curso curso);
- public void delete(long id);
- public Curso findByName(String name);
- }
- public class CursoDAOMongodb implements CursoDAO {
- public Curso create(long id, String name) {
- // realiza a conexão necessária com a mongodb
- MongoClient mongoClient = new MongoClient();
- DB db = mongoClient.getDB("minha incrivel database");
- DBCollection table = db.getCollection("curso");
- document.put("id", id);
- document.put("name", name);
- table.insert(document);
- return new Curso(id, name);
- }
- public Curso findByName(String name) {
- MongoClient mongoClient = new MongoClient();
- DB db = mongoClient.getDB("minha incrivel database");
- BasicDBObject searchQuery = new BasicDBObject();
- searchQuery.put("name", name);
- // etc, pega os dados da query e retorna um new Curso com eles
- }
- public void delete(long id) {
- // realiza a conexão necessária com a mongodb e executa o DELETE no banco
- }
- public void update(long id, Curso curso) {
- // realiza a conexão necessária com a mongodb e executa o UPDATE no banco
- }
- }
- // digamos que suas regras de negócio estejam na Main
- public class Main() {
- static public CursoDAO getDbAcessorForCurso() {
- return new CursoDAOMongodb();
- }
- public static void main(String javaehverborragico[]) {
- String[] nomes = {"design", "pattern", "dao"};
- List<Curso> cursos = new ArrayList<Curso>();
- CursoDAO dbAcessor = Main.getDbAcessorForCurso();
- // criando cursos
- for (String nome : nomes) {
- Curso novoCurso = dbAcessor.create(nome);
- cursos.add(novoCurso);
- }
- // ...
- // realize outras operações de delete ou select usando
- // dbAcessor
- }
- }
- public class CursoDAOPostgresql implements CursoDAO {
- public Curso create(long id, String name) {
- // realiza a conexão necessária com a mongodb
- Connection c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/minha incrivel database");
- Statement stmt = c.createStatement();
- String sql = "INSERT INTO curso (id, name) VALUES (" + id + ", " + name + ") ";
- stmt.executeUpdate(sql);
- stmt.close();
- c.commit();
- c.close();
- return new Curso(id, name);
- }
- // ... outros métodos de CursoDAO, mesma ideia.
- }
- public class Main() {
- static public CursoDAO getDbAcessor() {
- return new CursoDAOPostgresql();
- }
- ...
Add Comment
Please, Sign In to add comment