Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Introdução
Esse tutorial foi criado devido a grande quantidade de dúvidas que vejo em fóruns, principalmente de pessoas iniciantes na linguagem de como é a relação do Java com o Banco de Dados. Os assuntos tratados nesse tutorial são: JDBC, Factory, Beans e DAO. O banco de dados que irei utilizar é o SQL Server 2008 Express.
O tutorial será dividido em 3 partes. Espero que gostem!
Java Acesso a Dados - JDBC - Parte I
JDBC é uma API escrita em Java que serve como uma ponte entre nossos programas e o banco de dados. Cada banco de dados possui uma implementação JDBC chamada de driver.
No nosso caso o driver JDBC que vamos usar é o jtds que serve para os bancos SQL Server e Sybase.
http://jtds.sourceforge.net/
Vou deixar os links dos JDBDCs dos bancos mais usados:
MySQL -> http://dev.mysql.com/downloads/connector/j/5.1.html
PostgreSQL -> http://jdbc.postgresql.org/
Oracle -> http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html
Baixe o mais atual e o adicione nas bibliotecas de seu projeto.
Em breve vou postar como fazer isso nas principais IDEs Netbeans e Eclipse.
Estamos prontos para começar a programar.
Vamos criar a fábrica de conexões que como o próprio nome diz vai gerenciar nossas conexões com o banco.
public class ConnectionFactory {
public static Connection getConnection() throws SQLException{
String url = "jdbc:jtds:sqlserver://localhost:1433/seu_banco;user=seu_usuario;password=sua_senha";
Connection c = null;
try
{
Class.forName("net.sourceforge.jtds.jdbc.Driver");
c = DriverManager.getConnection(url);
}
catch(ClassNotFoundException cnfe)
{
cnfe.printStackTrace();
}
return c;
}
}
O banco de dados está rodando localmente e não esqueça de fazer as devidas substituições em banco, usuário e senha.
Vamos a algumas explicações do código:
Class.forName(DRIVER);
Mas o que acontece realmente aqui? Quando você utiliza o método estático Class.forName(), o Class Loader tenta inicializar esta classe. Esta classe (que é o nosso driver jdbc) possui um bloco inicializador estático (não se preocupe caso você não conheça este recurso), que irá registrar essa classe como um driver JDBC, avisando o java.sql.DriverManager, pelo método registerDriver.
Fonte: http://www.guj.com.br/java.tutorial.artigo.7.1.guj
A classe DriverManager gerencia os Driver JDBC. Quando chamanos o método getConnection, o DriverManager tentará localizar um driver adequado, utilizando o(s) driver(s) carregado pelo Class Loader.
Vamos testar nossa classe de conexão
public class TesteConexao{
public static void main(String[] args){
Connection con = null;
try {
con = ConnectionFactory.getConnection();
} catch (SQLException ex) {
ex.printStackTrace();
}
if(con != null){
System.out.println("Conexao efetuada com sucesso!");
}
else{
System.out.println("Conexao falhou!");
}
}
}
Por enquanto é isso, estou preparando o próximo material.
Aguardem!
Isso ai Kandrade !
Muito bom o tema do tutorial !
ótimo tutorial
parabéns
Parabénsss brother.....
Para manter um log vou postar as alterações.
Fiz exatamente como descrito no tópico e no teste da conexão da o seguinte erro:
E as únicas alterações foram o ip do meu servidor sql que é o ip local 192.168.0.88 usuário= sa e senha (não tem senha)
run:
java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Conexao falhou!
URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at ConnectionFactory.getConnection(ConnectionFactory.java:22)
at TesteConexao.main(TesteConexao.java:18)
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)
public class ConnectionFactory {
public static Connection getConnection() throws SQLException{
String url = "jdbc:jtds:sqlserver://192.168.0.88\192.168.0.88:1433/TESTE_JDBC;user=sa;password=";
Connection c = null;
try
{
Class.forName("net.sourceforge.jtds.jdbc.Driver");
c = DriverManager.getConnection(url);
}
catch(ClassNotFoundException cnfe)
{
cnfe.printStackTrace();
}
return c;
}
}O erro aconteceu porque voce não possui o driver JDBC.
Pelo que vi em seu outro post voce usa o driver da Microsoft.
Se quiser seguir do mesmo jeito do tutorial baixe o driver e adicione os jar a seu projeto:
>
No nosso caso o driver JDBC que vamos usar é o jtds que serve para os bancos SQL Server e Sybase.
Se quiser manter o driver da Microsoft é só alterar a url de conexão:
String url = "jdbc:sqlserver://servidor/TESTE?user=sa&password=";
Então mais eu puxei esse driver tambem e instalei....tentei das duas formas e o erro persiste, vou anexar a imagem dos meus servidores.
/applications/core/interface/imageproxy/imageproxy.php?img=http://img685.imageshack.us/img685/2924/servidores.jpg&key=a8f4e325a9417e35823319da9d2b3e39a63f29df8dd6d950f849d39100f64010" alt="Imagem Postada" />
E no método citado nesse artigo http://imasters.com.br/artigo/12894/bancodedados/criando_conexao_java__bd/ funciona porém não sei como continuar a partir daí, entao resolvi seguir seu tópico que está mais completo, com rotinas de insert select etc.
Mais infelizmente não está dando certo.
Obrigado pela atenção.
Voce precisa colocar os jar do driver dentro da lib do projeto.
Eu não me recordo com netbeans porque uso o eclipse, mas não é difícil.
Veja a imagem no eclipse de como adicionar jar externo ao projeto.
/applications/core/interface/imageproxy/imageproxy.php?img=http://img62.imageshack.us/img62/1222/driverjdbc.jpg&key=fef13c45669db768942f58000b3f5776dae64b209ccef68ade8e5427d9183ae4" alt="Imagem Postada" />
Muito obrigado pela atenção enfim deu certo, nunca ia imaginar que era isso...
muito obrigado mesmooo...vou dar continuidade ao projeto, e creio que mais duvidas surgirão http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
E pra quem não sabe como inserir esses jars no NetBeans segue abaixo.
/applications/core/interface/imageproxy/imageproxy.php?img=http://img16.imageshack.us/img16/2513/addjar.jpg&key=cf8ff1a2dbe479ae00faf9634ed66afc91240affdcd2292d7b6e16ffb84a87af" alt="Imagem Postada" />
Foi nada,
se rolar mais dúvidas poste ai pra gente.
Abraço!
Muito bom Kandrade. Parabéns.