日期:2011-03-22 16:16:00 来源:本站整理
用JDBC衔接数据库[Java编程]
本文“用JDBC衔接数据库[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
据预算,将近一半的软件开辟都要触及客户(机)/服务器方面的操作.Java为自己保证的一项超卓本领就是构建与平台无关的客户机/服务器数据库利用.在Java 1.1中,这一保证通过Java数据库衔接(JDBC)实现了.
数据库最主要的一个问题就是各家公司之间的规格大战.确切存在一种“尺度”数据库语言,即“构造查询语言”(SQL-92),但普通都必须切当知道自己要和哪家数据库公司打交道,不然极易出问题,固然存在所谓的“尺度”.JDBC是面向“与平台无关”计划的,所以在编程的时刻没必要关心自己要利用的是什么数据库产品.但是,从JDBC里仍有大概发出对某些数据库公司专勤奋效的调用,所以仍旧不可率性妄为.
和Java中的很多API一样,JDBC也做到了尽大概的简化.我们发出的办法调用对应于从数据库汇集数据时想当然的做法:同数据库衔接,成立一个语句并履行查询,然后处理后果集.
为实现这一“与平台无关”的特点,JDBC为我们供应了一个“驱动程序管理器”,它能动态保护数据库查询所需的全部驱动程序对象.所以假定要衔接由三家公司开辟的差别种类的数据库,就需求三个单独的驱动程序对象.驱动程序对象会在装载时由“驱动程序管理器”自动注册,并可用Class.forName()强行装载.
为翻开一个数据库,必须成立一个“数据库URL”,它要指定下述三方面的内容:
(1) 用“jdbc”指出要利用JDBC.
(2) “子协议”:驱动程序的名字大概一种数据库衔接机制的名称.由于JDBC的计划从ODBC吸取了很多灵感,所以可以选用的第一种子协议就是“jdbc-odbc桥”,它用“odbc”关键字便可指定.
(3) 数据库标识符:随利用的数据库驱动程序的差别而改变,但普通都供应了一个对比符合逻辑的名称,由数据库管理软件映射(对应)到保存了数据表的一个物理目录.为使自己的数据库标识符具有任何含义,必须用自己的数据库管理软件为自己喜好的名字注册(注册的具体历程又随运行平台的差别而改变).
全部这些信息都统一编译到一个字串里,即“数据库URL”.举个例子来说,若想通过ODBC子协议同一个标识为“people”的数据库衔接,呼应的数据库URL可设为:
String dbUrl = "jdbc:odbc:people"
假如通过一个网络衔接,数据库URL也需求包含对远程机械举行标识的信息.
预备好同数据库衔接后,可调用静态办法DriverManager.getConnection(),将数据库的URL以及进入那个数据库所需的用户名密码传送给它.得到的返回后果是一个Connection对象,操纵它便可查询和操作数据库.
下面这个例子将翻开一个联结信息数据库,并按照号令行供应的参数查询一个人的姓(Last Name).它只挑选那些有E-mail地址的人的名字,然后列印出符合查询条件的全部人:
可以看到,数据库URL的成立历程与我们前面报告的完好一样.在该例中,数据库未设密码保护,所以用户名和密码都是空串.//: Lookup.java // Looks up email addresses in a // local database using JDBC import java.sql.*; public class Lookup { public static void main(String[] args) { String dbUrl = "jdbc:odbc:people"; String user = ""; String password = ""; try { // Load the driver (registers itself) Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver"); Connection c = DriverManager.getConnection( dbUrl, user, password); Statement s = c.createStatement(); // SQL code: ResultSet r = s.executeQuery( "SELECT FIRST, LAST, EMAIL " + "FROM people.csv people " + "WHERE " + "(LAST='" + args[0] + "') " + " AND (EMAIL Is Not Null) " + "ORDER BY FIRST"); while(r.next()) { // Capitalization doesn't matter: System.out.println( r.getString("Last") + ", " + r.getString("fIRST") + ": " + r.getString("EMAIL") ); } s.close(); // Also closes ResultSet } catch(Exception e) { e.printStackTrace(); } } } ///:~
用DriverManager.getConnection()建好衔接后,接下来可按照后果Connection对象成立一个Statement(语句)对象,这是用createStatement()办法实现的.按照后果Statement,我们可调用executeQuery(),向其传送包含了SQL-92尺度SQL语句的一个字串(不久就会看到若何自动成立这类语句,所以没必要在这里知道关于SQL更多的东西).
executeQuery()办法会返回一个ResultSet(后果集)对象,它与担当器非常类似:next()办法将担当器移至语句中的下一条记录;假如已到达后果集的末尾,则返回null.我们必定能从executeQuery()返回一个ResultSet对象,即便查询后果是个空集(也就是说,不会产生一个违例).注意在试图读取任何记录数据之前,都必须调用一次next().若后果集为空,那么对next()的这个初次调用就会返回false.关于后果集合的每条记录,都可将字段名作为字串利用(当然还有其他办法),从而挑选差别的字段.别的要注意的是字段名的大小写是无关紧急的——SQL数据库不在乎这个问题.为决意返回的范例,可调用getString(),getFloat()等等.到这个时刻,我们已经用Java的原始格局得到了自己的数据库数据,接下去可用Java代码做自己想做的任何事情了.
以上是“用JDBC衔接数据库[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:得到JDBC学习示例
- ·下一篇文章:post是什么意思
- ·中查找“用JDBC衔接数据库”更多相关内容
- ·中查找“用JDBC衔接数据库”更多相关内容
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论