• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

用JDBC连接数据库(1)

发布: 2007-7-14 21:19 | 作者: 佚名    | 来源: 网络转载     | 查看: 18次 | 进入软件测试论坛讨论

领测软件测试网 用JDBC连接数据库(1)

所有的数据库的对象和方法都在java.sql.* 里面,所以首先要import java.sql.*,要想连接数据库,首先要将驱动程序调入。
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");这是JDBC-ODBC 的驱动程序。在JBuilder5.0例子里面有一个用DataStore的例子,调用驱动程序是这样的:Class.forName("com.borland.datastore.jdbc.DataStoreDriver");这个命令调入驱动程序并创建改类的一个实例。

要想连接一个指定的数据库,你必须创建Connection类的一个实例。
String url = "jdbc:odbc:Grocery prices";
Connection con = DriverManager.getConnection(url);
注意你在此用到的数据库名称是你在ODBC设置控制面板中输入的数据资源名。URL语法对于不同类型的数据库会很不一样。
语法是这样的: jdbc:subprotocol:subname
开头都是JDBC,后面是子协议,上例是ODBC,JBuilder5.0中的例子是这样的:jdbc:borland:dslocal:c:/jbuilder5/bin/TEMPORARY.jds 它用的是DataStore
若你正连接一数据库其它机器上的服务器,你还需指定机器和子目录。
jdbc:bark//doggie/elliott
最后,你应指定一用户名和密码作为连接字符串的一部分。
jdbc:bark//doggie/elliot;UID=GoodDog;PWD=woof

· 访问数据库(转载)

一旦与数据库相连,你可以按表的名称、列的名称和内容索取信息,也可以运行SQL命令查询数据库、添加或修改数据库内容。可用来从数据库获取信息的对象有:
DatabaseMetaData 关于数据库的总体信息:表名、表索引、数据库产品名称和版本、数据库支持的操作。
ResultSet 表或一次查询结果的信息。对数据的访问是逐行的,但对列的访问可采取任何顺序。
ResultSetMetaData 一个ResultSet中列名和类型的信息。

Key Lastname SalaryType   SalaryType Min Max
1 Adams 2   1 30000 45000
2 Johnson 1   2 45000 60000
3 Smyth 3   3 60000 75000
4 Tully 1        
5 Wolff 2        

SalaryType列中的数据指向第二个表。其实还可以有许多类似的表,如所居住的州、各州的税收、 健康计划代扣款等。每个表都有一个主键列和一些其它的数据列。如何在数据库中创建表已被认为是一种艺术或科学。这些表的结构由它们的一般形式指定,一共有三种一般形式:
第一、第二、第三一般形式,它们的缩写分别为1NF、2NF、3NF。

1. 表中的每个单一只能有一个值(不能为一组值)。(1NF)

2. 除具有1NF的要求外,所有的非键列完全依赖于键列。也就是说主键和行中其它单元为一一
对应的关系。(2NF)

3. 除具有2NF的要求外,所有非键列间相互独立。也就是说没有能从其它数据列计算出来的值
的数据列。(3NF)

如今,几乎所有的数据库中的表都是第三一般形式(3NF)。这意味着会存在相当数量的表,而
每个表中的信息列会相对较少。

· 从数据库中获取数据

假设为了某些计划需求,我们要产生一个包含雇员以及他们工资范围的表。这个表在数据库中
并不直接存在,但可以通过对数据库发出一个查询来构造出来。我们有类似于以下这个表的一个表:
:

Name
Min
Max

Adams $45,000.00 $60,000.00
Johnson $30,000.00 $45,000.00
Smyth $60,000.00 $75,000.00
Tully $30,000.00 $45,000.00
Wolff $45,000.00 $60,000.00

或许这个表已按工资的升序排列

Name
Min
Max

Tully $30,000.00 $45,000.00
Johnson $30,000.00 $45,000.00
Wolff $45,000.00 $60,000.00
Adams $45,000.00 $60,000.00
Smyth $60,000.00 $75,000.00

我们发现对包括这些表发出的查询会具有以下的格式

SELECT DISTINCTROW Employees.Name, SalaryRanges.Min,
SalaryRanges.Max FROM Employees INNER JOIN SalaryRanges ON Employees.SalaryKey = SalaryRanges.SalaryKey
ORDER BY SalaryRanges.Min;

这种语言被成为结构化查询语言或SQL(常被读作“sequel”),而且几乎所有的数据库都支持该语言。
近些年来,已为SQL指定了数个标准,绝大多数的PC数据库都支持这些ANSI标准。SQL-92被认为是
最基本的标准,并在随后有数次更新。但是,所有的数据库都不能很好的支持以后版本的SQL,为了
利用独立于自己数据库的不同性能,它们都提供了不同类型的SQL扩展。

(未完待续)

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网