J2EE技术规范(二)——JDBC

来源:互联网 发布:淘宝虚拟类目有哪些 编辑:程序博客网 时间:2024/05/21 18:45

一、了解JDBC

(1) JDBC是以统一方式访问数据库的API

(2) JDBC提供:

    独立于平台的数据库访问

    位置透明

    对专有数据库的问题时透明的


二、了解JDBC驱动程序

(1) JDBC Drivers是实现数据库操作的类

(2) Drivers分成两类:

  2-层——客户直接和数据库会话

  3-层——客户与代表数据库的中间层(WebLogic Server)会话

其实也就是:两层架构直接与数据库进行处理

三层架构加载数据库的中间层

这些跟.net几乎没什么差别。我们继续来看一个图:

我们看这个图有什么想发?

第4种:居于Java特色的。不需要安装软件和客户端;跟位置与平台是没有关系的。,

第1、2、4:都是两层的类型,直接连接到数据库的

第3种:基于NetworkServer集中式的监控,屏蔽丢不同的平台。在1、2、4的基础上,通过webserver来连接的一种资源。是一种特殊的jdbC的类型

三、使用JDBC直接访问数据库

(1) 直接访问数据库由下列组成:

     加载JDBC驱动器类

我们看一下直接连接数据库的示例:

(2) 使用基本的JDBC命令

import java.sql.*;try{   class.forName("com.pointbase.jdbc.jdbcUniversalDriver");   Connection con=DriverManager.getConnect("jdbc:pointbase;//server:port/MyDatabase");   Statement stmt=con.createStatement();   String sql="select * from mytable";   ResultSet res=stmt.executeQuery(sql);   while(res.next()){        String col1=res.getString("MYCOLUMN1");        int col2=res.getInt("MYCOLUMN2");       }catch(Exception e){...}}

四、使用多层(Type3)Drivers

要使用多层体系结构,必须至少配置一个连接池(Connection Pool和一个数据源(DataSource)


五、连接池Connection

连接池:

    消除频繁建立连接所需的负载

    是用于管理数据库连接的管理对象

    提供可共享,安全的连接


六、数据源Data Sources

Data Sources是:

    从连接池中提供连接的被管理的工厂对象

    绑定到JNDI并使用管理控制台配置


七、我们通过数据源Data Sources访问数据库

(1) 使用DataSource:

    先在JNDI中查找到它

    然后从DataSource获得一个连接

使用数据源连接数据库的示例:

import java.sql.*;import javax.sql.*;import javax.naming.*;...try{context ctx=new InitialContext();DataSource ds=(DataSource)ctx.lookup("TestDataSource");Connection con=ds.getConnection();Statement stmt=con.createStatement();String sql="SELECT * FROM MYTABLE";ResultSet res=stmt.executeQuery(sql);While(res.next()){  String col1=res.getString("MYCOLUM1");  ...}con.close();}catch(Exception e){...}

八、Statements和Prepared Statements

(1) Statement对象含有与数据库交互的SQL查询或更新语句

  使用Statement对象查询数据库的示例:

Statement stmt=con.createStatement();String sql="SELECT * FROM MYTABLE";ResultSet res=stmt.excuteQuery(sql);

使用PreparedStatement对象查询数据库的示例:

String sql="SELECT * FROM MYTABLE WHERE COL1=? AND COL2=?";PreparedStatement pStatement=con.prepareStatement(sql);pStatement.setString(1,searchVariableString);pStatement.setInt(2,searchVariableInt);ResultSet rs=pStatement.executeQuery();

这只是初步了解,还需要应用到项目当中去呀。

原创粉丝点击