tener conocidos JDBC

1. Introducción JDBC

Base de datos de conectividad java
java interfaz de conexión de base de datos predeterminado, proporcionado por el sol, con el fin de simplificar el proceso de operación de los programadores de bases de datos.
   SUN empresas requieren que los proveedores de bases de datos, de acuerdo con la especificación de la interfaz API JDBC, los datos correspondientes a la finalización de la operación de conexión de los programas Java, paquete de Jar especificación, y un método correspondiente a la operación.

JDBC contenido básico interfaz
   java.sql.

   El javax.sql.
**

Una condición 2. Conexión de base de datos JDBC necesaria requerida

cmd> mysql -hlocalhost -uroot -p123456

1. Identificar una conexión de base de datos utilizando una base de datos MySQL
2. borrar la dirección actual base de datos de host, dirección IP, nombre de dominio, localhost representa el local de
nombre de usuario 3. -uroot
4. -p123456 de nombres de usuario contraseñas

base de datos JDBC también está conectado a estas cuatro condiciones necesitan
1. Determinar conexión, la dirección de red y el funcionamiento de base de datos que corresponde a una base de datos de
   URL utiliza aquí, una compatible con JDBC
   URL JDBC: MySQL: // localhost: 3306 / nzgp2001
2. usuario nombre de usuario raíz
contraseña 3. contraseña 123456

URL
significa
    acuerdo maestro JDBC que opera actualmente la base de datos
   MySQL sub-protocolo de
    red incluso localhost dirección que el servidor de base de datos
    3306 de base de datos el número de puerto por defecto
   nzgp2001 base de datos de URL actual está conectado a una operación correspondiente que

JDBC es el contenido proporcionado por terceros
para obtener el correspondiente tarro
   MySQL-conector-Java-5.1.47.jar
   obtener correspondiente paquete de Jar desde la página oficial
   mvnrepository Maven consulta URL

base de datos MySQL 3. conexión JDBC

3.1 Flujo

1. Paquete tarro de importación
    creado directorio raíz lib del proyecto, en un paquete frasco correspondiente, la introducción de la dependencia
2. Cargar controlador
   se especifica Java procedimiento de especificación de interfaz, pero no implementa
    conexión de base de datos requiere el controlador JDBC correspondiente a
3 para preparar la base de datos de los parámetros de conexión necesarios
4. base de datos de conexión
5. Cierre recursos

código de demostración de conexión de base de datos 3.2

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * JDBC连接数据库操作,获取数据库连接方式
 *
 * @author Anonymous 2020/3/23 15:51
 */
public class Demo1 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        /*
        1. 加载驱动
         */
        Class.forName("com.mysql.jdbc.Driver");

        /*
        2. 准备必要的数据
         */
        String url = "jdbc:mysql://localhost:3306/nzgp2001?useSSL=true";
        String user = "root";
        String password = "123456";

        /*
         3. 获取数据库连接
         */
        Connection connection = DriverManager.getConnection(url, user, password);

        System.out.println(connection);

        /*
        4. 关闭资源
         */
        connection.close();

    }
}

carga con bases de datos 3.3

public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    //
    // Register ourselves with the DriverManager
    // 在.class文件加载到内存时运行,并且有且只执行一次
    // 代码初始化过程!!!
    static {
        try {
            // DriverManager驱动管理器注册了当前com.mysql.jdbc.Driver
            // 相对于当前Java程序拥有了连接MySQL数据库的必要的驱动条件
            java.sql.DriverManager.registerDriver(new Driver());
        } catch (SQLException E) {
            throw new RuntimeException("Can't register driver!");
        }
    }

    /**
     * Construct a new driver and register it with DriverManager
     * 
     * @throws SQLException
     *             if a database error occurs.
     */
    public Driver() throws SQLException {
        // Required for Class.forName().newInstance()
    }
}

4. JDBC núcleo de la API [recordar mejor, recuerde licencia]

class java.sql.DriverManager 驱动管理类
--| static java.sql.Connection getConnection(String url, String user, String password);
/*
	这里是根据听的数据库连接URL,对应的user用户名和password密码,获取数据库连接对象
*/

interface java.sql.Connection 数据库连接接口
--| java.sql.Statement createStatement();
/*
	获取数据库SQL语句搬运工对象,从Java程序搬运SQL语句到数据库中,同时Statement也是一个资源对象。
*/
--| java.sql.PreparedStatement prepareStatement(String sql);
/*
	获取数据库SQL语句【预处理】搬运工对象,Java程序的SQL语句,在创建PreparedStatement对象时,将SQL语句交给数据库预处理操作,可以解决一定的【SQL语句注入问题】,同时提高一定的效率,PreparedStatement也是一个资源对象
*/

