Escolar Documentos
Profissional Documentos
Cultura Documentos
Java – Aula 05
JDBC
12/09/2012
Celso Olivete Júnior
olivete@fct.unesp.br
1
Introdução à Tecnologia Java – 02/2012
C = (F-32)*5
------------
9
• Biblioteca específica:
•java.sql
Conexão JDBC:
JDBC:
import java.
java.sql.
sql.*;
...
private Connection connect;
connect;
…
try {
String url = "jdbc
jdbc::mysql:
mysql://
//localhost
localhost/bd_aula
/bd_aula55?user=
user=root&password="
root&password=";;
Class..forName(
Class forName( "com.
com.mysql.
mysql.jdbc.
jdbc.Driver”
Driver” );
connect = DriverManager.
DriverManager.getConnection(
getConnection( url );
}
catch ( ClassNotFoundException cnfex )
{System..err.
{System err.println("Falha
println("Falha ao ler o driver JDBC/ODBC“+ cnfex );}
catch ( SQLException sqlex )
{System..out.
{System out.println("Impossível
println("Impossível conectar“+ sqlex );}
catch ( Exception ex )
{System..out.
{System println(“Outro erro“+ ex );}
out.println(“Outro
Celso Olivete Júnior 7
Introdução à Tecnologia Java – 02/2012
Erro de SQL
Celso Olivete Júnior 16
Introdução à Tecnologia Java – 02/2012
•Escolhendo um campo:
Exemplo:String info;
while(rs.next())
{ info=rs.getString(“sobrenome");
System.out.println(info);
}
Insert::
Insert Exemplo 1 (setando valores fora do sql)
sql)
import java.
java.sql.
sql.*;
...
private Connection connect;
connect;
…
try {
PreparedStatement insere_dados
insere_dados;;
insere_dados = connect.
connect.prepareStatement("
prepareStatement("insert
insert into tb_dados values (?,?,?)
(?,?,?)")
");;
insere_dados..setString(
insere_dados setString(1, null)
null);
insere_dados..setString(
insere_dados setString(2, "xxxxx")
xxxxx");;
insere_dados..setString(
insere_dados setString(3, "yyyy")
yyyy");;
insere_dados..executeUpdate
insere_dados executeUpdate()
();; Essa mesma forma
System..out.
System out.print("Dados
print("Dados inseridos...
inseridos...")
");; pode ser feita para as
} instruções SELECT (no
catch (SQLException sqlex ) caso de uma busca),
{System..err.
{System err.println("Erro
println("Erro no SQL!"+
SQL!"+sqlex
sqlex)); } UPDATE e DELETE
Insert::
Insert Exemplo 2 (setando valores no sql
sql))
import java.
java.sql.
sql.*;
...
private Connection connect;
connect;
…
try {
Statement insere_dados = connect
connect..createStatement()
createStatement();;
String query = "INSERT INTO tb_dados (item,
(item,descricao
descricao)) VALUES ('xxxxx
('xxxxx','
','yyyyyy
yyyyyy')
')"";
insere_dados..execute
insere_dados execute((query)
query);
System..out.
System out.print("Inserido
print("Inserido...
...")
");;
}
catch (SQLException sqlex )
{System..err.
{System err.println("Erro
println("Erro no SQL!"+
SQL!"+sqlex
sqlex)); }
Delete::
Delete
import java.
java.sql.
sql.*;
...
private Connection connect;
connect;
…
try {
String query = "DELETE FROM tb_dados WHERE tb_cod = ?";
PreparedStatement statement = connect
connect..prepareStatement
prepareStatement((query
query));
statement..setInt(
statement setInt(1, 44)
44);
statement..executeUpdate()
statement executeUpdate();; ;
System..out.
System out.print("Dados
print("Dados excluídos...
excluídos...")
");;
}
catch (SQLException sqlex )
{System..err.
{System err.println("Erro
println("Erro no SQL!"+
SQL!"+sqlex
sqlex)); }
Exercício
Retorna o tipo
Celso Olivete Júnior 27
Introdução à Tecnologia Java – 02/2012
SQL:
SELECT modelo FROM Veiculo WHERE valor > 2000;
SELECT * FROM Proprietario WHERE name LIKE ‘Jose%’;
SELECT v.* FROM Proprietario p, veiculo v WHERE p.cod=v.codp;
try{
connect.close();
}catch(SQLException sqlex){
System.err.println("Não foi possível desconetar!!!");
sqlex.printStackTrace();
}
}
Exercício 1
• Implementar um ambiente para consulta usando JTable,
para qualquer consulta SQL efetuada pelo usuário;
•O JTable será recriado de acordo com o resultado da
consulta;
•Dicas:
•Para cada consulta o JTable deve ser removido:
Container c = getContentPane();
c.remove(1);
c.add(scroll, BorderLayout.CENTER);
TextArea (Query)
c.validate();
Button (Submit)
JTable
Exercício 1
tEntrada = new JTextArea("SELECT * FROM pessoa", 4, 30);
bConsulta = new JButton("Consultar");
bConsulta.addActionListener( new ActionListener() {
public void actionPerformed (ActionEvent e){
if (e.getSource() == bConsulta)
getTable();
} });
JPanel topPanel = new JPanel();
topPanel.setLayout( new BorderLayout());
topPanel.add(new JScrollPane(tEntrada), BorderLayout.CENTER);
topPanel.add(bConsulta,BorderLayout.SOUTH);