notas de estudio de Java JDBC

1.JDBC 

   Java DataBasue Conectividad, Java y la conexión API de base de datos;

   Puede ser conectado a diferentes bases de datos en diferentes cargas de base de datos "conductor"

El funcionamiento básico de la base de datos de los pasos 2.JDBC

  Importación clase de controlador de base de datos correspondiente al desarrollo

 1) campaña de inscripción: Class.forName ( "com.mysql.jdbc.Driver")

 2) crear una conexión: Conexión conn = DriverManager.getConnection url, usuario, pase ();

 3) Crear una instrucción SQL:

     uso Declaración

ST = la Declaración nula ;
 // Obtener para transmitir instrucción SQL a la base de datos de Declaración 
ST = conn.createStatement ();
 // enviar a la base de datos de SQL 
cadena SQL = "SELECT ID, nombre, contraseña, Email, Cumpleaños de los Usuarios" ; 
ST .executeQuery (sql);

     Uso prepareStatement: inyección de SQL a los problemas de Evita

ST = PreperedStatement nula ; 
cadena SQL = "¿El * Seleccione entre los usuarios y el nombre DONDE = password =?" ; 
 
// acostumbrarse a enviar instrucción SQL a la base de datos Preperedstatement 
ST = conn.preparedStatement (sql); // En esta biografía en, precompiled 
st.setString (1. , nombre de usuario); 
st.setString ( 2 , contraseña);
 // enviar a la base de datos SQL 
st.executeQuery (); // necesita aquí sql entrante

4) ejecutará la sentencia: rs = Resultados st.executeQuery ();

5) Cierre del recurso: Después de crear el primer cierre

si (pr =! nula ) { 
   pr.close (); 
} 
Si (rs =! Nula ) { 
    rs.close (); 
} 
Si (con =! Nula ) { 
   con.close (); 
}

3. El paquete JDBC

  fuente de datos de importación y conducir

  

 

   1) Perfil lib.properties

druid.url = jdbc: mysql: // localhost: 3306 / jdbc_db useSSL = false y serverTimezone = UTC y allowPublicKeyRetrieval = true 
druid.username = raíz 
druid.password = 1234

  2) archivo del paquete JDBC JdbcUtil.java

Paquete com.dxj.util;
 Importar un java.io.FileInputStream;
 Importación java.io.IOException;
 Importación del java.sql.Connection;
 Importación java.sql.PreparedStatement;
 Importación del java.sql.ResultSet;
 Importación java.sql.SQLException;
 Importación los java.util.Properties; 

importación com.alibaba.druid.pool.DruidDataSource;
 / ** 
 * empaquetar el JDBC 
 * @author administrador 
 * 
 * / 
público  de clase JdbcUtil {
     // crear un objeto de origen de datos 
    privada  estática DruidDataSource DS;
     // crear un objeto de conexión
    Privada  estática Conexión CON;
     // Crear objeto prepareStatement 
    privada  estática PreparedStatement PR;
     // uso de la consulta 
    privada  estática del conjunto de resultados RS; 
    
    estática { 
        init (); 
    } 
    
    / ** 
     * Crear un objeto de origen de datos, lee el archivo de configuración 
     * / 
    pública  estática  vacío init () {
         // fuente de datos Ali Druida 
        DS = nueva nueva DruidDataSource (); 
        
        las propiedades pro = new new las propiedades ();
         el try {
             // leer el fichero de configuración 
            pro.load (nueva nueva FileInputStream ( "COM \\ DXJ el src \\ \\ \\ lib.properties de Recursos" )); 
        } la captura (IOException e) { 
            e.printStackTrace (); 
        } 
        // perfil 
        ds.configFromPropety (Pro); 
    } 
    
    / ** 
     * Obtener la conexión () del objeto 
     * / 
    pública  estática  vacío Connect () {
         try { 
            CON = ds.getConnection (); 
        } la captura (SQLException e) { 
            e.printStackTrace (); 
        } 
    } 
    
    / ** 
     * Obtener objeto prepareStatement 
     *@param SQL 
     * @param valores
      * / 
    pública  estática  vacío prepareStatement (String sql, objeto ... valores) {
         try { 
            pr = con.prepareStatement (sql);
            para ( int i = 0; i <values.length; i ++ ) { 
                pr.setObject (i 1 , los valores de [i]); 
            } 
        } Catch (SQLException e) { 
            
            e.printStackTrace (); 
        } 
        
    } 
    / ** 
     *执行增,删,改
     * / 
    pública  estática vacío Update () {
         try { 
            pr.executeUpdate (); 
        } la captura (SQLException e) { 
            e.printStackTrace (); 
        } 
    } 
    
    / ** 
     * consultas de creación 
     * @return 
     * / 
    público  estáticos del conjunto de resultados de consulta () {
         try { 
            RS = pr.executeQuery (); 
        } la captura (SQLException e) { 
            e.printStackTrace (); 
        } 
        retorno RS; 
    } 
    
    / ** 
     * operación de cierre 
     * / 
    público estática  vacío close () {
         try {
             si (rs =! nula ) { 
                rs.close (); 
            } 
            Si (pr =! Nula ) { 
                pr.close (); 
            } 
            Si (con =! Nula ) { 
                con.close (); 
            } 
        } Catch (SQLException e) { 
            e.printStackTrace (); 
        } 
    }     
}

