Uma amostra do JDBC - Como o JAVA usa o método mais simples para se conectar ao banco de dados

escrito na frente

Embora vários frameworks estejam surgindo em um fluxo interminável, eles fornecem APIs mais convenientes para operar bancos de dados.
Mas para os iniciantes praticarem a sintaxe SQL ou dominarem um pouco do uso básico do JDBC e aplicá-lo a alguns pequenos projetos que fazem por diversão, ainda vale a pena aprender o JDBC.
insira a descrição da imagem aqui

1. Interface de banco de dados unificada JDBC

•JDBC (Java DataBase Connectivity), ou seja, conexão de banco de dados java, é uma API Java para execução de instruções SQL, que pode fornecer acesso unificado a vários bancos de dados relacionais.Consiste em um conjunto de classes e interfaces escritas na linguagem Java. JDBC fornece uma linha de base a partir da qual ferramentas e interfaces de alto nível podem ser construídas para permitir que desenvolvedores de banco de dados escrevam aplicativos de banco de dados.

Componentes principais do JDBC:

  1. DriverManager: gerenciador de driver, combinando de acordo com o identificador de conexão e o driver de banco de dados específico

  2. Driver: De acordo com as informações da classe carregada, ela é gerada e implantada pelo gerente e geralmente não é usada diretamente

  3. Connection: Representa um objeto especificamente conectado a um banco de dados

  1. Instrução: Use objetos criados a partir desta interface para enviar instruções SQL ao banco de dados

insira a descrição da imagem aqui

  1. ResultSet: Esses objetos contêm os dados recuperados do banco de dados após a execução de consultas SQL usando objetos Statement

insira a descrição da imagem aqui

  1. SQLException: Esta classe lida com qualquer erro que ocorra no aplicativo de banco de dados

2. Como usar (parte principal)

  • Preparação preliminar (observe aqui que a biblioteca mysql-connector-java precisa ser importada)

insira a descrição da imagem aqui

  • execução SQL

  • Diretório de arquivo e criação de tabela txt

insira a descrição da imagem aqui

3. Código

//文件IO
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
//sql支持
import java.sql.*;
//集合框架,List
import java.util.List;

public class MySQLDemo {
    
    

    //数据库连接基本信息
    //数据库驱动,提供对相应数据库操作支持
    //低版本去掉.cj
    static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
    //数据库地址,用户名和密码
    static final String DB_URL = "jdbc:mysql://localhost:3306/MySQLDemoTest?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
    static final String USER = "root";
    static final String PASS = "123";

    public static void main(String[] args) {
    
    
        //使用url和用户名密码建立连接
        Connection conn = null;
        //Statement 是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句
        Statement stmt = null;

        Path pathCreat= Paths.get("src","MySQL","target","classes","CreatTable.txt");

        try{
    
    
            // 注册 JDBC 驱动;载入Class文件信息
            Class.forName(JDBC_DRIVER);

            // 打开链接
            System.out.println("连接数据库...");
            conn = DriverManager.getConnection(DB_URL,USER,PASS);

            //建立好连接后,获取当前连接的Statement对象
            System.out.println("实例化Statement对象...");
            stmt = conn.createStatement();

            //读取pathCreat目录下的文件内容,组成SQL语句
            StringBuffer sql=new StringBuffer();
            List<String> list=Files.readAllLines(pathCreat.toAbsolutePath());
            for(String m:list)
                sql.append(m);

            //通过Statement的对象执行String类型的SQL语句即可
            System.out.println("删除表...");
            stmt.executeUpdate("DROP TABLE IF EXISTS student;");

            System.out.println("新建表...");
            stmt.executeUpdate(sql.toString());

            System.out.println("插入...");
            for(int i=1;i<10;i++)
            stmt.executeUpdate("INSERT INTO student (name) VALUES('呆瓜"+i+"号')");

            System.out.println("查询...");
            ResultSet rs = stmt.executeQuery("SELECT * FROM student");

            // 展开结果集数据库
            while(rs.next()){
    
    
                // 通过字段检索
                int id  = rs.getInt("id");
                String name = rs.getString("name");

                // 输出数据
                System.out.print("ID: " + id);
                System.out.print(", 姓名: " + name);

                System.out.print("\n");
            }

            System.out.println("删除...");
            for(int i=1;i<10;i++){
    
    
                if(i%2==0){
    
    
                    stmt.executeUpdate("DELETE FROM student\n" +
                            "WHERE id="+i+"; ");
                }
            }

            System.out.println("删除后查询...");
            rs = stmt.executeQuery("SELECT * FROM student");

            while(rs.next()){
    
    
                // 通过字段检索
                int id  = rs.getInt("id");
                String name = rs.getString("name");

                // 输出数据
                System.out.print("ID: " + id);
                System.out.print(", 姓名: " + name);
                System.out.print("\n");
            }

            // 完成后关闭
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
    
    
            // 处理 JDBC 错误
            se.printStackTrace();
        }catch(Exception e){
    
    
            // 处理 Class.forName 错误
            e.printStackTrace();
        }finally{
    
    
            // 关闭资源
            try{
    
    
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
    
    
            }// 什么都不做
            try{
    
    
                if(conn!=null) conn.close();
            }catch(SQLException se){
    
    
                se.printStackTrace();
            }
        }
        System.out.println("Goodbye!");
    }
}

4. Outras apresentações

Período de desenvolvimento do banco de dados:

• Era sem banco de dados: não há banco de dados dedicado e a maioria dos dados é armazenada na forma de arquivos

• Banco de dados hierárquico: use modelo hierárquico para design e armazenamento de banco de dados

•Banco de dados de rede: use o modelo de rede para design e armazenamento de banco de dados

• Banco de dados relacional: use o modelo relacional para design e armazenamento de banco de dados

•Banco de dados não relacional: para se adaptar à escalabilidade horizontal e lidar com uma grande quantidade de ambiente de dados, ele se desenvolveu muito rapidamente nos últimos anos e existem muitos tipos derivados

Novos desafios e aplicações:

•Embora na era atual da Web 2.0 - a interação do usuário e a co-construção apresentem requisitos mais altos para leitura e gravação de banco de dados, uma grande quantidade de dados precisa ser salva e, assim, bancos de dados NoSQL adequados para diferentes campos nasceram

• No entanto, os bancos de dados relacionais ainda ocupam uma posição dominante e, com o desenvolvimento contínuo e o aprendizado de outros, os bancos de dados relacionais também darão início a um novo estágio mais brilhante - NewSQL

Acho que você gosta

Origin blog.csdn.net/caqjeryy/article/details/123960099
Recomendado
Clasificación