• db_Driver Manager


    JDBC

    Java Database Connectivity 是一个独立于特定数据库的管理系统,通用的 SQL 数据库存取和操作的公共接口。

    定义一组标准,为访问不同数据库提供了统一途径。

    JDBC API

    提供者:Java 官方

    内容:供开发者调用的接口

    java.sql 或者 javax.sql 包中

    • DriverManager 类:管理数据库驱动

    • Connection 接口:连接数据库

    • Statement 接口:执行 SQL

    • ResultSet 接口:封装结果集

    Driver Manager

    提供者:Java 官方

    作用:为不同的数据库产品提供统一的接入标准。

    JDBC 驱动

    提供者:数据库厂商

    作用:让 Java 完成与特定数据库的对接。

    使用 JDBC 原理

    1、加载数据库驱动,Java Application 和 数据库的桥梁。

    2、获取 Connection,一次连接。

    3、通过 Connection 对象产生 Statement,执行 SQL 语句。

    4、ResultSet 保存 Statment 执行后所产生的结果。

    package com.m.jdbc;
    
    import com.m.jdbc.util.JDBCTools;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class Test {
        public static void main(String[] args) {
            findAll();
        }
    
        /**
         * i=0是新增,i=1是修改,i=2的删除
         * @param i
         */
        public static void saveOrUpdateOrDelete(int i){
            Connection connection = JDBCTools.getConnection();
            //3、定义 SQL
            String sql = null;
            switch (i){
                case 0:
                    sql = "insert into student(name) values('张三')";
                    break;
                case 1:
                    sql = "update student set name = '杨三' where id = 1";
                    break;
                case 2:
                    sql = "delete from student where id = 2";
                    break;
            }
            Statement statement = null;
            try {
                statement = connection.createStatement();
                int result = statement.executeUpdate(sql);
                System.out.println(result);
            } catch (SQLException e) {
                e.printStackTrace();
            }finally {
                JDBCTools.release(connection,statement,null);
            }
        }
    
        public static void findAll(){
            Connection connection = JDBCTools.getConnection();
            String sql = "select * from student";
            Statement statement = null;
            ResultSet resultSet = null;
            try {
                statement = connection.createStatement();
                resultSet = statement.executeQuery(sql);
                System.out.println(resultSet.next());
                while(resultSet.next()){
                    int id = resultSet.getInt(1);
                    String name = resultSet.getString(2);
                    System.out.println(id+"-"+name);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }finally {
                JDBCTools.release(connection,statement,resultSet);
            }
    
        }
    
    }
    
    

    JDBCTools工具类

    package com.m.jdbc.util;
    
    import java.sql.*;
    
    public class JDBCTools {
        static {
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    
        public static Connection getConnection(){
            String url = "jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=UTF-8";
            String user = "root";
            String password = "root";
            Connection connection = null;
            try {
                connection = DriverManager.getConnection(url,user,password);
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return connection;
        }
    
        public static void release(Connection connection, Statement statement, ResultSet resultSet){
            try {
                if(connection!=null){
                    connection.close();
                }
                if(statement!=null){
                    statement.close();
                }
                if(resultSet!=null){
                    resultSet.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    
    }
    
    

    Statement 的方法,Statement 是通过 Connection 产生的,是用来执行 SQL 语句的,常用的方法:

    • ResultSet executeQuery(String sql) 用来执行查询操作。

    • int executeUpdate(String sql) 用来执行新增,修改,删除操作。

    • boolean execute(String sql) 可以执行任意的 CRUD 操作。

    true 表示返回结果是 ResultSet,执行的是查询操作。

    false 表示返回结果不是 ResultSet,执行的是新增、修改、删除操作。






    备注:最近来手感,写了个类似Tomcat服务

    github地址:https://github.com/cnamep001/my_tomcat.git






  • 相关阅读:
    Unity打包ARCore项目失败,但是其他安卓项目成功
    关于Unity 图片队列存储以及出列导致内存溢出的解决方案
    unity 使用 outline 组件
    7Z解压工具的BUG
    Unity ILRuntime 调用方法一览
    Python 免费插件
    SQL经典面试题及答案
    PL/SQL Developer中文注释乱码的解决办法
    Tomcat并发优化和缓存优化
    在配置hibernate.cfg.xml时需指定使用数据库的方言:
  • 原文地址:https://www.cnblogs.com/k-class/p/13660726.html
Copyright © 2020-2023  润新知