3) Pruebas

empaquetar com.dxj.test;
importación java.util.Random;
importación com.dxj.util.JdbcUtil;
público  de clase JianTest { 

    públicas  estáticas  void main (String [] args) { 
        Random corrió = nueva Random (); 
        JdbcUtil.connect (); 
        Jian cadena = "eliminar de test01_tab donde u_id>?" ; 
        JdbcUtil.prepareStatement (Jian, "5210" ); 
        JdbcUtil.update (); 
        JdbcUtil.close (); 
    } 

}

4. agrupación de conexiones de base de datos

    Debido a la creación de conexiones y liberación de la conexión tiene un montón de gastos generales (especialmente cuando el servidor de base de datos no es local, cada vez que una conexión debe ser TCP de tres vías, la liberación de las conexiones TCP requiere saludo de cuatro vías, la sobrecarga causada no puede ser ignorada) con el fin de mejorar el rendimiento del sistema para acceder a la base de datos, puede crear una serie de pre-conexión en la agrupación de conexiones, directamente en la agrupación de conexiones cuando sea necesario, devuelto al final de la utilización de la agrupación de conexiones sin tener que cerrar la conexión
  Base de datos de conexión de la agrupación de conexiones es creado y gestionado en la piscina cuando se inicia el servidor de aplicaciones;
   Una solicitud de conexión por un grupo de conexiones de bases de datos;
  Después del final de la solicitud de conexión se devuelve a la piscina para su posterior reutilización;
  Con el fin de evitar la frecuente crear y liberar la sobrecarga causada por la conexión, que es típico con el espacio para la estrategia de tiempo (pérdida de conexión de espacio de almacenamiento, pero ahorra el tiempo para crear y conexiones de liberación )
  La tecnología de la piscina en el desarrollo de Java es muy común, para crear un hilo grupo de subprocesos cuando se utiliza esta misma razón
  de código abierto agrupación de conexiones de base de datos basada en Java, principalmente: C3P0, Proxool, el DBCP, BoneCP, Druida y así sucesivamente.
Declaración 5.JDBC 和 Preparement
   En comparación con la declaración:
  1) la interfaz PreparedStatement representa una declaración pre-compilados, su principal ventaja es que puede reducir los errores del compilador de SQL y aumentar la seguridad de SQL (ataque de inyección SQL para reducir la probabilidad de);
  2) declaraciones SQL PreparedStatement se pueden parametrizar, para evitar la conexión de empalme problemas e inseguridad con una serie de sentencias SQL;
  3) Cuando el lote SQL o frecuentan la misma consulta, PreparedStatement tiene evidentes ventajas en el rendimiento, ya que la base de datos se puede compilar las sentencias SQL optimizadas en caché, la próxima vez que la sentencia se ejecuta la misma estructura en breve (no nuevo compilación y plan de ejecución)
 

Supongo que te gusta

Origin www.cnblogs.com/dxjx/p/12545755.html
Recomendado
Clasificación