动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.Java 中文问题 集锦.
.全面研读EJB 2.0.
.用ActionMapping构建漂亮的Strut.
.全面认识JUnit 4的新特征.
.Robocode高手的秘诀:因数避墙法.
.JBoss收购Arjuna TS等技术并将开.
.Hibernate中any元素的应用体会.
.The Three Faces of SOA.
.junit的开发(eclipse插件开发系列.
.JAVA文件加密器(收藏).
.课程介绍(13): SL-291 JavaBeans.
.JDK 1.5 新功能使用实例之Generi.
.[Java]基本的学习实例.
.JDK1.5新特性介绍.
.JAVA实现远程文件读取!.
.使用JMX监控应用程序内、外部的状.
.Ubuntu 上利用 subcli.
.JBuilder7+Weblogic7+mysql开发E.
.针对用户界面的多线程.
.3D编程指南第二部分:光的3D理论.

数据源在jdbc中的应用(1)

发表日期:2008-1-5 |



  简介
  众所周知,JDBC(Java数据库连接)是Java 2企业版的重要组成部分。它是基于SQL层的API。通过把SQL语句嵌入JDBC接口的方法中,用户可以通过Java程序执行几乎所有的数据库操作。JDBC只提供了接口,具体的类的实现要求数据库的设计者完成。通过生成这些接口的实例,即使对于不同的数据库,Java程序也可以正确地执行SQL调用。所以对于 程序员来说,不必把注重力放在如何向数据库发送SQL指令,因为程序员需要了解和用到
  的只是JDBC的接口,只有在极少数情况下会用到面向特定数据库的类,例如程序员希望使用Oracle的扩展API。
  在JDBC程序中,首先需要做的是实现与数据库的连接。在示例程序中,我们使用的是OR ACLE8i的JDBC包。连接数据库通常需要实现以下几个步骤:
  1. 注册数据库驱动程序(driver)。可以通过调用java.sql.DriverManager类的regis
  terDriver方法显式注册驱动程序,也可以通过加载数据库驱动程序类隐式注册驱动程序
  。例如我们希望向虚拟机注册 // 显式注册
  DriverManager.registerDriver(new oracle.jdbc.driver.// 隐式注册
  Class.forName(“oracle.jdbc.driver.
  关于虚拟机如何自动注册通过类加载器(ClassLoader)加载的数据库驱动程序超过了本 文讨论的范围,在此不做具体讨论。
  2. 建立连接。调用java.sql.DriverManager类的getConnection()方法可以建立与数 据库的连接。GetConnection()方法返回一个Connection对象。需要注重的是,getCo
  nnection()方法会自动从数据库驱动程序注册表中选择一个最合适的驱动程序。
  3. 建立连接后,答应自动更新(AutoCommit)。调用java.sql.Connection接口的ser
  AutoCommit()方法可以设定当程序向数据库发出一条SQL指令后,数据库是否立即更新 。
  下面是一个具体的实例。在该实例中,作为getConnection()方法参数的url使用的是
  Net8 keyWord-value pair格式。当然也可以使用普通格式。数据库安装在名为Chicago
  的服务器上,使用的协议是TCP协议,使用的端口是1521,数据库的SID是chidb,使用的
  数据库驱动程序是 import java.sql.*;
  // 初始化常数
  private static String url =
    “jdbcracle:thin:@(description=(address=(host=Chicago)” +
    “(protocol=tcp)(port=1521))(connect_data=(sid=chidb)))”;
    // 也可以设定url为“jdbcracle:thin:@ Chicago:1521:chidb”
    private static String username = “guest”;
  private static String password = “guest”;
  try
  {
    // 注册数据库
    Class.forName(“oracle.jdbc.driver.  // 建立连接
    Connection conn =
   DriverManager.getConnection(url, username, password);
  // 答应自动更新
  Conn.setAutoCommit(true);
  }
  catch(ClassNotFoundException e )
  {
  e.printStackTrace();
  }
  catch(SQLException e)
  {
  e.printStackTrace();
  }
  从实际应用的角度出发,我们可以看出采取这种方式连接到数据库存在几个问题。第一 是安全性问题,由于程序代码中包含用户名和密码,其他人假如能得到bytecode,可以通过反编译工具获得用户名和密码。第二是代码的可移植性问题。假如希望连接的数据库名称或用户名有所更改,程序员需要修改源程序,然后把修改过的程序发送给用户。
  也就是说,软件无法脱离数据库独立存在。这样不仅会大大提高软件的成本,也不利于软件本身的发展。还可能出现这样的情况:在某些情况下,提供数据的机构不希望数据库的用户名和密码让编写程序的程序员知道知道。这样就提出了一个问题,如何使Java和数据库之间建立连接时隐藏一些敏感的信息。
  数据源(Data Source)及JNDI
  数据源是在JDBC 2.0中引入的一个概念。在JDBC 2.0扩展包中定义了javax.sql.DataSo
  urce接口来描述这个概念。假如用户希望建立一个数据库连接,通过查询在JNDI服务中的数据源,可以从数据源中获取相应的数据库连接。这样用户就只需要提供一个逻辑名称(Logic Name),而不是数据库登录的具体细节。
  在这里有必要简单介绍一下JNDI。JNDI的全称是Java Naming and Directory Interface, 可以理解为Java名称和目录服务接口。JNDI向应用程序提供了一个查询和使用远程 服务的机制。这些服务可以是任何企业服务。对于JDBC应用程序来说,JNDI提供的是数 据库连接服务。当然JNDI也可以向数据库提供其他服务,但是这超出了本文范围,在此 不做论述。
  其实JNDI并不难理解。简单来说,名称服务提供了一个把文件,打印机,服务器等实体 映射到一个逻辑名称的机制。例如在操作系统中的名称服务就把打印机映射到一个I/O端 口。而目录服务可以理解为名称服务的一个扩展,它答应在服务中的各项拥有自己的属 性。又以打印机为例,打印机可以是彩色打印机,支持双面打印,支持网络打印,支持 高速打印等。所有这些打印机的属性都可以储存在目录服务中,和相应的打印机联系起 来。一些常见的目录服务有NIS,NIS+,LDAP和Novell的NDS等。
  JNDI使应用程序通过使用逻辑名称获取对象和对象提供的服务,从而使程序员可以避免 使用与提供对象的机构有关联的代码。例如在下面的例子中使用了在JNDI中的数据源,
  程序员就不需要提供
上一篇:用JDBC开发基于客户/服务器模式的Internet/Intranet数 人气:748
下一篇:数据源在jdbc中的应用(2) 人气:802
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-6 Movie34电影搜索引擎 v3.0
2008-9-6 wap2.0仿帝国建站喜用 v2.0
2008-9-6 免费人才招聘网 宽屏版 v3.01
2008-9-6 喜喔喔视频采集程序 v1.0 beta
2008-9-6 ASP客户管理系统
2008-9-6 主流驿站中秋祝福程序
2008-9-6 php实现msn协议的类
2008-9-5 Coppermine Photo Gallery v1.4.
2008-9-5 清松网络日记本 v2.4
2008-8-23 Mini WinMount V0.4
2008-8-23 Vista优化大师3.11正式版
2008-8-23 Wine 1.13
2008-8-23 KlipFolio 5.0 Build 5899-80
2008-8-23 Windows Sysinternals Desktops
2008-8-23 OneTap Movies1.2破解版
2008-8-23 AnnotaterPDF阅读1.1.503 破解版
2008-8-23 SoundMeter分贝测量仪 v1.0汉化破
2008-8-23 iDrum音乐节拍1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号