Acessar BD

5 respostas
E

Boa Noite…
Eu criei uma conexão com o bando de dados SQL Server que está conectando ok. Agora preciso criar uma classe para ver, inserir, etc… em uma tablela JÀ EXISTENTE no banco.
Não faço a mìnima ideia como para mexer nessa tabela.
Sei como criar uma nova tabela, mais não ver uma que já existe.
Será que alguem pode me ajudar?
Tô apanhando muito… :roll:
Obrigada

5 Respostas

peczenyj

Aprenda SQL

http://www.w3schools.com/sql/default.asp

Vc pode usar a clausula INSERT – de uma olhada na apostila fj-21 da caelum no primeiro capitulo:

A
Da uma olhada nas classes e ve se ajuda :D
public class DAO {
	DB					db	= new DB();
	private Connection	con;
	private Modelo		modelo;
	
	public DAO(Modelo modelo) {
		this.modelo = modelo;
		con = db.getConnection();
	}
	
	public boolean insert() {
		Statement stm = null;
		String SQL = "insert into x (a, b, c, d) values ";
		String valores = "('" + modelo.getA() + ",'" + modelo.getB() + ",'" + modelo.getC() + ",'" + modelo.getD() + ")";
		SQL += valores;
		boolean ok = false;
		try {
			stm = con.createStatement();
			ok = stm.execute(SQL);
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				stm.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			db.close();
		}
		return ok;
	}
	
	public int update() {
		Statement stm = null;
		String SQL = "update x set ";
		String valores = "(a = '" + modelo.getA() + ", b = '" + modelo.getB() + ", c = '" + modelo.getC() + ", d = '" + modelo.getD() + ")";
		SQL += valores;
		int total = 0;
		try {
			stm = con.createStatement();
			total = stm.executeUpdate(SQL);
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				stm.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			db.close();
		}
		return total;
	}
	
	public void select() {
		Statement stm = null;
		String SQL = "select * from x";
		ResultSet rs = null;
		try {
			stm = con.createStatement();
			rs = stm.executeQuery(SQL);
			modelo.setA(rs.getString("a"));
			modelo.setB(rs.getString("b"));
			modelo.setC(rs.getString("c"));
			modelo.setD(rs.getString("d"));
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				stm.close();
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			db.close();
		}
	}
}
public class Modelo {
	
	public String getA() {
		return null;
	}
	
	public String getB() {
		return null;
	}
	
	public String getC() {
		return null;
	}
	
	public String getD() {
		return null;
	}
	
	public void setA(String string) {
	}
	
	public void setB(String string) {
	}
	
	public void setC(String string) {
	}
	
	public void setD(String string) {
	}
}
public class DB {
	private Connection	con;
	
	public Connection getConnection() {
		try {
			// colocar a classe de driver do banco de dados que for usar
			DriverManager.registerDriver(new com.ibm.db2.jcc.DB2Driver());
			// trocar os dados para o banco de dados que for usar
			con = DriverManager.getConnection("jdbc:YYYY://xxxxxxxx:0000/AAAAAA", "XXXXXX", "XXXXXX");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return con;
	}
	
	public void close() {
		if (con != null) {
			try {
				con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}
peczenyj

Detesto fazer esse papel, mas concatenar string pra gerar SQL é fonte de problemas: pra isso existe o preparedStatement.

É claro que o exemplo é didatico, mas não custa avisar. SQL Injection é uma das coisas mais comuns nos dias de hoje e, mesmo q não fosse um problema, imagine na hora de cadastrar a Joana D’arc ? :wink:

A

Nao tinha pensado nisso antes vlw :lol:

E

olá
eu tenho a apostila da caelum, mais nela ela cria uma classe Contato, para depois inserir os dados usando o PREPARED STATEMENT.
No meu caso minha tabela está no SQL Sever Management Studio, dai não sei como eu “chamo” essa tabela para usa-la
obrigada

Criado 20 de março de 2009
Ultima resposta 20 de mar. de 2009
Respostas 5
Participantes 3