Conteúdo principal:
1.JDBC Connection Database (Edit) Etapas (existem principalmente seis etapas)
1. Registre o driver: Class.ForName ("com.mysql.jdbc.driver"); Carga exibida na JVM
2. Obtenha a conexão: (1) param1: o URL para conectar-se ao banco de dados -----》 String url = "JDBC: mysql: // localhost: 3306/teste?"+ "Useunicode = true & caracterenCoding = utf8"; // evita o código distorcido
Param2: nome de usuário para conectar-se ao banco de dados--》 string user = "h4";
Param3: senha para conectar-se ao banco de dados ----》 String pass = "111";
Conexão Conn = DriverManager.getConnection (URL, Usuário, Pass); // Métodos em DriverManager: GetConnection (URL da String, String UserName, String Senha)
(2) Em seguida, analisamos o URL: "JDBC (este protocolo começa com JDBC): MySQL (este é um subprotocolo, nome do sistema de gerenciamento de banco de dados): // localhost (endereço de origem do banco de dados): 3306 (porta de destino)/teste (tabela a ser consultada)?"
"useUnicode = true & caracterEncoding = utf8"; Isso é adicionado para evitar o código ilegal e é especificado para usar conjuntos de caracteres Unicode e editá-los usando o UTF-8.
3. Crie um objeto de instrução (três métodos principais): Declaração sTMT = Conn.Createstatement (); // Métodos na Interface de conexão: Declaração CreateStatement ()
Preparado PSTMT = Conn.PreparedStatement ();
Callablestatement cstmt = Conn.Preparecall ("{Call Demosp (?,?)}");
Vamos analisá -los abaixo: (1) a diferença entre os objetos de instrução e estatamento preparado, que podem definir dinamicamente parâmetros de consulta
(2) Método para definir parâmetros Preparadostatement.Setxxxx (ParameterIndex, Valor). Se o tipo de parâmetro do banco de dados for varchar, o SetString será usado. Se o tipo de parâmetro for inteiro, o setInt será usado.
(3) callablestatement.setxxxx (parameterIndex, value) // Definir valor na ordem dos parâmetros
Callablestatement.setxxxx (nome do parametern, value) // Defina o valor de acordo com o nome do parâmetro. Este nome é o nome do parâmetro formal ao definir o procedimento armazenado.
(4) Callablestatement.RegisterOutParameter O método é usado para declarar um parâmetro do tipo de saída de um procedimento armazenado para receber o valor de saída do procedimento armazenado
4. Exceto pela declaração de consulta, executeQuery (); Todo o resto é executadopdate ();
Métodos em interface de declaração:
Execute booleano (String SQL): Execute a instrução SQL, true se o valor de retorno for o conjunto de resultados, caso contrário, false
ResultSet ExecuteQuery (String SQL): Executar instrução SQL, o valor de retorno é o ResultSet
int executeUpdate (string sql): Executar instrução SQL, o valor de retorno é o número de linhas afetadas
5. Conjunto de resultados do processo: o método getxxxx do objeto ResultSet depende do tipo de campo na tabela no banco de dados. Por exemplo: Varchar2 corresponde ao getString, se for inteiro, o método correspondente é getint/getlong
While (rs.Next ()) {rs.getInt (columnIndex); // obtém o valor do campo através do número da coluna Rs.getString (columnName); // Obtenha o valor do campo através do nome da coluna Métodos comuns na interface ResultSet: antes de first (); Mova o cursor para o primeiro registro (frente de) no ResultSet Afterlast (); Move the cursor to the last record (after) in the ResultSet) absolute(intcolumn): Move the cursor to the specified row relative to the first row, and negative number is relative to the last record previous(): Move the cursor up one row next(): Move the cursor down one row ResultSet.TYPE_SCROLL_SENSITIVE The result set can be scrolled ResultSet.CONCUR_READ_ONLY The result set is read-only and cannot be modificado.6. Feche o recurso: Após a conclusão da operação, você deve fechar o JDBC para liberar os recursos do JDBC. Mas a ordem deve ser o oposto de quando você definir o objeto, assim como fechar a porta, fechando -o de dentro primeiro e fechando -o para fora.
O exemplo a seguir:
if (rs! = null) {// 1. Feche o conjunto de resultados, tente {rs.close (); } catch (sqLexception e) {e.printStackTrace (); }} if (stmt! = null) {// 2. Fechar o objeto declarado tente {stmt.close (); } catch (sqLexception e) {e.printStackTrace (); }} if (conn! = null) {// 3. Feche a conexão (lembre -se de fechar o 1.2 anterior primeiro. Em seguida, feche a conexão) tente {Conn.Close (); } catch (Exceção e) {e.printStackTrace (); }}2. Abaixo está um exemplo de dados de consulta simples (detalhado)
pacote javacore1; // Este é um nome de pacote que você criou. importar java.sql.callablestatement; importar java.sql.connection; importar java.sql.drivermanager; importar java.sql.preparedStatement; importar java.sql.resultset; // Os cinco à esquerda são os nomes de pacotes que você deseja importar ao escrever um programa. Lembre -se de ser pacotes sob java.sql. importar java.sql.sqLexception; importar java.sql.statement; public class jdbc {// define uma classe public static void main (string [] args) {// Método principal tente {string driver = "com.mysql.jdbc.driver"; // 1. Defina o driver do nome do driver como driver como com.mysql.jdbc.driver string url = "jdbc: mysql: // localhost: 3306/teste?" // 2. Definir URL; JDBC é o protocolo; MySQL é o subprotocolo: representa o nome de gerenciamento do sistema de banco de dados; LocalHost: 3306 é o endereço e a porta de destino da sua fonte de banco de dados; O teste é a localização da tabela que eu mesmo construí e você usa o seu como padrão. + "useUnicode = true & caracterEncoding = utf8"; // evita o código ilegal; useunicode = true significa usando o conjunto de caracteres Unicode; CaracterEncoding = UTF8 significa usar o UTF-8 para edição. String user = "h4"; // 3. Defina o nome do usuário e escreva o usuário ao qual deseja conectar. String pass = "111"; // 4. Senha do usuário. String querysql = "selecione * dos funcionários"; // 5. O nome da tabela que você deseja procurar. Class.ForName (Driver); // 6. Registre o driver e use Class.Froname () na classe aula abaixo do pacote java.lang; O motorista aqui é o driver definido em 1, ou classe.ForName ("com.mysql.jdbc.driver"); Conexão Conn = DriverManager.getConnection (URL, Usuário, Pass); // 7. Obtenha a conexão do banco de dados e use o getConnectin (URL da String, String Username, String Senha) do DriverManager em Java.SQL para concluir // o URL, Usuário, PASSIR PASSEIROS SÃO OS 2, 3 e 4 PASSAS DESTIFICADAS ACIMAIS; Instrução stmt = conn.createstatement (); // 8. Construa um objeto de declaração para executar a instrução SQL: Existem principalmente três instâncias de declaração, estatamento preparado e callablestatement para implementar // Os três métodos de implementação são: instrução stmt = con.createstatement (); // preparado estatamento pstmt = Conn.Preparestatement (SQL); // callablestatement cstmt = Conn.Preparecall ("{Call Demosp (?,?)}"); ResultSet rs = stmt.executeQuery (QuerySQL); // 9. Execute o SQL e devolva -o ao final; ResultSet ExecuteQuery (String sqlString): usado para retornar um objeto de conjunto de resultados (ResultSet). while (rs.Next ()) {//10.Transfere o resultado Set System.out.println ("Número do pessoal:"+rs.getString ("funcionário_id")+"salário:"+rs.getString ("Salário")+"Nome:"+rs.getString ("Last_Name"); ! = null) {// 11.close o conjunto de registros tente {rs.close (); } catch (sqLexception e) {e.printStackTrace (); }} if (stmt! = null) {// 12.close o objeto declarado tente {stmt.close (); } catch (sqLexception e) {e.printStackTrace (); }} if (stmt! = null) {// 12.close o objeto declarado tente {stmt.close (); } catch (sqLexception e) {e.printStackTrace (); }} if (conn! = null) {// 13. Feche a conexão (lembre -se de fechar os 11.12 anteriores primeiro. Em seguida, feche a conexão, assim como fechar a porta, fechar o interior primeiro e finalmente fechar o mais externo) tente {Conn.Close (); } catch (sqLexception e) {e.printStackTrace (); }}} catch (Exceção e) {e.printStackTrace (); }}}}3. Para ser mais intuitivo, encapsulamos a aquisição de conexões de banco de dados e libera conexões no método para facilitar uma melhor operação posteriormente.
pacote javacore1; importar java.sql.connection; importar java.sql.driverManager; public class jdbc {public static void main (string [] args) {conexão conn = getConnection ("h4", "111"); // Obter banco de dados conexão/*, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,, String passa) {conexão Conn = null; // Declare o objeto de conexão string driver = "com.mysql.jdbc.driver"; // classe de driver name string url = "jdbc: mysql: // localhost: 3306/teste?" // URL do banco de dados + "useUnicode = true & caracterEncoding = utf8"; // impedir o gado Try {Class.ForName (driver); // registre (carregar) driver conn = driverManager.getConnection (url, user, passa); // obtendo o banco de dados Connection} Catch (Exceção e) {E.PrintSTACHTRACE (); } retornar Conn; } // Libere a conexão do banco de dados public static void releaseConnection (conexão conn) {try {if (conn! = Null) conn.close (); } catch (Exceção e) {e.printStackTrace (); }}}4. Implemente onze funções de processamento de informações do banco de dados, como consulta, inserção, exclusão e atualização.
1. Dados de consulta
pacote javacore1; importar java.sql.connection; importar java.sql.driverManager; importar java.sql.resultset; importar java.sql.sqLexception; import java.sql.statement; public, consulher {public static vaid main (string "[] consulta de conexão com banco de dados (conn); // Nome do método Chamadas de conexão com o banco de dados ReleaseConnection (Conn); // Liberação do banco de dados Connection} // Dados de consulta, defina método de consulta public static void consulte (conexão conn) {string sql = "selecione * dos funcionários"; tente {declaração stmt = conn.createstatement (); // você também pode usar o preparado para fazer o resultado rs = stmt.executeQuery (sql); // Executar a instrução SQL e retornar o final enquanto (rs.Next ()) {// transfira o conjunto de resultados e vá para o próximo sistema de linha.out.println ("Número do pessoal:"+rs.getstring ("" } if (rs! = null) {tente {rs.close (); } catch (sqLexception e) {e.printStackTrace (); }} if (stmt! = null) {tente {stmt.close (); } catch (sqLexception e) {e.printStackTrace (); }} if (conn! = null) {try {Conn.Close (); } catch (sqLexception e) {e.printStackTrace (); }}} catch (Exceção e) {e.printStackTrace (); }} // Conexão do banco de dados Public Connection estática GetConnection (Usuário da String, String pass) {conexão Conn = null; // Declare o objeto de conexão Driver string driver = "com.mysql.jdbc.driver"; // classe Driver Name String URL = "JDBC: MySQL: // LocalHost: 3306/Test?" // URL do banco de dados + "useUnicode = true & caracterEncoding = utf8"; // impedir o gado Try {Class.ForName (driver); // registre (carregar) driver conn = driverManager.getConnection (url, user, passa); // obtendo o banco de dados Connection} Catch (Exceção e) {E.PrintSTACHTRACE (); } retornar Conn; } // Libere a conexão do banco de dados public static void releaseConnection (conexão conn) {try {if (conn! = Null) conn.close (); } catch (Exceção e) {e.printStackTrace (); }}} // consulta os dados e os resultados são exibidos em ordem reversa, pacote de pedidos reversos javacore1; importar java.sql.connection; importar java.sql.driverManager; import java.sql.ResultSet; import Java.Sql.SqLeyCception; import java.sql.StatioMeat; Conn = getConnection ("H4", "111"); // Obter consulta de conexão com o banco de dados (Conn); // O nome do método chama a conexão do banco de dados ReleaseConnection (Conn); // Libere a conexão com o banco de dados} // Consulte os dados, defina o método de consulta public static void consulta (conexão conn) {string sql = "selecione * dos funcionários"; tente {declaração stmt = conn.createstatement (); // Você também pode usar o preparado para fazer o resultado rs = stmt.executeQuery (sql); // executar a instrução sql e retornar o final rs.afterlast (); // Pule para a última linha primeiro, enquanto (Rs.Previous ()) {// transfira a configuração de resultado e suba o line System.out.println ("Número do pessoal:"+rs.getString ("funcionário_id")+"salário:"+rs.getString ("salário")); } if (rs! = null) {tente {rs.close (); } catch (sqLexception e) {e.printStackTrace (); }} if (stmt! = null) {tente {stmt.close (); } catch (sqLexception e) {e.printStackTrace (); }} if (conn! = null) {try {Conn.Close (); } catch (sqLexception e) {e.printStackTrace (); }}}} catch (Exceção e) {e.printStackTrace (); }} // Conexão do banco de dados Public Connection estática GetConnection (Usuário da String, String pass) {conexão Conn = null; // Declare o objeto de conexão Driver string driver = "com.mysql.jdbc.driver"; // classe Driver Name String URL = "JDBC: MySQL: // LocalHost: 3306/Test?" // URL do banco de dados + "useUnicode = true & caracterEncoding = utf8"; // impedir o gado Try {Class.ForName (driver); // registre (carregar) driver conn = driverManager.getConnection (url, user, passa); // obtendo o banco de dados Connection} Catch (Exceção e) {E.PrintSTACHTRACE (); } retornar Conn; } // Libere a conexão do banco de dados public static void releaseConnection (conexão conn) {try {if (conn! = Null) conn.close (); } catch (Exceção e) {e.printStackTrace (); }}}2. Insira dados
pacote javacore1; importar java.sql.connection; importar java.sql.driverManager; importar java.sql.sqLexception; importar java.sql.statement; public class insert {public static void main (string [] args) {Connection = getConnection ("h3", "11"; // Obter Inserção de conexão com o banco de dados (Conn); // Nome do método Chamadas de conexão de banco de dados ReleaseConnection (Conn); // Libere o banco de dados Connection} // Insira dados public static void insert (conexão conn) {try {string sql = "inserir em funcionários (funcionários_id, last_name, salário, departamento_id, userID)" + "valores ('100010', 'xiaogou', '7000', '004', 9 '); // instrução SQL para inserção de dados de dados sTMT1 = Conn.Createstatement (); // Crie objeto de instrução para executar a instrução static sql int count = stmt1.executeUpdate (SQL); // instrução SQL para executar operação de inserção e retornar o número de dados de dados inseridos.out.println ("inserido" + count + "dados"); // Saída do resultado da operação de inserção Conn.Close (); // Fechar a conexão com o banco de dados} catch (sqLexception e) {e.printStackTrace (); }} // Conexão do banco de dados Public Connection estática GetConnection (Usuário da String, String pass) {conexão Conn = null; // Declare o objeto de conexão Driver string driver = "com.mysql.jdbc.driver"; // classe Driver Name String URL = "JDBC: MySQL: // LocalHost: 3306/Test?" // URL do banco de dados + "useUnicode = true & caracterEncoding = utf8"; // impedir o gado TRY {Class.ForName (driver); // registre (carregue) o driver Conn = DriverManager.getConnection (URL, User, Pass); // Get Database Connection} Catch (Exceção E) {E.PrintSTACHTRACE (); } retornar Conn; } // Libere a conexão do banco de dados public static void releaseConnection (conexão conn) {try {if (conn! = Null) conn.close (); } catch (Exceção e) {e.printStackTrace (); }}}3. Exclua dados
pacote javacore1; importar java.sql.connection; importar java.sql.driverManager; importar java.sql.sqLexception; importar java.sql.statement; public class Delete {public static void main (string [] args) {Connection = getConnection ("h3", "11"; // Obter conexão com o banco de dados Excluir (Conn); // Nome do método Chama a conexão do banco de dados; releaseConnection (Conn); // Liberar conexão com o banco de dados} // excluir dados public static void delete (conexão conn) {string sql = "exclua de funcionários onde funcionário_id = 100009"; tente {declaração stmt = conn.createstatement (); // ou use o método de estatamento preparado stmt.executeUpdate (sql); // execute a instrução sql if (stmt! = null) {tente {stmt.close (); } catch (sqLexception e) {e.printStackTrace (); }}} catch (sqLexception e) {E.printStackTrace (); }}} // Conexão do banco de dados Public Static Connection GetConnection (Usuário da String, String pass) {Connection Conn = null; // Declare o objeto de conexão Driver String driver = "com.mysql.jdbc.driver"; // classe Driver Name String Url = "JDBC: MySQL: // LocalHost: 3306/Testes? // URL do banco de dados + "useUnicode = true & caracterEncoding = utf8"; // impedir o gado Try {Class.ForName (driver); // registre (carregar) driver conn = driverManager.getConnection (url, user, passa); // obtendo o banco de dados Connection} Catch (Exceção e) {E.PrintSTACHTRACE (); } retornar Conn; } // Libere a conexão do banco de dados public static void releaseConnection (conexão conn) {try {if (conn! = Null) conn.close (); } catch (Exceção e) {e.printStackTrace (); }}}4. Atualizar dados
pacote javacore1; importar java.sql.connection; importar java.sql.driverManager; importar java.sql.sqLexception; importar java.sql.statement; public class update {public static void main (string [] args) {Connection = getConnection ("h3" "11" 11 "11"; // Obter update de conexão com o banco de dados (Conn); // Nome do método Chamadas de conexão com o banco de dados ReleaseConnection (Conn); // Liberação do banco de dados Connection} // Atualize dados public static void update (conexão Conn) {string sql = "Atualizar funcionários Defina salário = 8000 onde funcionário_id = 100005"; tente {declaração stmt1 = conn.createstatement (); // ou use o método de estatamento preparado stmt1.executeUpdate (sql); // execute a instrução sql if (stmt1! = null) {try {stmt1.close (); } catch (sqLexception e) {e.printStackTrace (); }}} catch (sqLexception e) {E.printStackTrace (); }} // Conexão do banco de dados Public Connection estática GetConnection (Usuário da String, String pass) {conexão Conn = null; // Declare o objeto de conexão Driver string driver = "com.mysql.jdbc.driver"; // classe Driver Name String URL = "JDBC: MySQL: // LocalHost: 3306/Test?" // URL do banco de dados + "useUnicode = true & caracterEncoding = utf8"; // impedir o gado Try {Class.ForName (driver); // registre (carregar) driver conn = driverManager.getConnection (url, user, passa); // obtendo o banco de dados Connection} Catch (Exceção e) {E.PrintSTACHTRACE (); } retornar Conn; } // Libere a conexão do banco de dados public static void releaseConnection (conexão conn) {try {if (conn! = Null) conn.close (); } catch (Exceção e) {e.printStackTrace (); }}}5. Transferência (transações)
O JDBC lida com transações através do compromisso automático de conexões de fechamento:
Connection.SetAutocomit (false);
Enviar transação:
Connection.Commit ();
Rollback Rollback Rollback Part:
Connection.Rollback (SavePoint);
Role de volta tudo:
Connection.rollback ();
package javacore1;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class TransCash { public static void main(String[] args) { Connection conn = getConnection("h3", "111111");// Get the database connection transCash(conn); // Nome do método chama a conexão do banco de dados ReleaseConnection (Conn); // Libere a conexão com o banco de dados} // Transfer (conversão de dados) (os dados originais foram de 100 e 500, mas após a implementação dessa função, torna -se 500 e 100. De fato, para colocar a conexão com a conexão e alterar os dados). tente {Conn.SetAutocomit (false); // Fechar string automática de envio sql = "Atualizar funcionários define o salário = 500 onde funcionário_id = 100001"; stmt = conn.createstatement (); stmt.executeUpdate (SQL); sql = "Atualizar funcionários define o salário = 100 onde funcionário_id = 100002"; stmt.executeUpdate (SQL); // Executar a instrução SQL, os dois salários acima serão trocados // int i = 1/0; Nesse caso, a tarefa não será concluída, porque isso é uma coisa completa e, se houver um pouco de falha, tudo falhará Conn.Commit (); // Commitem Transaction} Catch (Exceção e) {E.printStackTrace (); } finalmente {try {if (stmt! = null) {stmt.close (); } catch (Exceção e) {e.printStackTrace (); }}} // Conexão do banco de dados Public Static Connection GetConnection (Usuário da String, String pass) {Connection Conn = null; // Declare o objeto de conexão Driver String driver = "com.mysql.jdbc.driver"; // classe Driver Name String Url = "JDBC: MySQL: // LocalHost: 3306/Testes? // URL do banco de dados + "useUnicode = true & caracterEncoding = utf8"; // impedir o gado Try {Class.ForName (driver); // registre (carregar) driver conn = driverManager.getConnection (url, user, passa); // obtendo o banco de dados Connection} Catch (Exceção e) {E.PrintSTACHTRACE (); } retornar Conn; } // Libere a conexão do banco de dados public static void releaseConnection (conexão conn) {try {if (conn! = Null) conn.close (); } catch (Exceção e) {e.printStackTrace (); }}}6. Encontre procedimentos armazenados sem parâmetros
pacote javacore1; importar java.sql.callablestatement; importar java.sql.connection; importar java.sql.driverManager; importar java.sql.sqLexception; public classe execproc {public static void main (string [] args) {conexão de conexão = getconnection (getconnection (public static void, string [] args) {conexão; // Obter conexão de banco de dados ExEcProc (Conn); // Nome do método Chamadas de banco de dados Connection ReleaseConnection (Conn); // Liberação do banco de dados Connection} // Ligue para o procedimento armazenado sem armação; public static void Execproc (conexão conn) {string sql = "{Call Raisesalary}"; tente {callablestatement cstmt = Conn.Preparecall (SQL); cstmt.executeUpdate (); } catch (sqLexception e) {e.printStackTrace (); }} // Conexão do banco de dados Public Connection estática GetConnection (Usuário da String, String pass) {conexão Conn = null; // Declare o objeto de conexão Driver string driver = "com.mysql.jdbc.driver"; // classe Driver Name String URL = "JDBC: MySQL: // LocalHost: 3306/Test?" // URL do banco de dados + "useUnicode = true & caracterEncoding = utf8"; // impedir o gado Try {Class.ForName (driver); // registre (carregar) driver conn = driverManager.getConnection (url, user, passa); // obtendo o banco de dados Connection} Catch (Exceção e) {E.PrintSTACHTRACE (); } retornar Conn; } // Libere a conexão do banco de dados public static void releaseConnection (conexão conn) {try {if (conn! = Null) conn.close (); } catch (Exceção e) {e.printStackTrace (); }}}7. Encontre procedimentos armazenados com parâmetros
pacote javacore1; importar java.sql.callablestatement; importar java.sql.connection; importar java.sql.driverManager; importar java.sql.types; classe pública getMulti {public static void main (string [] args) {conexão = conexão =; // Obter conexão com o banco de dados int cnt = getMulti (conn); // Encontre procedimentos armazenados; System.out.println ("Número das pessoas:" + CNT); releaseConnection (Conn); // Liberação do banco de dados Connection} // O processo de pesquisa possui parâmetros public static int getMulti (conexão conn) {int dept_id = 100001; int cnt = 0; String sql = "{ligue para calc_emp_count (?,?)}"; tente {callablestatement cstmt = Conn.Preparecall (sql); // inicialize o objeto de instrução cstmt.setInt (1, dept_id); // callablestatement.setxxx (parâmetro, valor) ou (número, valor) e preparado.Setxx (número, valor) pode ser apenas parecido; // cstmt.registeroutParameter (2, types.integer); // Declare o parâmetro de saída cstmt.executeUpdate (); // execute a instrução sql cnt = cstmt.getint (2); // obtenha o resultado (cstmt! = null) {cstmt.close (); E.PrintStackTrace (); } retornar CNT; } // Conexão do banco de dados Public Static Connection GetConnection (Usuário da String, String Pass) {Connection Conn = null; // Declare o objeto de conexão String driver = "com.mysql.jdbc.driver"; // classe Driver Name String URL = "JDBC: MySql: // LocalHost: 3306/Test?" // URL do banco de dados + "useUnicode = true & caracterEncoding = utf8"; // impedir o gado Try {Class.ForName (driver); // registre (carregar) driver conn = driverManager.getConnection (url, user, passa); // obtendo o banco de dados Connection} Catch (Exceção e) {E.PrintSTACHTRACE (); } retornar Conn; } // Libere a conexão do banco de dados public static void releaseConnection (conexão conn) {try {if (conn! = Null) conn.close (); } catch (Exceção e) {e.printStackTrace (); }}}8. Processamento comum
pacote javacore1; importar java.sql.connection; importar java.sql.date; importar java.sql.driverManager; importar java.sql.preparedStatement; import java.sql.SqLexception; classe pública Planinsert {public static void (string [] "111111"); // obtenha o PlanInsert de conexão do banco de dados (Conn); // Nome do método Chamadas de conexão de banco de dados ReleaseConnection (Conn); // Libere a conexão com o banco de dados} // Processamento comum de public estático void planInsert (conexão conn) {try {string sql = "inserir em test_user1 (userID, nome de usuário, tempo de carga)" + "valores (?,? ,?)"; // instrução sql para inserir dados preparados estatamentos pstmt = conn.preparestatement (sql); long startTime = System.currenttimemillis (); for (int i = 0; i <1000; i ++) {pstmt.setlong (1, i); Pstmt.SetString (2, "Usuário"+I); pstmt.setDate (3, New Date (System.CurrentTimemillis ())); pstmt.executeUpdate (); } System.out.println ("Tempo total necessário:"+(System.currenttimemillis () - StartTime)); pstmt.close (); // Fechar a conexão com o banco de dados} catch (sqLexception e) {e.printStackTrace (); }} // Conexão do banco de dados Public Connection estática GetConnection (Usuário da String, String pass) {conexão Conn = null; // Declare o objeto de conexão Driver string driver = "com.mysql.jdbc.driver"; // classe Driver Name String URL = "JDBC: MySQL: // LocalHost: 3306/Test?" // URL do banco de dados + "useUnicode = true & caracterEncoding = utf8"; // impedir o gado Try {Class.ForName (driver); // registre (carregar) driver conn = driverManager.getConnection (url, user, passa); // obtendo o banco de dados Connection} Catch (Exceção e) {E.PrintSTACHTRACE (); } retornar Conn; } // Libere a conexão do banco de dados public static void releaseConnection (conexão conn) {try {if (conn! = Null) conn.close (); } catch (Exceção e) {e.printStackTrace (); }}}9. Processamento em lote
Obtenha o padrão de transação JDBC original:
CurrentTransactionModle booleano = CON.GETAUTOCOMIT ();
Defina como modo de transação (Off Automatic Commit):
Con.SetAutocomit (false);
Declaração stm = con.createstatement ();
Três declarações SQL heterogêneas:
String sql1 = "Exclua do usuário onde id = 8";
String sql2 = "Atualize o nome do conjunto de usuários = 'java' onde id = 7";
String sql3 = "inserir no usuário (nome, senha) valores ('jdbc', 'jdbc')";
Adicione ao buffer de processamento de lote da declaração:
stm.addbatch (SQL1);
stm.addbatch (SQL2);
stm.addbatch (SQL3);
Execute atualizações de lote:
stm.executeBatch ();
Envie transações para esta atualização em lote:
con.Commit ();
Responder ao modo de transação original:
Con.SetAutocommit (CurrentTransactionModle);
pacote javacore1; importar java.sql.connection; importar java.sql.date; importar java.sql.driverManager; importar java.sql.preparedStatement; import java.sql.sqlException; classe Batchinsert {public static sant maid (string string (strings) "111111"); // Obter conexão de banco de dados Batchinsert (Conn); // Nome do método Chamadas de conexão de banco de dados ReleaseConnection (Conn); // Liberar conexão com o banco de dados} // A velocidade da inserção em lote é mais rápida que a do processamento comum public estático void Batchinsert (conexão conn) {try {string sql = "insert em test_user1 (userID, nome de usuário, carregamento de tempo)" + "valores (?,?)"; // A instrução SQL que insere dados preparou o PSTMT = Conn.Preparestatement (SQL); long startTime = System.currenttimemillis (); for (int i = 0; i <1000; i ++) {pstmt.setlong (1, i); Pstmt.SetString (2, "Usuário"+I); pstmt.setDate (3, New Date (System.CurrentTimemillis ())); pstmt.addbatch (); // Adicionar ao processamento em lote} int [] resultado = pstmt.executeBatch (); System.out.println ("Tempo total gasto:"+(System.CurrentTimemillis () - StartTime)); pstmt.close (); // Fechar a conexão com o banco de dados} catch (sqLexception e) {e.printStackTrace (); }} // Conexão do banco de dados Public Connection estática GetConnection (Usuário da String, String pass) {conexão Conn = null; // Declare o objeto de conexão Driver string driver = "com.mysql.jdbc.driver"; // classe Driver Name String URL = "JDBC: MySQL: // LocalHost: 3306/Test?" // URL do banco de dados + "useUnicode = true & caracterEncoding = utf8"; // impedir o gado Try {Class.ForName (driver); // registre (carregar) driver conn = driverManager.getConnection (url, user, passa); // obtendo o banco de dados Connection} Catch (Exceção e) {E.PrintSTACHTRACE (); } retornar Conn; } // Libere a conexão do banco de dados public static void releaseConnection (conexão conn) {try {if (conn! = Null) conn.close (); } catch (Exceção e) {e.printStackTrace (); }}}10. Exibição de paginação
pacote javacore1; importar java.sql.connection; importar java.sql.driverManager; importar java.sql.preparedStatement; importar java.sql.ResultSet; import java.sql.sqlex; "111111"); // Obtenha paging de conexão com o banco de dados (Conn, 1,3); // Nome do método chama de conexão com o banco de dados e defina qual linha exibir para qual linha ReleaseConnection (Conn); // Libere a conexão com o banco de dados} // Página Query Public Static Pagging * Select * Select (conexão Conn, Int StartIndex, int Total) {Try {String sql = " * Select * Select * Select * Select * Select * Select (From Folly) (Int StartIndex, int Total) {tentativa {String sql =" * Select * Select * Select * Select * Select * Select * Select * Select * Select * Select (FILMO FILL LIMITE? Preparado PSTMT = Conn.Preparestatement (SQL); pstmt.setInt (1, startIndex); pstmt.setInt (2, total); ResultSet rs = pstmt.executeQuery (); while (rs.Next ()) {System.out.print ("Número de trabalho:"+rs.getInt (1)); System.out.println ("Número do departamento:"+rs.getInt ("departamento_id")); } rs.close (); pstmt.close (); } catch (sqLexception e) {e.printStackTrace (); }} // Conexão do banco de dados Public Connection estática GetConnection (Usuário da String, String pass) {conexão Conn = null; // Declare o objeto de conexão Driver string driver = "com.mysql.jdbc.driver"; // classe Driver Name String URL = "JDBC: MySQL: // LocalHost: 3306/Test?" // URL do banco de dados + "useUnicode = true & caracterEncoding = utf8"; // impedir o gado Try {Class.ForName (driver); // registre (carregar) driver conn = driverManager.getConnection (url, user, passa); // obtendo o banco de dados Connection} Catch (Exceção e) {E.PrintSTACHTRACE (); } retornar Conn; } // Libere a conexão do banco de dados public static void releaseConnection (conexão conn) {try {if (conn! = Null) conn.close (); } catch (Exceção e) {e.printStackTrace (); }}}11. O conjunto de resultados pode ser rolado
package javacore1;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class ScrpllResult { public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Obter conexão com o banco de dados scrpllResult (conn); // nome do método chama de conexão com o banco de dados ReleaseConnection (Conn); // Libere a conexão com o banco de dados} // role o resultado para exibir public static void scrollResult (conexão conn) {try {string sql = "selecione * de funcionários"; // rolagem pode ser rolada // simultaneidade, o conjunto de resultados é somente leitura e o estatuto preparado não pode ser modificado. Preparado PSTMT = Conn.Preparestatement (SQL, ResultSet.type_scroll_sensitive, ResultSet.Concur_Read_only); ResultSet rs = pstmt.executeQuery (); while (rs.Next ()) {// Travel System.out.print ("Número de trabalho:"+rs.getlong (1)); System.out.println ("nome"+rs.getString ("last_name")); } while (rs.previous ()) {// Travel System.out.print ("Número de trabalho:"+rs.getlong (1)); System.out.println ("Número de trabalho:"+rs.getlong (1)); } rs.absolute (6); // viaja diretamente para a linha if (rs.next ()) {System.out.print ("Número de trabalho:"+rs.getlong (1)); System.out.println ("......... Número do departamento:"+rs.getString ("department_id")); } rs.close (); pstmt.close (); } catch (sqLexception e) {e.printStackTrace (); } } //Database connection public static Connection getConnection(String user, String pass) { Connection conn = null;//Declare the connection object String driver = "com.mysql.jdbc.Driver";// Driver class name String url = "jdbc:mysql://localhost:3306/test?" // Database URL + "useUnicode=true&characterEncoding=UTF8";// Prevent garbled try { Class.forName(driver);// Register (load) driver conn = DriverManager.getConnection(url, user, pass);// Get database connection} catch (Exception e) { e.printStackTrace(); } return conn; }// Release database connection public static void releaseConnection(Connection conn) { try { if (conn != null) conn.close(); } catch (Exception e) { e.printStackTrace(); } }}五.把上面十一个放在一起当然最方便省事。(需要用谁,只需把前面的注释打开便行)
package javacore1;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Statement;import java.sql.Types;public class jdbcMySql {public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Get database connection //query(conn); //1. Query data //insert(conn); //2. Insert data //delete(conn); //3. Delete data //update(conn); //4. Update data //transCash(conn); //5. Transfer//execProc(conn); //6. Find stored procedures without parameters //int cnt = getMulti(conn); //7. Find stored procedures with parameters //System.out.println("People number: " + cnt); //Find stored procedures with parameters //planInsert(conn); //8. Ordinary processing //batchInsert(conn); //9. Batch processing // paging(conn,1,3);//10. Pagination display//scrpllResult(conn);//11. The result set can be scrolled to releaseConnection(conn);// Release database connection}//1. Query data, define query method public static void query(Connection conn){ String Sql="select * from employees"; try{ Statement stmt=conn.createStatement(); // You can also use PreparedStatement to do ResultSet rs=stmt.executeQuery(Sql);//Execute the sql statement and return the end while(rs.next()){//Transfer the result set System.out.println("People number:"+rs.getString("employee_id")+"Salary:"+rs.getString("salary")); } if(rs !=null){ try{ rs.close(); } catch (SQLException e){ e.printStackTrace(); } } if(stmt !=null){ try{ stmt.close(); } catch(SQLException e){ e.printStackTrace(); } } if(conn !=null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } } } catch(Exception e){ e.printStackTrace(); }}//2. Insert data public static void insert(Connection conn) { try { String sql = "insert into employees(employee_id,last_name,salary,department_id,userid)" + " values ('100010', 'xiaogou', '7000','004','9')"; // SQL statement Statement stmt1 =conn.createStatement(); // Create a Statement object for executing static SQL statements int count = stmt1.executeUpdate(sql); // Execute the SQL statement for insertion operation and return the number of inserted data System.out.println("Inserted" + count + "bar of data" into biao); //Output the processing result of the insertion operation conn.close(); //Close the database connection} catch (SQLException e) { e.printStackTrace(); } }//3. Delete data public static void delete(Connection conn){ String Sql = "delete from employees where employee_id=100009"; try { Statement stmt = conn.createStatement();// Or use the PreparedStatement method stmt.executeUpdate(Sql);// Execute the sql statement if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } catch (SQLException e) { e.printStackTrace(); } } }//4. Update data public static void update(Connection conn){ String Sql = "update employees set salary=8000 where employee_id=100005"; try { Statement stmt1 = conn.createStatement();//Or use PreparedStatement method stmt1.executeUpdate(Sql);//Execute the sql statement if (stmt1 != null) { try { stmt1.close(); } catch (SQLException e) { e.printStackTrace(); } } catch (SQLException e) { e.printStackTrace(); } } //5. Transfer (data exchange) (The original data was 100 and 500, but after implementing this function, it becomes 500 and 100. In fact, to put it bluntly, it is to update the data and change the data) public static void transCash(Connection conn){ Statement stmt = null; try{ conn.setAutoCommit(false);//Close automatic submission String sql = "update employees set salary=500 where employee_id=100001"; stmt = conn.createStatement(); stmt.executeUpdate(sql); sql = "update employees set salary=100 where employee_id=100001"; stmt = conn.createStatement(); stmt.executeUpdate(sql); sql = "update employees set salary=100 where employee_id=100002"; stmt.executeUpdate(sql);//Execute the sql statement, and the above two salaries will be replaced by conn.commit();//Commit transaction}catch(Exception e){ e.printStackTrace(); } finally{ try{ if(stmt != null)stmt.close(); } catch(Exception e){ e.printStackTrace(); } } } }//6. Call the stored procedure without a parameter; public static void execProc(Connection conn){ String sql = "{call raisesalary}"; try { CallableStatement cstmt = conn.prepareCall(sql); cstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } //7. Find stored procedures with parameters public static int getMulti(Connection conn) { int dept_id = 100001; int cnt = 0; String sql = "{call calc_emp_count(?,?)}"; try { CallableStatement cstmt = conn.prepareCall(sql);//Initialize the Statement object cstmt.setInt(1, dept_id);//CallableStatement.setxxx(parameter, value) or (number, value), and PreparedStatement.setxxx(number, value) can only be like this cstmt.setInt(2, cnt); // cstmt.registerOutParameter(2, Types.INTEGER);//Declare the output parameter cstmt.executeUpdate();//Execute the sql statement cnt = cstmt.getInt(2);//Get the result if (cstmt != null) { cstmt.close();//Release the Statement object} } catch (Exception e) { e.printStackTrace(); } return cnt; }//8. Normal processing public static void planInsert(Connection conn) { try { String sql = "insert into test_user1(userid,username,loadingtime)" + " values (?,?,?)"; // SQL statement to insert data PreparedStatement pstmt=conn.prepareStatement(sql); long startTime=System.currentTimeMillis(); for(int i=0;i<1000;i++){ pstmt.setLong(1, i); pstmt.setString(2, "user"+i); pstmt.setDate(3, new Date(System.currentTimeMillis())); pstmt.executeUpdate(); } System.out.println("Total time taken: "+(System.currentTimeMillis() - startTime)); pstmt.close(); //Close the database connection} catch (SQLException e) { e.printStackTrace(); } } //9. The speed of batch insertion is faster than that of ordinary processing public static void batchInsert(Connection conn) { try { String sql = "insert into test_user1(userid,username,loadingtime)" + " values (?,?,?)"; // SQL statement that inserts data PreparedStatement pstmt=conn.prepareStatement(sql); long startTime=System.currentTimeMillis(); for(int i=0;i<1000;i++){ pstmt.setLong(1, i); pstmt.setString(2, "user"+i); pstmt.setDate(3, new Date(System.currentTimeMillis())); pstmt.addBatch();//Add to batch processing} int[] result=pstmt.executeBatch(); System.out.println("Total time consumed: "+(System.currentTimeMillis() - startTime)); pstmt.close(); //Close the database connection} catch (SQLException e) { e.printStackTrace(); } }//10. Pagination query public static void paging(Connection conn,int startIndex,int total){ try{ String sql="select * from employees limit ?,?"; PreparedStatement pstmt=conn.prepareStatement(sql); pstmt.setInt(1, startIndex); pstmt.setInt(2, total); ResultSet rs=pstmt.executeQuery(); while(rs.next()){ System.out.print("work number: "+rs.getInt(1)); System.out.println("Department number: "+rs.getInt("department_id")); }rs.close(); pstmt.close(); }catch(SQLException e){ e.printStackTrace(); } }//11. The result set scrolls to display public static void scrollResult(Connection conn){ try{ String sql="select * from employees"; //The result set can be scrolled//concurrency, the result set is read-only, and the PreparedStatement pstmt=conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs=pstmt.executeQuery(); while(rs.next()){ //Travel System.out.print("work number: "+rs.getLong(1)); System.out.println("name"+rs.getString("last_name")); }while(rs.previous()){//Travel System.out.print("work number: "+rs.getLong(1)); System.out.println("salary"+rs.getInt("salary")); } rs.absolute(6);//Indicate which line to jump directly to if(rs.next()){ System.out.print("work number: "+rs.getLong(1)); System.out.println("........Department number: "+rs.getString("department_id")); } rs.close(); pstmt.close(); } catch(SQLException e){ e.printStackTrace(); } } //Database connection public static Connection getConnection(String user, String pass) { Connection conn = null;//Declare the connection object String driver = "com.mysql.jdbc.Driver";// Driver class name String url = "jdbc:mysql://localhost:3306/test?" // Database URL + "useUnicode=true&characterEncoding=UTF8";// Prevent garbled try { Class.forName(driver);// Register (load) driver conn = DriverManager.getConnection(url, user, pass);// Get database connection} catch (Exception e) { e.printStackTrace(); } return conn; }// Release database connection public static void releaseConnection(Connection conn) { try { if (conn != null) conn.close(); } catch (Exception e) { e.printStackTrace(); }}}六.安装下载的数据库驱动程序jar包,不同的数据库需要不同的驱动程序(但是安装方法都是一样的)
在使用JDBC编程时需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此,导入的方法是
打开eclipse
1.右击要导入jar包的项目,点properties
2.左边选择java build path,右边选择libraries
3.选择add External jars
4.选择jar包的按照路径下的确定后就行了。
Java连接MySQL的最新驱动包下载地址
http://www.mysql.com/downloads/connector/j
1.鼠标放在你建的根目录上面。右击,然后选择最下面的properties。
2.然后左边选择java build path,右边选择libraries ,在选择右边的add External jars ,选择jar包的路径,点击确定就可以了
3.装好后,图如下出现你要添加的包。