Contenido principal:
1. Pasos de base de datos de conexión JDBC (editar) (hay principalmente seis pasos)
1. Registre el controlador: class.forname ("com.mysql.jdbc.driver"); Mostrar carga en el JVM
2. Obtenga la conexión: (1) Param1: La URL para conectarse a la base de datos -----》 String url = "JDBC: mySql: // localhost: 3306/test?"+ "UseUnicode = true & caracterSencoding = utf8"; // Pediendo código de código confundido =
param2: nombre de usuario para conectarse a la base de datos--》 string user = "h4";
Param3: contraseña para conectarse a la base de datos ----》》 string pass = "111";
Conexión conn = drivermanager.getConnection (url, usuario, pase); // Métodos en Drivermanager: getConnection (url de cadena, nombre de usuario de cadena, contraseña de cadena)
(2) A continuación, analizamos la URL: "JDBC (este protocolo comienza con JDBC): MySQL (este es un subprotocol, nombre del sistema de administración de bases de datos): // Localhost (dirección de fuente de base de datos): 3306 (puerto de destino)/prueba (tabla de tabla para ser considerado)"? "?"
"UseUnicode = true & caracterSencoding = utf8"; Esto se agrega para evitar el código confuso, y se especifica para usar conjuntos de caracteres Unicode y editarlos usando UTF-8.
3. Cree un objeto de declaración de instrucción (tres métodos principales): Declaración stmt = conn.createStatement (); // Métodos bajo la interfaz de conexión: Declaración createStatement ()
Preparado PSTMT = Conn.PreparedStatement ();
CallableStatement cstmt = conn.prepareCall ("{llamar demostración (?,?)}");
Analicemos a continuación: (1) La diferencia entre la declaración y los objetos de estatemación preparada, que pueden establecer dinámicamente los parámetros de consulta
(2) Método para configurar los parámetros PrepareStatement.SetXXXX (ParameterIndex, valor). Si el tipo de parámetro de base de datos es Varchar, se usa SetString. Si el tipo de parámetro es entero, se usa setint.
(3) CallableStatement.SetXXXX (ParameterIndex, Value) // Establecer valor en el orden de parámetros
CallableStatement.SetXXXX (Parametername, Value) // Establecer valor según el nombre del parámetro. Este nombre es el nombre del parámetro formal al definir el procedimiento almacenado.
(4) CallableStatement. El método RegisterOutParameter se utiliza para declarar un parámetro del tipo de salida de un procedimiento almacenado para recibir el valor de salida del procedimiento almacenado
4. Ejecutar la instrucción SQL: ResultSet rs = stmt.executeQuery (sql); Excepto por la declaración de consulta, ejecuteQuery (); Todo lo demás se ejecuta Update ();
Métodos en interfaz de declaración:
boolean ejecute (string sql): ejecutar sql instrucción, verdadero si el valor de retorno es el conjunto de resultados, de lo contrario falso
ResultSet ExecuteQuery (String SQL): Execute SQL Declaración, Valor de retorno es ResultSet
int ejecuteUpdate (string sql): ejecutar sql instrucción, el valor de retorno es el número de filas afectadas
5. Conjunto de resultados del proceso: el método getxxxx del objeto de conjunto de resultados depende del tipo de campo en la tabla en la base de datos. Por ejemplo: VARCHAR2 corresponde a GetString, si es entero, el método correspondiente es GetInt/GetLong
While (rs.next ()) {rs.getInt (columnIndex); // Obtener el valor del campo a través del número de columna rs.getString (columnName); // Obtener el valor del campo a través del nombre de la columna Métodos comunes en la interfaz de resultados de resultados: antes de antes (); Mueva el cursor al primer registro (frontal) en el resultado de resultados de resultados (); Mueva el cursor al último registro (después) en el conjunto de resultados) Absolute (intColumn): mueva el cursor a la fila especificada relativa a la primera fila, y el número negativo es relativo al último registro anterior (): mueva la fila de una fila siguiente (): mover el resultado de una fila no se puede modificar.6. Cierre el recurso: después de completar la operación, debe cerrar JDBC para liberar los recursos JDBC. Pero el orden debe ser lo contrario de cuando define el objeto, al igual que cerrar la puerta, cerrarla desde el interior primero y cerrarlo hacia afuera.
El siguiente ejemplo:
if (rs! = null) {// 1. Cierre el conjunto de resultados, intente {rs.close (); } Catch (Sqlexception e) {E.PrintStackTrace (); }} if (stmt! = null) {// 2. Cierre el objeto declarado intente {stmt.close (); } Catch (Sqlexception e) {E.PrintStackTrace (); }} if (conn! = null) {// 3. Cierre la conexión (recuerde cerrar el 1.2 anterior primero. Luego cierre la conexión) intente {conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}2. A continuación se muestra un ejemplo de datos de consulta simple (detallado)
paquete javacore1; // Este es un nombre de paquete que construyó. import java.sql.callableStatement; import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedStatement; import java.sql.resultset; // Los cinco de la izquierda son los nombres de los paquetes que desea importar al escribir un programa. Recuerde ser paquetes bajo Java.SQL. import java.sql.sqlexception; import java.sql.statement; public class jdbc {// Definir una clase public static void main (string [] args) {// método principal intenta {string driver = "com.mysql.jdbc.driver"; // 1. Defina el controlador del nombre del controlador como controlador como com.mysql.jdbc.driver string url = "jdbc: mysql: // localhost: 3306/test?" // 2. Definir URL; JDBC es el protocolo; MySQL es el subprotocol: representa el nombre de administración del sistema de la base de datos; Localhost: 3306 es la dirección y el puerto de destino de la fuente de su base de datos; La prueba es la ubicación de la tabla que construí yo mismo, y usted usa el suyo como estándar. + "UseUnicode = true & caracterSencoding = utf8"; // evitar el código confuso; UseUnicode = true medios usando un conjunto de caracteres Unicode; caracterSencoding = UTF8 significa usar UTF-8 para la edición. String user = "H4"; // 3. Defina el nombre de usuario y escriba el usuario al que desea conectarse. String pass = "111"; // 4. Contraseña de usuario. String Querysql = "Seleccionar * de los empleados"; // 5. El nombre de la tabla que desea buscar. Class.forname (controlador); // 6. Registre el controlador y use class.froname () en la clase de clase debajo del paquete java.lang; El controlador aquí es el controlador definido en 1, o class.forname ("com.mysql.jdbc.driver"); Conexión conn = drivermanager.getConnection (url, usuario, pase); // 7. Obtenga la conexión de la base de datos y use la getConnectin (URL de cadena, nombre de usuario de cadena, contraseña de cadena) de Drivermanager en java.sql para completar // la URL, el usuario, el paso entre paréntesis son los 2, 3 y 4 pasos definidos anteriormente; Instrucción stmt = conn.createStatement (); // 8. Construya un objeto de declaración para ejecutar la instrucción SQL: Existen principalmente tres instancias de declaración, preparación y callAblEtatement para implementar // Los tres métodos de implementación son: Declaración STMT = Con.CreateStatement (); // PrepareStatement pstmt = conn.prepareStatement (SQL); // CallableStatement cstmt = conn.prepareCall ("{llamar demostración (?,?)}"); ResultSet rs = stmt.executeQuery (Querysql); // 9. Ejecutar SQL y devuélvalo al final; ResultSet ExecuteQuery (String SQLString): se usa para devolver un objeto establecido de resultados (ResultSet). while (rs.next ()) {//10.transfer el conjunto de resultados System.out.println ("Número de personal:"+rs.getString ("Employee_id")+"Salario:"+Rs.getString ("Salario")+"Nombre:"+Rs.getString ("Last_Name")); // Usar el método GetRing () para obtener el nombre de datos en el nombre de datos en la tabla en la tabla: ! = null) {// 11.Clar el conjunto de registros intente {rs.close (); } Catch (Sqlexception e) {E.PrintStackTrace (); }} if (stmt! = null) {// 12.clar el objeto declarado intente {stmt.close (); } Catch (Sqlexception e) {E.PrintStackTrace (); }} if (stmt! = null) {// 12.clar el objeto declarado intente {stmt.close (); } Catch (Sqlexception e) {E.PrintStackTrace (); }} if (conn! = null) {// 13. Cierre la conexión (recuerde cerrar primero el 11.12 anterior. Luego cierre la conexión, al igual que cerrar la puerta, cerrar el interior primero y finalmente cerrar el más externo) intente {conn.close (); } Catch (Sqlexception e) {E.PrintStackTrace (); }}} Catch (Exception e) {E.PrintStackTrace (); }}}}3. Para ser más intuitivos, encapsulamos la adquisición de conexiones de bases de datos y conexiones de liberación en el método para facilitar una mejor operación más adelante.
paquete javacore1; import java.sql.connection; import java.sql.drivermanager; public class jdbc {public static void main (string [] args) {Connection conn = getConnection ("H4", "111"); // Obtener base de datos Conexión/*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,e ,,,,,,,,,,,,,,,, a ,,,,,,,,,,,,,,,,,,,,,, a ,,,,,,,,,,,,,,,,,,,,, a ,,,,,,,,,,,,,,,,,,,, a ,,,,,,,,,,,,,,,,,, a ,,,,,,,,,,,,,,,,, a ,,,,,,,,,,,,,,,,,, a. ,, ,,,,,,, a ,,,,,,, a ,, a ,, a ,, a ,,,,,, a ,,,,,, a ,,,,,,,, a ,,,,,,, a,,,,,,,, a ,,, a ,, a,, a, a ,, a ,, a ,, a ,, a ,, a ,, a, a ójaramente a ,, ,,,,,,, a ,,,,,,, a ,, a ,, a ,, a ,,,,,, a ,,,,,, a ,,,,,,,, a ,,,,,,, a,,,,,,,, a ,,, a ,, a,, a, a ,, a ,, a ,, a ,, a ,, a ,, a, a ójaramente a ,, ,,,,,,, a ,,,,,,, a ,, a ,, a ,, a ,,,,,, a ,,,,,, a ,,,,,,,, a ,,,,,,, a,,,,,,,, a ,,, a ,, a,, a, a ,, a ,, a ,, a ,, a ,, a ,, a, a ójaramente a String pass) {Connection conn = null; // Declare el objeto de conexión String String Driver = "com.mysql.jdbc.driver"; // controlador de la clase de controlador String url = "jdbc: mysql: // localhost: 3306/test?" // URL de la base de datos + "UseUnicode = true y caracterescoding = utf8"; // PREVIENTE GRUNCLE } return Conn; } // Relase la conexión de la base de datos public static void releaseConnection (conexión conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}4. Implemente once funciones de procesamiento de información de la base de datos, como consulta, inserción, eliminación y actualización.
1. Datos de consulta
paquete javacore1; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; consultación de clase pública {public static void main (string [] args) {Connection Conn = getConnection ("" "," 111 "," 111); Obtener consulta de conexión de base de datos (Conn); // El nombre del método llama a la conexión de base de datos Releaseconnection (Conn); // Libere la conexión de la base de datos} // Datos de consulta, defina el método de consulta Public static void Consuly (Connection Conn) {String sql = "select * de empleados"; intente {Declaración stmt = conn.createStatement (); // también puede usar PrepareStatement para hacer resultado rs = stmt.executeQuery (sql); // ejecutar la instrucción sql y devolver el final while (rs.next ()) {// transfiere el conjunto de resultados y ir a la siguiente línea System.out.println ("Número de personal:"+Rs.getString ("Employee_id")+"SALARY:"+RS.getString (""); } 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 (); }} // Conexión de base de datos Public Static Connection getConnection (String User, String Pass) {Connection conn = null; // Declare el objeto de conexión String controlador = "com.mysql.jdbc.driver"; // Nombre de clase de controlador String url = "jdbc: mysql: // localhost: 3306/test?" // URL de la base de datos + "UseUnicode = true y caracterescoding = utf8"; // PREVIENTE GRUNCLE } return Conn; } // Release Conexión de la base de datos Public static void Releaseconnection (Connection Conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}} // consulta los datos, y los resultados se muestran en orden inverso, paquete de orden inverso javacore1; import java.sql.connection; import java.sql.drivermanager; import java.sql.ResessSet; import java.sql.sqlexception; import java.sql.statement; public class Query {Public static void Main (String [] = getConnection ("H4", "111"); // Obtener consulta de conexión de base de datos (Conn); // El nombre del método llama a la conexión de la base de datos Releaseconnection (conn); // Relase la conexión de la base de datos} // Consulta los datos, defina el método de consulta Public static void Consuly (Connection Conn) {String sql = "select * de empleados"; intente {Declaración stmt = conn.createStatement (); // También puede usar PreparationStatement para hacer resultado RS = stmt.executeQuery (sql); // ejecutar la instrucción sql y devolver el final rs.afterlast (); // omita a la última línea primero mientras (rs.previous ()) {// transfiere el conjunto de resultados y la línea System.out.println ("Número de personal:"+Rs.getString ("Employee_id")+"Salario:"+Rs.getString ("Salario")); } 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 (); }} // Conexión de base de datos Public Static Connection getConnection (String User, String Pass) {Connection conn = null; // Declare el objeto de conexión String controlador = "com.mysql.jdbc.driver"; // Nombre de clase de controlador String url = "jdbc: mysql: // localhost: 3306/test?" // URL de la base de datos + "UseUnicode = true y caracterescoding = utf8"; // PREVIENTE GRUNCLE } return Conn; } // Release Conexión de la base de datos Public static void Releaseconnection (Connection Conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}2. Inserte datos
paquete javacore1; import java.sql.connection; import java.sql.drivermanager; import java.sql.sqlexception; import java.sql.statement; public class Insert {public static void main (string [] args) {Connection conn = getConnection ("H3", "111111"); // Obtener la conexión de la base de datos Insertar (Conn); // Nombre del método llama la conexión de base de datos Releaseconnection (Conn); // Liberar la conexión de la base de datos} // Inserte datos Public static void insert (conexión conn) {try {string sql = "insertar en empleados (empleados_id, last_name, salario, departament_id, userId)" + "valores ('100010', 'xiaogou', '7000', '004', '9')"; // instrucción SQL para insertar la instrucción de datos stmt1 = conn.createStatement (); // Crear objeto de declaración para ejecutar la instrucción SQL estática int count = stmt1.executeUpdate (sql); // Declaración SQL para realizar la operación de inserción y devolver el número de datos insertados System.out.println ("Insertado" + Count + "Datos"); // emite el resultado de la operación de inserción conn.close (); // Cierre la conexión de la base de datos} Catch (SQLException E) {E.PrintStackTrace (); }} // Conexión de base de datos Public Static Connection getConnection (String User, String Pass) {Connection conn = null; // Declare el objeto de conexión String controlador = "com.mysql.jdbc.driver"; // Nombre de clase de controlador String url = "jdbc: mysql: // localhost: 3306/test?" // URL de la base de datos + "UseUnicode = True & caracteresCoding = utf8"; // PREVIENTE AGARCLED try {class.forname (controlador); // registrar (carga) el controlador conn = drivermanager.getConnection (url, user, pase); // get dataBase Connection} Catch (excepción e) {E.PrintStArtTrace (); } return Conn; } // Relase la conexión de la base de datos public static void releaseConnection (conexión conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}3. Eliminar datos
paquete javacore1; import java.sql.connection; import java.sql.drivermanager; import java.sql.sqlexception; import java.sql.statement; public class delete {public static void main (string [] args) {Connect conn = getConnection ("H3", "111111"); // Obtener la conexión de base de datos Eliminar (Conn); // Conexión de la base de datos del nombre del nombre del método; Releaseconnection (Conn); // Release la conexión de la base de datos} // Eliminar datos public static void delete (conexión conn) {string sql = "Eliminar de los empleados donde empleado_id = 100009"; Pruebe {Declaración stmt = conn.createStatement (); // o use el método preparado STMT.ExecuteUpdate (SQL); // Ejecute la instrucción SQL if (stmt! = null) {try {stmt.close (); } Catch (Sqlexception e) {E.PrintStackTrace (); }}} Catch (SQLException e) {E.PrintStackTrace (); }}} // Conexión de la base de datos Conexión estática pública GetConnection (String User, String Pass) {Conexión conn = null; // Declarar el objeto de conexión String controlador = "com.mysql.jdbc.driver"; // controlador de controlador de clase String url = "jdbc: mysql: // localhost: 3306/test?" // URL de la base de datos + "UseUnicode = true y caracterescoding = utf8"; // PREVIENTE GRUNCLE } return Conn; } // Relase la conexión de la base de datos public static void releaseConnection (conexión conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}4. Actualizar datos
paquete javacore1; import java.sql.connection; import java.sql.drivermanager; import java.sql.sqlexception; import java.sql.statement; public class Update {public static void main (string [] args) {Connection conn = getConnection ("H3", "111111"); // Obtener la actualización de la conexión de la base de datos (Conn); // El nombre del método llama a la conexión de la base de datos Releaseconnection (Conn); // Release la conexión de la base de datos} // Actualizar datos de datos publicitarios de la actualización void (conexión conn) {string sql = "Actualizar empleados establece salario = 8000 donde empleado_id = 100005"; Pruebe {Declaración stmt1 = conn.createStatement (); // o use el método de preparación STMT1.ExecuteUpdate (sql); // Ejecutar la instrucción SQL if (stmt1! = null) {try {stmt1.close (); } Catch (Sqlexception e) {E.PrintStackTrace (); }}} Catch (SQLException e) {E.PrintStackTrace (); }} // Conexión de base de datos Public Static Connection getConnection (String User, String Pass) {Connection conn = null; // Declare el objeto de conexión String controlador = "com.mysql.jdbc.driver"; // Nombre de clase de controlador String url = "jdbc: mysql: // localhost: 3306/test?" // URL de la base de datos + "UseUnicode = true y caracterescoding = utf8"; // PREVIENTE GRUNCLE } return Conn; } // Relase la conexión de la base de datos public static void releaseConnection (conexión conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}5. Transferencia (transacciones)
JDBC maneja las transacciones a través de la confección automática de las conexiones de cierre:
Connect.SetAutOcommit (falso);
Enviar transacción:
Connection.commit ();
Parte de reversión de transacción de reversión:
Connection.Rollback (SavePoint);
Revuelve todo:
Connection.Rollback ();
paquete javacore1; import java.sql.connection; import java.sql.drivermanager; import java.sql.statement; public class Transcash {public static void main (String [] args) {Conexión conn = getConnection ("H3", "111111"); // Obtenga el transcash de conexión de conexión database (conn); // El nombre del método llama a la conexión de la base de datos Releaseconnection (Conn); // Relase la conexión de la base de datos} // transferir (conversión de datos) (los datos originales fueron 100 y 500, pero después de implementar esta función, se convierte en 500 y 100. En Fact, para ponerlo sin rodeos, es actualizar los datos y cambiar los datos) Public estatic -transcash (conexión de conexión) {Declaración STMT; Pruebe {conn.setAutOcommit (false); // Cerrar la cadena de envío automático SQL = "Actualizar los empleados Establecer salario = 500 donde empleado_id = 100001"; stmt = conn.createStatement (); stmt.ExecuteUpdate (SQL); sql = "actualizar empleados establecer salario = 100 donde empleado_id = 100002"; stmt.executeUpdate (sql); // ejecutar la instrucción SQL, los dos salarios anteriores se intercambiarán // int i = 1/0; Si es así, la tarea no se completará, porque esto es una cosa completa, y si hay un pequeño fallo, todo fallará conn.commit (); // Commit Transaction} Catch (Exception e) {E.PrintStackTRace (); } finalmente {try {if (stmt! = null) {stmt.close (); } catch (Exception e) {E.PrintStackTrace (); }}} // Conexión de la base de datos Conexión estática pública GetConnection (String User, String Pass) {Conexión conn = null; // Declarar el objeto de conexión String controlador = "com.mysql.jdbc.driver"; // controlador de controlador de clase String url = "jdbc: mysql: // localhost: 3306/test?" // URL de la base de datos + "UseUnicode = true y caracterescoding = utf8"; // PREVIENTE GRUNCLE } return Conn; } // Release Conexión de la base de datos Public static void Releaseconnection (Connection Conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}6. Encuentre procedimientos almacenados sin parámetros
paquete javacore1; import java.sql.callableStatement; import java.sql.connection; import java.sql.drivermanager; import java.sql.sqlexception; public class Execproc {public static void principal (string [] args) {Connection Conn = getConnection ("h3", "111111"); // Obtener la conexión de base de datos ExecProc (Conn); // Nombre del método Llama a la conexión de la base de datos Releaseconnection (Conn); // Release la conexión de la base de datos} // llame al procedimiento almacenado no argumentado; public static void ExecProc (Connection Conn) {String sql = "{calla elevaisSalary}"; intente {CallableStatement cstmt = conn.prepareCall (sql); cstmt.executeUpdate (); } Catch (Sqlexception e) {E.PrintStackTrace (); }} // Conexión de base de datos Public Static Connection getConnection (String User, String Pass) {Connection conn = null; // Declare el objeto de conexión String controlador = "com.mysql.jdbc.driver"; // Nombre de clase de controlador String url = "jdbc: mysql: // localhost: 3306/test?" // URL de la base de datos + "UseUnicode = true y caracterescoding = utf8"; // PREVIENTE GRUNCLE } return Conn; } // Release Conexión de la base de datos Public static void Releaseconnection (Connection Conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}7. Encuentre procedimientos almacenados con parámetros
paquete javacore1; import java.sql.callableStatement; import java.sql.connection; import java.sql.drivermanager; import java.sql.types; public class getMulti {public static void principal (string [] args) {Connection Conn = getConnection ("h3", "111111"); // Obtener conexión de base de datos int cnt = getMulti (Conn); // encontrar procedimientos almacenados; System.out.println ("Número de personas:" + CNT); Releaseconnection (Conn); // Release Conexión de la base de datos} // El proceso de búsqueda tiene parámetros public static int getMulti (Connection Conn) {int dept_id = 100001; int cnt = 0; String sql = "{llamar calc_emp_count (?,?)}"; Pruebe {CallableStatement cStmt = conn.prepareCall (sql); // inicializar el objeto de instrucción cstmt.setInt (1, dept_id); // callAblestatement.setxxx (parámetro, valor) o (número, valor) y prepararse.setxxx (número, valor) solo puede ser como este 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; } // Conexión de la base de datos Conexión estática pública GetConnection (String User, String Pass) {Conexión conn = null; // declarar el objeto de conexión String controlador = "com.mysql.jdbc.driver"; // El nombre de la clase del controlador String url = "jdbc: mysql: // localhost: 3306/test?" // URL de la base de datos + "UseUnicode = true y caracterescoding = utf8"; // PREVIENTE GRUNCLE } return Conn; } // Release Conexión de la base de datos Public static void Releaseconnection (Connection Conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}8. Procesamiento ordinario
paquete javacore1; import java.sql.connection; import java.sql.date; import java.sql.drivermanager; import java.sql.preparedStatement; import java.sql.sqlexception; planes de clase pública {public estatic estatic bain (string [] args) {Connection Conn = getConnection ("" H3, "", "H3," "," H3, "", "H3," "," H3, "", "H3," H3, "", "H3," "," H3, "H3," "," H3, "H3," "," H3, "", "H3," "," "," H3, "H3," "," H3, "", "H3," "," H3, "," "," "," "," "," "," "," H3, "", "H3," "," "", "" "111111"); // Obtener PlanInsert de conexión de base de datos (Conn); // Nombre del método llama la conexión de base de datos Releaseconnection (Conn); // Release la conexión de la base de datos} // Procesamiento ordinario de Public static void PlanInsert (Connection Conn) {try {String sql = "Insert en test_user1 (userId, nombre de usuario, carga de carga)" + "valores (?,?,?)"; // Declaración SQL para insertar datos de datos PSTMT = Conn.PrepareStatement (SQL); Long Starttime = System.CurrentTimemillis (); para (int i = 0; i <1000; i ++) {pstmt.setLong (1, i); pstmt.setString (2, "usuario"+i); pstmt.setdate (3, nueva fecha (System.CurrentTimemillis ())); pstmt.executeUpdate (); } System.out.println ("Total Time Taken:"+(System.CurrentTimemillis () - Starttime)); pstmt.close (); // Cierre la conexión de la base de datos} Catch (SQLException E) {E.PrintStackTrace (); }} // Conexión de base de datos Public Static Connection getConnection (String User, String Pass) {Connection conn = null; // Declare el objeto de conexión String controlador = "com.mysql.jdbc.driver"; // Nombre de clase de controlador String url = "jdbc: mysql: // localhost: 3306/test?" // URL de la base de datos + "UseUnicode = true y caracterescoding = utf8"; // PREVIENTE GRUNCLE } return Conn; } // Release Conexión de la base de datos Public static void Releaseconnection (Connection Conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}9. Procesamiento por lotes
Obtenga el patrón de transacción JDBC original:
boolean CurrentTransactionModle = con.getAutOcommit ();
Establecer en el modo de transacción (OFF COMMING AUTOMÁTICO):
con.setAutOcommit (falso);
Instrucción stm = con.createStatement ();
Tres declaraciones SQL heterogéneas:
Cadena sql1 = "eliminar del usuario donde id = 8";
String sql2 = "Update user set nombre = 'java' donde id = 7";
Cadena sql3 = "insertar en los valores de usuario (nombre, contraseña) ('jdbc', 'jdbc')";
Agregue al búfer de procesamiento por lotes de la declaración:
stm.Addbatch (SQL1);
stm.addbatch (SQL2);
stm.Addbatch (SQL3);
Realizar actualizaciones de lotes:
stm.ExecuteBatch ();
Envíe transacciones para esta actualización por lotes:
con.commit ();
Responder al modo de transacción original:
con.setAutOcommit (CurrentTransactionModle);
package javacore1;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class BatchInsert { public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Obtener una conexión de base de datos BatchInsert (Conn); // Nombre del método llama la conexión de base de datos Releaseconnection (Conn); // Libere la conexión de la base de datos} // La velocidad de la inserción por lotes es más rápida que la del procesamiento ordinario público void void batchinsert (conexión conn) {try {string sql = "insertar en test_user1 (userId, username, loadingtime)" + "valores (?,?,?)"; // La instrucción SQL que inserta datos de datos preparados PSTMT = Conn.PrepareStatement (SQL); Long Starttime = System.CurrentTimemillis (); para (int i = 0; i <1000; i ++) {pstmt.setLong (1, i); pstmt.setString (2, "usuario"+i); pstmt.setdate (3, nueva fecha (System.CurrentTimemillis ())); pstmt.addbatch (); // Agregar al procesamiento por lotes} int [] resultado = pstmt.executeBatch (); System.out.println ("Tiempo total tomado:"+(System.CurrentTimemillis () - Starttime)); pstmt.close (); // Cierre la conexión de la base de datos} Catch (SQLException E) {E.PrintStackTrace (); }} // Conexión de base de datos Public Static Connection getConnection (String User, String Pass) {Connection conn = null; // Declare el objeto de conexión String controlador = "com.mysql.jdbc.driver"; // Nombre de clase de controlador String url = "jdbc: mysql: // localhost: 3306/test?" // URL de la base de datos + "UseUnicode = true y caracterescoding = utf8"; // PREVIENTE GRUNCLE } return Conn; } // Release Conexión de la base de datos Public static void Releaseconnection (Connection Conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}10. Pantalla de paginación
paquete javacore1; import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedStatement; import java.sql.resultSet; import java.sql.sqlexception; publicidad de clase pública {public estatic estatic oid "111111"); // Obtener la conexión de conexión de la base de datos (Conn, 1,3); // Conexión de la base de datos de nombre del nombre del método y defina qué fila muestra a la fila de la fila ReleaConnection (conn); // Relase la conexión de la base de datos} // consulta de la página Consulta pública Void Paging (Connection Conn, Int StartIndex, int Total) {try {string sql = "select * de los empleados límite?"; ";"; ";"; ";"; ";"; 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 trabajo:"+rs.getInt (1)); System.out.println ("Número de departamento:"+Rs.getInt ("Department_id")); } rs.close (); pstmt.close (); } Catch (Sqlexception e) {E.PrintStackTrace (); }} // Conexión de base de datos Public Static Connection getConnection (String User, String Pass) {Connection conn = null; // Declare el objeto de conexión String controlador = "com.mysql.jdbc.driver"; // Nombre de clase de controlador String url = "jdbc: mysql: // localhost: 3306/test?" // URL de la base de datos + "UseUnicode = true y caracterescoding = utf8"; // PREVIENTE GRUNCLE } return Conn; } // Release Conexión de la base de datos Public static void Releaseconnection (Connection Conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}11. El conjunto de resultados se puede desplazar
paquete javacore1; import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedStatement; import java.sql.resultSet; import java.sql.sqlexception; public class scrippllResult {Void Public Static void Main (String) "111111"); // Obtener la conexión de base de datos scrpllResult (conn); // El nombre del método llaman a la conexión de base de datos Releaseconnection (conn); // libera la conexión de la base de datos} // desplaza el conjunto de resultados para mostrar public static void scrollresult (conexión conn) {try {string sql = "select * de los empleados"; // El desplazamiento se puede desplazar // concurrencia, el conjunto de resultados es de solo lectura y el preparado no se puede modificar. 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 trabajo:"+Rs.getLong (1)); System.out.println ("name"+rs.getString ("last_name")); } while (rs.previous ()) {// Travel System.out.print ("Número de trabajo:"+Rs.getLong (1)); System.out.println ("Número de trabajo:"+Rs.getLong (1)); } rs.absolute (6); // viajar directamente a la línea if (rs.next ()) {system.out.print ("número de trabajo:"+rs.getlong (1)); System.out.println ("......... Número de departamento:"+rs.getString ("departam_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.装好后,图如下出现你要添加的包。