Kandrade 7 Denunciar post Postado Julho 19, 2009 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.htmlPostgreSQL -> http://jdbc.postgresql.org/Oracle -> http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.htmlBaixe 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.gujA 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! Compartilhar este post Link para o post Compartilhar em outros sites
hargon 64 Denunciar post Postado Julho 19, 2009 Muito bom Kandrade. Parabéns. Compartilhar este post Link para o post Compartilhar em outros sites
Milton Quirino 0 Denunciar post Postado Julho 19, 2009 Isso ai Kandrade ! Muito bom o tema do tutorial ! Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Julho 20, 2009 ótimo tutorial parabéns Compartilhar este post Link para o post Compartilhar em outros sites
sublyer 0 Denunciar post Postado Julho 21, 2009 Parabénsss brother..... Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Agosto 2, 2009 Para manter um log vou postar as alterações. - Alteração do SGDB utilizado de SQL Server 2005 para SQL 2008. - Acrescentado links para os drivers dos principais SGDBs: Mysql, PostgreSQL e Oracle. Compartilhar este post Link para o post Compartilhar em outros sites
Predes 0 Denunciar post Postado Janeiro 15, 2010 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; } } Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Janeiro 15, 2010 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. http://jtds.sourceforge.net/ Se quiser manter o driver da Microsoft é só alterar a url de conexão: String url = "jdbc:sqlserver://servidor/TESTE?user=sa&password="; Compartilhar este post Link para o post Compartilhar em outros sites
Predes 0 Denunciar post Postado Janeiro 15, 2010 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. 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. Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Janeiro 15, 2010 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. Compartilhar este post Link para o post Compartilhar em outros sites
Predes 0 Denunciar post Postado Janeiro 15, 2010 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. Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Janeiro 15, 2010 Foi nada, se rolar mais dúvidas poste ai pra gente. Abraço! Compartilhar este post Link para o post Compartilhar em outros sites