menggongchang / BlogIssue

博客内容:Issues形式
0 stars 0 forks source link

Tomcat与JavaWeb开发技术详解:连接数据库 #4

Open menggongchang opened 6 years ago

menggongchang commented 6 years ago

访问数据库

(1)在web应用中通过JDBC API访问数据库
  1. JDBC简介

    1.1 JDBC是连接java程序和数据库服务器的纽带,JDBC的实现封装了与各种数据库服务器通信的细节。

    JDBC

    1.2 JDBC的实现

    java应用程序访问数据库,首先获得相应的JDBC驱动器的类库,注册到JDBC的驱动管理器中。

    JDBC的实现

    1.3 java.sql包中主要的类与接口的类框图

    java.sql包中主要的类与接口的类框图

    • Driver接口和DriverManager类:前者表示驱动器,后者是驱动管理器;
    • Connection接口:表示数据库连接;
    • Statement接口:负责执行SQL语句;
    • PreparedStatement接口:负责执行预准备的SQL语句;
    • ResultSet接口:表示SQL查询返回的结果集;
  2. 通过JDBC API访问数据库的步骤

    • 获得相应数据库的JDBC驱动器的类库,放到classpath中;

    • 在程序中加载并注册JDBC驱动器

      Class.forName("com.mysql.jdbc.Driver*");

      java.sql.DriverManager.deregisterDriver(new com.mysql.jdbc.Driver()); //不是必要步骤

    • 建立与数据库的连接

      Connection con = DriverManager.getConnection(dbUrl, dbUser, dbPwd);

      dbUrl:表示连接数据库的JDBC URL,例如 jdbc:mysql://127.0.0.1:3306/BookDB

    • 创建Statement对象,准备执行SQL语句

      Statement stmt = con.createStatement();

    • 执行SQL语句

      String sql = "select ID,NAME,TITLE,PRICE from BOOKS"

      ResultSet rs = stmt.executeQuery(sql);

    • 访问ResultSet中的结果集

      while (rs.next()) {
          String col1 = rs.getString(1);
          float col2 = rs.getFloat(2);
      }
    • 依次关闭ResultSet、Statement、Connection 对象。

      rs.close(); stmt.close(); con.close();

(2)在web应用中通过数据源访问数据库
   在数据源中事先建立了多个数据库连接,这些数据库连接保存在连接池中。java程序访问数据库时,只需从连接池中取出空闲状态的数据库连接,当程序访问数据库结束后,再将数据库连接放回连接池,这样可以提高访问数据库的效率。