Qual é a melhor maneira / modelo para configurar mysql conexão e jdbc?

StackOverflow https://stackoverflow.com/questions/819845

  •  03-07-2019
  •  | 
  •  

Pergunta

O que é a melhor maneira de configurar a conexão com o jdbc do mysql? E executar simples declaração. Como fazer isso? Obrigado.

Foi útil?

Solução

O clichê básico para MySQL / JDBC é algo como isto:

Obter a conexão :

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://databaseName");

Execute a instrução :

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * from tableName");
while (rs.next()) {
    System.out.println(rs.getString(1));
}

Fechar a declaração e conexão :

rs.close();
stmt.close();
conn.close();

Você só precisa ter certeza de que o driver instalado e / ou em seu CLASSPATH.

Outras dicas

Este é o vigésimo primeiro século - usar uma implementação JPA (ORM). Mas se você insistir em ir de volta para o metal (com o risco de baixo votos) -

Existem muitas maneiras de obter uma conexão JDBC de algum motorista. Usando reflexão com um nome de classe com fio é o mais comum e talvez o mais cérebro danificado. Se você estiver indo para hardwire um nome de classe, você pode bem como obter os benefícios do código normal (capturas compilador erros de digitação, sem exceções irrelevantes para tratar, mais fácil de ler, dependências explícitas, melhor suporte de ferramentas, etc).

Também entrar para o hábito de limpar recursos com segurança.

Assim:

public static void main(String[] args) throws SQLException {
     Driver driver = new com.mysql.jdbc.Driver();
     Connection connection = driver.connect(
         "jdbc:mysql://mydatabase", 
         new java.util.Properties() {{
              put("user", "fred");
         }}
     );
     try {
         PreparedStatement statement = connection.prepareStatement(
             "SELECT insideLeg FROM user WHERE name=?"
         );
         try {
             statement.setString(1, "jim");
             ResultSet results = statement.executeQuery();
             try {
                 if (results.next() {
                     System.out.println("= "+results.getLong(1));
                 } else {
                     System.out.println("Missing.");
                 } 
             } finally {
                 results.close();
             }
         } finally {
             statement.close();
         }
     } finally {
         connection.close();
     }
}

Que confusão! E nem sequer usar transações ainda. Sim, usar um ORM. Eles são muito respeitável estes dias.

Você não precisará fazer tudo isso para cada declaração. Você não quer ir em torno de criar drivers de instanciar o tempo todo. Em particular, o idioma executar em torno é útil.

Depende do seu caso.

Se você simplesmente precisa para executar algumas consultas de aplicativo independente, então você deve usar a conexão única como:

Class.forName ("yourDriverName");

Connection cn = DriverManager.getConnection ("db url");
Statement st = cn.createStatement ();
ResultSet rs = st.executeQuery ("select * from foo");
while (rs.next()) {
  doSmth ();
} 
rs.close ();
st.close ();
cn.close ();

Mas se você está desenvolvendo aplicação real (especialmente web-application), em seguida, usar DataSource do. Leia o manual do seu banco de dados e de servidor Web como fonte de dados de configuração. DataSource permite que você use conexão de pooling -. Ele vai nessecary para aumentar o desempenho

Configuração DataSource não é difícil processo.

Aqui está a documentação sol por criação de uma conexão JDBC . A partir daí é fácil get acesso a uma Declaração objeto e executar alguns SQL simples.

Para sistemas nível de produção você provavelmente também quer criar um pool de conexão .

quadro abstração JDBC de Uso Spring Framework - tudo que você precisa fazer é criar um arquivo de contexto XML, e usar a classe de modelo JDBC. Apenas algumas linhas de código XML + Java você vai chegar. A vantagem de armazenar suas informações de conexão fora do Java compilado. Vejo: http://www.springbyexample.org/examples/simple-spring- jdbc-template.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top