[转帖]J2EE技术规范-篇二 about JDBC_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3552 | 回复: 0   主题: [转帖]J2EE技术规范-篇二 about JDBC        下一篇 
ilikeorcl
注册用户
等级:中尉
经验:431
发帖:32
精华:1
注册:2012-12-17
状态:离线
发送短消息息给ilikeorcl 加好友    发送短消息息给ilikeorcl 发消息
发表于: IP:您无权察看 2012-12-21 11:10:12 | [全部帖] [楼主帖] 楼主

J2EE技术规范(二)——JDBC

分类: java

一、了解JDBC

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

(2) JDBC提供:

独立于平台的数据库访问

位置透明

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

二、了解JDBC驱动程序

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

(2) Drivers分成两类:

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

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

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

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

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

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

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

124:都是两层的类型,直接连接到数据库的

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

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

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

加载JDBC驱动器类

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

(2) 使用基本的JDBC命令

[java]view plaincopyprint?
1. import java.sql.*;
2. try{
      3. class.forName("com.pointbase.jdbc.jdbcUniversalDriver");
      4. Connection con=DriverManager.getConnect("jdbc:pointbase;//server:port/MyDatabase");
      5. Statement stmt=con.createStatement();
      6. String sql="select * from mytable";
      7. ResultSet res=stmt.executeQuery(sql);
      8. while(res.next()){
            9. String col1=res.getString("MYCOLUMN1");
            10. int col2=res.getInt("MYCOLUMN2");
      11. }catch(Exception e){...}
12. }

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获得一个连接

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

[java]view plaincopyprint?
1. import java.sql.*;import javax.sql.*;import javax.naming.*;...
2. try{
      3.
      4. context ctx=new InitialContext();
      5. DataSource ds=(DataSource)ctx.lookup("TestDataSource");
      6. Connection con=ds.getConnection();
      7. Statement stmt=con.createStatement();
      8. String sql="SELECT * FROM MYTABLE";
      9. ResultSet res=stmt.executeQuery(sql);
      10. While(res.next()){
            11. String col1=res.getString("MYCOLUM1");
            12. ...
      13. }
      14. con.close();
15. }catch(Exception e){...}

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对象查询数据库的示例:

[java]view plaincopyprint?
1.   Statement stmt=con.createStatement();
2.   String sql="SELECT * FROM MYTABLE";
3.   ResultSet res=stmt.excuteQuery(sql);

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

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

[java]view plaincopyprint?
1.   String sql="SELECT * FROM MYTABLE WHERE COL1=? AND COL2=?";
2.   PreparedStatement pStatement=con.prepareStatement(sql);
3.   pStatement.setString(1,searchVariableString);
4.   pStatement.setInt(2,searchVariableInt);
5.   ResultSet rs=pStatement.executeQuery();




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论