Java学习笔记—JDBC(Java Database Connectivity)-----JDBC基础(一)

 

一、知识归纳:
  1. JDBC的作用:Java获取数据库中的数据或者将数据存储到数据库中
  2. JDBC是什么:Java 操作数据库技术,一套API
  3. JDBC的操作数据库过程
    a) 加载驱动(前提:需要将对于的jar包添加到项目中)
    Class.forName("驱动类");
    b) 建立与数据库的连接
      Connection conn = DriverManger.getConnection(url,username,password);
    c) 创建声明对象
      Statement stmt = conn.createStatement();
    d) 执行SQL语句(创建结果集对象)
      String sql="SQL语句"
      ResultSet rs = stmt.executeQuery(sql); //在执行的时候需要提供SQL语句
      [int rows = stmt.executeUpdate(sql) ;]
    e) 解析结果集
      while(rs.next()){
        rs.getXXX("字段名") //表示获取当前行中该字段的值
      }
    f) 关闭
      关闭结果集对象 rs.close();
      关闭声明对象 stmt.close();
      关闭连接对象 conn.close();
  4. 预处理语句
    String sql="SQL语句";
    PreparedStatement pstmt = conn.preparedStatement(sql);
    pstmt.setXXX(index, “值”);
    pstmt.executeQuery();
    [int rows = pstmt.executeUpdate() ;]
  5.import
    java.sql.Connection:连接
    class MySqlConnection implements Connection{
        //具体实现Mysql数据库的连接过程
    }
    java.sql.Statement:执行sql语句的
    java.sql.ResultSet:结果集
    java.sql.PreparedStatement:建立预处理语句的
      小结:如果需要操作具体某个数据库则需要下载对应的“驱动包”

二、JDBC(Java DataBase Connectivity Java数据库连接)
  JDBC是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
  JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

三、JDBC体系结构
  JDBC API支持用于数据库访问的两层和三层处理模型,但通常,JDBC体系结构由两层组成:
  JDBC API:这提供了应用程序到JDBC管理器连接。
  JDBC驱动程序API:这支持JDBC管理器到驱动程序连接。

四、通用JDBC 组件
​    DriverManager: 此类管理数据库驱动程序列表。使用通信子协议将来自java应用程序的连接请求与适当的数据库驱动程序匹配。
​    Driver:此接口处理与数据库服务器的通信。通常很少会直接与Driver对象进行交互,而是使用DriverManager对象来管理这种类型的对象。
​    Connection:该界面具有用于联系数据库的所有方法。连接对象表示通信上下文,即,与数据库的所有通信仅通过连接对象。
​    Statement:使用从此接口创建的对象将SQL语句提交到数据库。除了执行存储过程之外,一些派生接口还接受参数。
​    ResultSet:在使用Statement对象执行SQL查询后,这些对象保存从数据库检索的数据。它作为一个迭代器,允许我们移动其数据。
​    SQLException:此类处理数据库应用程序中发生的任何错误。

五、抽出工具(Properties文件)
  driverClass = com.mysql.jdbc.Driver
  url = jdbc:mysql://localhost:3306/数据库
  username = root
  password = 123456

  //读取Properties文件中的内容
  public class Lesson {
    public static void main(String[] args) {
    Properties p = new Properties();
    InputStream is = Lesson.class.getClassLoader().getResourceAsStream("jdbc.properties");
    try {
      p.load(is);
      String driver = p.getProperty("driverClass");
      System.out.println(driver);
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }

六、封装工具类(JdbcUtils)
  package com.jdbc.util;

  import java.io.IOException;
  import java.sql.Connection;
  import java.sql.DriverManager;
  import java.sql.ResultSet;
  import java.sql.SQLException;
  import java.sql.Statement;
  import java.util.Properties;

  /**
  * 实现对JDBC的封装
  */
  public class JdbcUtils {
    private static String driverName;
    private static String url;
    private static String username;
    private static String password;

    static {
      Properties p = new Properties();
    try {
      p.load(JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties"));
      driverName = p.getProperty("driverClass");
      url = p.getProperty("url");
      username = p.getProperty("username");
      password = p.getProperty("password");

      Class.forName(driverName);// 在JVM的内存中创建一个Driver对象

      } catch (IOException e) {
        e.printStackTrace();
      } catch (ClassNotFoundException e) {
        e.printStackTrace();
      }
    }

   // 获取连接对象
   public static Connection getConnection() {
     Connection conn = null;
     // 实现连接对象的创建
     try {
        conn = DriverManager.getConnection(url, username, password);
       } catch (SQLException e) {
        e.printStackTrace();
      }
      return conn;
     }

    // 关闭操作
    public static void closeRs(ResultSet rs) {
      try {
        if (rs != null) {
          rs.close();
        }
       } catch (SQLException e) {
         e.printStackTrace();
      }
    }

    public static void closeStmt(Statement stmt) {
      try {
         if (stmt != null) {
          stmt.close();
         }
        } catch (SQLException e) {
          e.printStackTrace();
        }
       }

    public static void closeConn(Connection conn) {
       try {
         if (conn != null) {
            conn.close();
          }
        } catch (SQLException e) {
          e.printStackTrace();
        }
    }

    public static void closeAll(ResultSet rs, Statement stmt, Connection conn) {
      closeRs(rs);
      closeStmt(stmt);
      closeConn(conn);
    }
   }

 

转载于:https://www.cnblogs.com/JKgrid/p/10699556.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值