zoukankan      html  css  js  c++  java
  • 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






  • 相关阅读:
    27. Remove Element
    26. Remove Duplicates from Sorted Array
    643. Maximum Average Subarray I
    674. Longest Continuous Increasing Subsequence
    1. Two Sum
    217. Contains Duplicate
    448. Find All Numbers Disappeared in an Array
    566. Reshape the Matrix
    628. Maximum Product of Three Numbers
    UVa 1349 Optimal Bus Route Design (最佳完美匹配)
  • 原文地址:https://www.cnblogs.com/k-class/p/13660726.html
Copyright © 2011-2022 走看看