Alguem tem um codigo genérico de conexão mysql que possa me passar? ja com algum exemplo de .execute e de .close! obrigado
Mais ou menos assim:
public class Conexao
{
// Definir atributo tipo String contendo "com.mysql.jdbc.Driver"
// Definir atributo tipo String contendo "jdbc:mysql://localhost/nomeDoBanco"
// Definir atributo tipo String contendo "NomeDoUsuario"
// Definir atriibuto tipo String contendo "ASenhaDoUsuario"
public static Connection getConexao()
{
// Estabelecer aqui a conexão com base nos atributos
}
}
Em outra classe, vc define os métodos bem como de inserção, atualização.
Por exemplo:
ClienteDao.java
public class ClienteDao
{
private Connection conexao; // Atributo tipo Connection
private Statement instrucao; // Atributo tipo Statement
public ClienteDao()
{
conexao = Conexao.getConexao();
instrucao = conexao.createStatement();
}
public Cliente buscar( Integer codigo ) throws SQLException
{
String sql = "SELECT * FROM nomeTabela WHERE codigo=?";
PreparedStatement ps = conexao.prepareStatement(sql);
ps.setInt(1, codigo);
ps.executeUpdate();
ps.close();
}
}
Veja se ajuda
Abraços
try {
Class driver = Class.forName("org.gjt.mm.mysql.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String url = "jdbc:mysql://localhost:3306/NomeDoBanco";
String usuarioBD = "root";
String senhaBD = "admin";
try {
DriverManager.getConnection(url, usuarioBD, senhaBD);
} catch (SQLException e1) {
e1.printStackTrace();
}
po cara, ao invés de deixar em hardcode, passe tudo isso pra um datasource no context, assim tu já aprende como se faz um DS…
não querendo ser chato mas sendo.
tentou pesquisar?
eu mesmo já postei essa solução aqui no forum
Javaxxxx ,
Mas dessa forma você não fecha a conexão com o banco de dados após executar a instrução SQL?
vc fecha o PreparedStatement, não a conexão.
Quando você diz isso é em relação ao uso de conection pool, não?! Estou falando do exemplo dado acima (uma simples ConnectionFactory)…
Entendeu?
Abraços,
André AS
Eia abaixo um classe que usei, mas recomendo implementar Connection Pool.
[code]package br.com.versionamentodeepub.factory;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import br.com.versionamentodeepub.model.PropertiesLoaderImpl;
public class ConnectionFactory {
/**
* Gerador de conexões
*/
public static Connection createConnection() {
Connection con = null;
String status = null;
String servidorDeBancoDeDadosName = PropertiesLoaderImpl.lePropertiesServidorBancoDeDadosName();
String servidorDeBancoDeDadosPort = PropertiesLoaderImpl.lePropertiesServidorBancoDeDadosPort();
String baseDeDados = PropertiesLoaderImpl.lePropertiesVariavelBaseDedados();
String usuario = PropertiesLoaderImpl.lePropertiesVariavelUsuario();
String senha = PropertiesLoaderImpl.lePropertiesVariavelSenha();
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://"+servidorDeBancoDeDadosName+":"+servidorDeBancoDeDadosPort+"/"+baseDeDados.replace("\"","").replace("'", ""), usuario, senha);
status = "\nConexão aberta\n";
} catch (SQLException sqle) {
status = "Erro abrindo conexão: " + sqle.getMessage();
System.err.println(status);
}catch (ClassNotFoundException cnfe) {
status = "Erro abrindo conexão: " + cnfe.getMessage();
}catch (Exception e) {
status = "Erro na fábrica de conexão: " + e.getMessage();
e.printStackTrace();
}
System.out.println(status);
return con;
}
}
// Ao pegar a conexão repare que fecho tudo após uso (Statement e Connection)
public void inseriDadosDeConversao(String nomeDoFornecedor, String isbn) {
Connection con = ConnectionFactory.createConnection();
PreparedStatement stmt = null;
Savepoint antes = null;
try {
con.setAutoCommit(false);
antes = con.setSavepoint(“boa”);
String sql = "INSERT INTO retorno_conversao (data, isbnIdigital, empresa)" +
" VALUES" +
"(date_format(now(), '%d-%m-%Y'),?,?)";
stmt = con.prepareStatement(sql.toString());
stmt.setLong(1, Long.parseLong(isbn));
stmt.setString(2, nomeDoFornecedor);
con.commit();
} catch (SQLException e) {
System.err.println("Erro de sintaxe do SQL: " + e.getMessage());
e.printStackTrace();
}finally{
try {
stmt.execute();
con.rollback(antes);
stmt.close();
con.close();
} catch (SQLException e) {
System.err.println("Erro: " + e.getMessage());
e.printStackTrace();
}
}
}
[/code]