JSP读书笔记(4)

本文详细介绍了JDBC技术,包括JDBC的基础知识、常用接口如Driver、DriverManager、Connection、Statement、ResultSet的使用,以及如何配置和连接不同类型的数据库。此外,还提到了在JSP和Servlet中应用JDBC的场景以及数据库编程的高级问题,如数据源查找工具类和分页显示的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

lark----2005.7.30

********************************************************************
第十一章:数据库及JDBC技术
1.JDBC初步:
  JDBC API为Java开发者使用数据库提供了一个统一的编程接口,由一组Java类和接口组成.
在JDBC 3.0中包括两个包:
(1)java.sql:主要针对基本的数据库编程服务,如生成连接,执行语句以及准备语句和运行批处理查询等,同时也有一些
高级的处理,如批处理更新,事务隔离和可滚动结构集等.
(2)javax.sql:主要针对数据库高级服务,如连接管理的连接池,分布式事务处理和行集等.
有四种类型的数据库驱动程序:JDBC-ODBC桥;部分java部分本机驱动程序;中间数据服务访问服务器;纯java驱动程序.

2.JDBC常用接口:
(1)Driver
  装载特定厂商提供的数据库驱动程序.如:
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//使用JDBC-ODBC Bridge Driver
  Class,forName("jdbc.driver_class_name");//使用JDBC Driver
  import java.sql.*;
  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//MS SQL Server
  Class.forName("org.gjt.mm.mysql.Driver");//Mysql JDBC
  Class.forName("oracle.jdbc.driver.OracleDriver");//Oracle JDBC

(2)DriverManager
  DriverManager是JDBC的管理层,作用于用户和驱动程序之间,跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立
连接,处理诸如驱动程序登录时间限制及登陆和跟踪消息的显示等事务.
  一个很重要的方法是:getConnection():
  static Connection getConnection(String url);
  static Connection getConnection(String url, Properties info);
  static Connection getConnection(String url, String user, String password);
  其中的url参数格式为:jdbc:<subprotocol>:<subname>
  ex:
    MS SQL Sqlserver:jdbc:microsoft:sqlserver://[ip]:[port];user=[user];password=[password]
    JDBC-ODBC:jdbc:odbc:[odbcsource]
    Oracle oci8:jdbc:oracle:oci8:@[sid]
    Mysql:jdbc:mysql:/ip/database,user,password

(3)Connection
  Connection对象代表与数据库的连接,一般从DriverManager的getConnection()得到.
  主要方法有:close(),commit(),createStatement(),isClosed(),prepareCall(),getMetaData(),
             prepareStatement(),rollback(),serAutoCommit(),

(4)Statement
  Statement提供在基层连接上运行SQL语句,并访问结果,一般通过Connection的creatStatement()返回Statement实例.
  主要方法有:execute(),executeQuery(),executeUpdate(),addBatch(),executeBatch(),clearBatch(),
  A.Statement对象用于执行不带参数的简单SQL语句,如
   Connection conn=DatabaseConnection.getConnection();
   Statement stmt=conn.createStatement();
   ResultSet rst=stmt.executeQuery("select * from sometable");
  B.PreparedStatement对象用于执行带或不带IN参数的预编译SQL语句,如
   Connection conn=DatabaseConnection.getConnection();
   PreparedStatement pstmt=conn.preparedStatement("insert into sometable values(?,?,?)");
   pstmt.setString(1,"lark");
   pstmt.setInt(2,3);
   pstmt.setBoolean(3,true);
   pstmt.executeUpdate();
  C.CallableStatement对象用于执行对数据库已存储过程的调用,如
   Connection conn=DatabaseConnection.getConnection();
   strSQL="{call demo_exe(?,?,?)}";
   java.sql.CallableStatement sqlStmt=conn.prepareCall(strSQL);
   sqlStmt.setString(1,"some_1");
   sqlStmt.setString(2,"some_2");
   sqlStmt.setString(3,"some_3");
   int i=sqlStmt.executeUpdate();

(5)ResultSet
   ResultSet包含的是数据库操作返回的结果集.
   主要方法:getString(),getFloat(),getDouble(),getDate(),getBoolean(),getObject(),getBlob(),getClob(),
   如
     while(rst.next())
     {
        out.println(rst.getString("username"));
        out.println(rst.getDate("regDate"));
        out.println(rst.getString(4));
        out.println(rst.getInt("age"));
      }

3.配置和连接不同的数据库

*****************************************************************************************************
第十二章:在JSP和Servlet中使用JDBC

*****************************************************************************************************
第十三章:JDBC数据库编程高级问题

1.一个用于查找数据源的工具类:
package com.lark.util;
import java.sql.*;
import javax.naming.*;
import javax.sql.DataSource;

public class DatabaseConn
{
  public static synchronized Connection getConnection()
         throws Exception
  {
     try
     {
        Context initContext=new javax.naming.InitialContext();
        Context envContext=(Context)initContext.lookup("java:comp/env");
        DataSource ds=(DataSource)envContext.lookup("jdbc/lark");
        return ds.getConnection();
      }
      catch(SQLException e)
      {
        throw e;
       }
       catch(NamingException e)
       {
         throw e;
        }
  }
}

2.分页显示解决方案:
(一个页面信息Bean,一个业务处理Bean,一个控制servlet,一个显示信息jsp,一个可重用分页动作jsp)
过程:分页动作jsp发出请求,控制servlet调用业务处理Bean生成页面信息Bean,
并把这生成的Bean保存到Request中,派发到信息显示的jsp页面显示出来.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值