Giter Site home page Giter Site logo

daniel-jdbc's Introduction

JDBC-DANIEL

Build Status

Esta API tem como principal Objetivo simplificar uma consulta feita a um banco de dados, um dos principais objetivo é facilitar o a obtenção dos dados na base de dados e o atribuir a um objeto que representa a tabela em questão.

daniel-jdbc suporta os seguintes bancos de dados:

  • MySQL
  • PostgreSQL
  • Oracle
  • SQL Server

Para utilizar basta baixar o arquivo .jar e o adicionar ao Build Path do projeto, desta forma o projeto poderá carregar as classes responsáveis por executar as funcionalidades de transação de banco de dados.

Exemplos de Select:

Dao dao = new Dao();

ResultSet result = dao
					.sid()
					.dql(new Conexao("propriedades.properties").conectarMysql())
					.select("SELECT idade, nome FROM teste.teste")
					.execute();

Para realizar um simples Select é preciso apenas criar uma instância da classe Dao, em um select o objeto retornado será sempre um objeto ResultSet.

A classe conexão possui 2 contrutores onde é possivel passar os parametros de banco de dados necessários para a conexão.

// parametros passados host = "localhost:3306", userDb = "teste", passDB = "12345"
Conexao con = new Conexao(host, userDb, passDB);

No Exemplo acima a classe Conexão recebe 3 parâmetros no qual são utilizados para conexão com o banco de dados, desta forma o Select Acima teria a seguinte instrução.

String host = "localhost:3306";
String userDb = "teste";
String passDb = "12345";

Dao dao = new Dao();

ResultSet result = dao
				  .sid()
				  .dql(new Conexao(host, userDB, passDb).conectarMysql())
				  .select("SELECT idade, nome FROM teste.teste")
				  .execute();

Outra forma de passar parametros de banco de dados é por meio de um arquivo de propriedades. Desta forma basta apenas passar a URI do arquivo .properties.

Conexao con = new Conexao("/user/teste/banco.properties");

Exemplos de Transações DML

As instruções DML por sua maioria retornam um objeto do tipo Boolean informando true para caso a transação tenha ocorrido de forma segura e correta, para caso de erros, a retornado false

Instrução Insert:

Boolean result = dao
				.sid()
				.dml(new Conexao("propriedades.properties").conectarMysql())
 				.insert("INSERT INTO `teste`.`teste` (`nome`, `idade`) VALUES (?, ?);", "Teste", 10)
 				.execute();

Como podemos ver, as instruções DML seguem o mesmo padrão das instruções DQL.

Instrução UPDATE

São transações que realizam a alteração de algum dado na base de dados.

Boolean response = dao
				.sid()
				.dml(new Conexao("propriedades.properties").conectarMysql())
				.update("UPDATE `teste`.`teste` SET `nome`= ?, `idade`= ? WHERE `id`= ? ","Teste2", 22, id)
				.execute();

Instrução de Delete

São transações que exclui um dado da base de dados.

Boolean response = dao
				.sid()
				.dml(new Conexao("propriedades.properties").conectarMysql())
				.delete("DELETE FROM `teste`.`teste` WHERE nome = ? AND idade = ?", "Teste2", 22)
				.execute();

Mapeamento de Um Objeto

Para mapear um um objeto precisamos primeiro criar a classe que represente a tabela de banco de dados, abaixo segue uma representação da tabela teste.

import br.com.daniel.jdbc.mapeamento.Coluna;

public class TesteBean {

	private Integer id;
	private String nome;
	private Integer idade;
	
	public Integer getId() {
		return id;
	}
	
	@Coluna("ID")
	public void setId(Integer id) {
		this.id = id;
	}
	
	public String getNome() {
		return nome;
	}
	
	@Coluna("NOME")
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public Integer getIdade() {
		return idade;
	}
	
	@Coluna("IDADE")
	public void setIdade(Integer idade) {
		this.idade = idade;
	}	
}

Observe que para o correto funcionamento da API de mapeamento, é necessário que os metódos Set possuam a anotação @Coluna seguido do nome da tabela.

Após realizar esta configuração, a classe Utilidades possui um método que irá realizar o preenchimento do objeto de forma automatica, abaixo segue o exemplo.

Dao dao = new Dao();

ResultSet result = dao
				  .sid()
				  .dql(new Conexao(host, userDB, passDb).conectarMysql())
				  .select("SELECT idade, nome FROM teste.teste")
				  .execute();

while (result.next()) {			
	TesteBean bean = (TesteBean) Utilidades.convertToObject(bean, result);
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.