interface java.sql.Statement 数据库SQL语句搬运工对象
--| int executeUpdate(String sql);
/*
	执行数据库修改数据,insert,update,delete...,返回值类型是int类型,是当前SQL语句搬运到数据库执行之后,数据库运行对于当前操作受到影响的行数
	2 rows affected in 5 ms
*/
--| java.sql.ResultSet executeQuery(String sql);
/*
	执行数据库查询语句,select操作,执行的结果是一个java.sql.ResultSet,结果集对象,当前操作返回值never null
*/

interface java.sql.PreparedStatement 数据库SQL语句【预处理】搬运工对象
    PreparedStatement extends java.sql.Statement
--| int executeUpdate();
/*
	执行数据库修改操作,insert,update,delete...处理的SQL语句是在创建PreparedStatement对象过程预处理的SQL语句,并且返回值是int类型, 为当前操作对于数据表中收到影响的行数
*/
--| java.sql.ResultSet executeQuery();
/*
	执行数据库查询语句,select操作,的SQL语句是在创建PreparedStatement对象过程预处理的SQL语句,执行的结果是一个java.sql.ResultSet,结果集对象,当前操作返回值never null
*/
--| setXXX(int index, XXX value)
/*
	PreparedStatement预处理的SQL语句是可以带有参数的,这里是对于SQL语句参数进行赋值操作,这里有指定的操作下标,和对应的数据,数据类型繁多
*/
    
interface java.sql.ResultSet 数据库结果集接口
--|XXX getXXX(int columnIndex);
/*
	根据查询结果中,字段所处的位置下标获取对应数据,XXX是指定类型
*/
--|XXX getXXX(String fieldName);
/*
	根据查询结果中,字段所处的字段名获取对应数据,XXX是指定类型
*/
--| boolean next();
/*
	判断当前查询结果集中是否还有可以键遍历操作的数据,如果没有。或则当前结果集中是无数据情况 Empty Set,直接返回fasle
*/

5 Las declaraciones SQL

5.1 Declaración de inserción manipulación de datos SQL

Existe una base de datos nzgp2001, y hay una tabla de usuario, la tabla tiene tres campos, ID, nombre de usuario, contraseña

@Test
public void testInsert() {
    Statement statement = null;
    Connection connection = null;
    try {
        // 1. 加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 2. 准备必要的连接数据
        String url = "jdbc:mysql://localhost:3306/nzgp2001?useSSL=true";
        String user = "root";
        String password = "123456";
        //3. 获取数据库连接
        connection = DriverManager.getConnection(url, user, password);
        // 4. 获取Statement对象
        statement = connection.createStatement();
        // 5. 准备SQL语句
        String sql = "insert into nzgp2001.user(userName, password) value ('嘟嘟', '123456')";
        // 6. 执行SQL语句
        int affectedRows = statement.executeUpdate(sql);
        System.out.println("affectedRows:" + affectedRows);
    } catch (ClassNotFoundException | SQLException e) {
        e.printStackTrace();
    } finally {
        // 7. 关闭资源
        try {
            if (statement != null) {
                statement.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

manipulación de datos SQL 5.2 Modificar Declaración

@Test
public void testUpdate() {
    Statement statement = null;
    Connection connection = null;
    try {
        // 1. 加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 2. 准备必要的连接数据
        String url = "jdbc:mysql://localhost:3306/nzgp2001?useSSL=true";
        String user = "root";
        String password = "123456";
        //3. 获取数据库连接
        connection = DriverManager.getConnection(url, user, password);
        // 4. 获取Statement对象
        statement = connection.createStatement();
        // 5. 准备SQL语句
        String sql = "update nzgp2001.user set userName ='滴滴' where id = 1";
        // 6. 执行SQL语句
        int affectedRows = statement.executeUpdate(sql);
        System.out.println("affectedRows:" + affectedRows);
    } catch (ClassNotFoundException | SQLException e) {
        e.printStackTrace();
    } finally {
        // 7. 关闭资源
        try {
            if (statement != null) {
                statement.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

5.3 Declaración de manipulación de datos SQL borrado

@Test
public void testDelete() {
    Statement statement = null;
    Connection connection = null;
    try {
        // 1. 加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 2. 准备必要的连接数据
        String url = "jdbc:mysql://localhost:3306/nzgp2001?useSSL=true";
        String user = "root";
        String password = "123456";
        //3. 获取数据库连接
        connection = DriverManager.getConnection(url, user, password);
        // 4. 获取Statement对象
        statement = connection.createStatement();
        // 5. 准备SQL语句
        String sql = "delete from user where id > 2";
        // 6. 执行SQL语句
        int affectedRows = statement.executeUpdate(sql);
        System.out.println("affectedRows:" + affectedRows);
    } catch (ClassNotFoundException | SQLException e) {
        e.printStackTrace();
    } finally {
        // 7. 关闭资源
        try {
            if (statement != null) {
                statement.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
Publicado 31 artículos originales · ganado elogios 72 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_44945658/article/details/105054652
Recomendado
Clasificación