[Notas de JDBC] Inicio rápido de JDBC

JDBC: conectividad de base de datos java java se conecta a la base de datos.

Sun Company define las reglas (interfaces) que operan todas las bases de datos relacionales .

Usando el código java unificado, puede operar todas las bases de datos relacionales.

Cada proveedor de base de datos implementa la interfaz y proporciona el paquete jar del controlador de la base de datos.El código real ejecutado es la clase de implementación en el paquete jar del controlador.


paso:

1. Importe el paquete jar del controlador

Directorio de compilación -> paquete de memoria -> agregar como biblioteca

2. Registre el controlador (no puede escribir)

3. Obtenga el objeto de conexión Conexión de la base de datos

4. Definir sql

5. Obtenga la declaración del objeto que ejecuta la declaración sql

6. Ejecute sql, ejecute el resultado devuelto

7. Procesamiento de resultados

8. Liberar recursos


DriveManager: objeto de gestión de unidades

Características:

Registre el controlador (dígale al programa qué paquete jar del controlador de la base de datos se debe usar)

static void registerDriver (Driver driver): registra el controlador dado DriveManager

写法:Class.forName("com.mysql.jdbc.Driver");

Principio: al ver el código fuente, se encuentra que hay un bloque de código estático en com.mysql.jdbc.Driver, y se llama al método registerDriver de DriveManager

(Después de mysql 5, no es necesario registrar el controlador, el controlador se registra automáticamente, se recomienda escribirlo)

obtener conexión de base de datos

Conexión estática getConnection (URL de cadena, usuario de cadena, contraseña de cadena)

url: especifica la ruta de la conexión 

Sintaxis: jdbc:mysql://dirección IP:número de puerto/nombre de la base de datos

Si la conexión es al servidor mysql local y el puerto predeterminado del servicio mysql es 3306. La URL se puede abreviar como:

jdbc:mysql:///nombre de la base de datos

Conexión: objeto de conexión de base de datos

Obtenga el objeto que ejecuta sql:

Declaración crear Declaración()

PrepareStatement prepareStatement(String sql)

Administrar asuntos:

*Transacción abierta

setAutoCommit(boolean autoCommit): llame a este método para establecer el parámetro en falso, es decir, para abrir la transacción

* Confirmar transacción

comprometerse()

* transacción de reversión

Retroceder()

Declaración: se utiliza para ejecutar declaraciones sql estáticas

Ejecutar sql:

int executeUpdate(String sql): Ejecutar sentencias DML (insertar, actualizar, eliminar), sentencias DDL (crear, eliminar)

Valor devuelto: el número de filas afectadas

El éxito de la instrucción DML se puede juzgar por el número de filas afectadas (>0)

ResultaSet executeQuery(String sql): ejecutar sentencia DQL(select)

ResultSet: el objeto del conjunto de resultados, que encapsula los resultados de la consulta.

El cursor comienza en la posición del encabezado.

boolean next (): el cursor se mueve hacia abajo una fila para determinar si hay datos

getXxx(): Obtener datos. Xxx representa el tipo de datos

getInt,getString,obtener....

parámetro:

Pase un int que represente el número de columna (a partir de 1)

Pase una cadena que represente el nombre de la columna getString("sexo")

Recorrido de conjunto de resultados:

Clase de herramienta JDBC: JDBCUtils (escritura simplificada)

public class JDBCUtils {
    private static String url;
    private static String user;
    private static String password;
    //配置文件只读取一次,静态代码块
    static{
        //读取资源文件,获取值
        Properties properties=new Properties();
        //加载文件
        try {
            properties.load(new FileReader("src/jdbc.properties"));
            url=properties.getProperty("url");
            user=properties.getProperty("user");
            password=properties.getProperty("password");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //获取连接
    public static Connection getConnection()  {
        try {
            return DriverManager.getConnection(url,user,password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    //释放资源
    public static void close(Statement st,Connection ct){
        if(st!=null){
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(ct!=null){
            try {
                ct.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public static void close(ResultSet rs,Statement st,Connection ct){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        close(st,ct);
    }

}

PreparedStatement: ejecutar objeto sql

Problema de inyección de SQL:

Al empalmar sql, hay algunas palabras clave de sql especiales involucradas en el empalme de cadenas, lo que causará problemas de seguridad.

Solución: Use PreparedStatement para representar objetos y ejecutar sentencias sql precompiladas (¿usar parámetros? como marcadores de posición)

¿Al definir el parámetro sql a usar? como marcador de posición

select *from user where username = ? and password = ?

Obtenga el objeto que ejecuta la instrucción sql

PrepareStatement pre=Connection.prepareStatement(String sql);

 Asignar un valor a ?:

setXxx(参数1,参数2)
//参数1:?位置
//参数2:?值

Ejecutar sql: no es necesario pasar sql

 Nota: La declaración preparada se utilizará para adiciones, eliminaciones y cambios en la etapa posterior.

Supongo que te gusta

Origin blog.csdn.net/m0_52043808/article/details/123952340
Recomendado
Clasificación