SQLExplorer是Eclipse集成开发环境的一种插件,它可以被用来从Eclipse连接到一个数据库。SQLExplorer插件提供了一个使用SQL语句访问数据库的图形用户接口(GUI)。通过使用SQLExplorer,你能够显示表格、表格结构和表格中的数据,以及提取、添加、更新或删除表格数据。SQLExplorer同样能够生成SQL脚本来创建和查询表格。所以,与命令行客户端相比,使用SQLExplorer可能是更优越的选择。在这篇指南中,我们将使用SQLExplorer插件建立一个从Eclipse3.0到开源数据库MySQL的JDBC连接。
概 览
通过在集成开发环境中加入一个SQLExplorer视窗,SQLExplorer插件为Eclipse配置了一个访问数据库的SQL客户端。
为了演示SQLExplorer插件的使用,我们将在开源数据库MySQL中创建一个示例表,并且建立一个从Eclipse到MySQL数据库的JDBC连接。接着,我们将在SQLExplorer的图形SQL客户端中提取和显示示例数据。同样,我们也将通过更新和删除示例表中的数据来演示SQLExplorer插件的不同特点。
预 备 安 装
1. 下载并安装 Eclipse 3.02
2. 下载SQLExplorer文件 net.sourceforge.sqlexplorer_2.2.3.zip.
3. 解压 SQLExplorer .zip 文件到 /eclipse 目录。 是Eclipse安装的目录。 这将把SQLExplorer插件的 features 和 plugins 目录添加到Eclipse中的 features 和 plugins 目录。(译者注:这里说得不是十分清楚,其实是先将SQLExplorer .zip文件解压,然后分别把features 和 plugins 目录中的所有文件拷贝到Eclipse中对应的features 和 plugins 目录中,这是安装Eclipse插件的常用方法,当然也可以使用link方式安装插件,请参阅网上相应文档)
4. 重启Eclipse.
5. 安装MySQL数据库。
6. 下载Connector/J,通过使用包含在其中的一个 .jar文件中的JDBC驱动来连接MySQL数据库。
7. 作为一个root用户登陆到MySQL数据库,命令如下:
>mysql -u root
root用户没有设定密码。需要通过密码登陆到数据库时,指定如下命令:
>mysql -u root -p
8. 使用如下命令连接到test数据库,这是一个示例数据库实例:
>use test
9. 在test数据库中创建一个示例表。示例表 Catalog 由ONJava上的文章名称组成。用来创建示例表的SQL脚本列在下面:
CREATE TABLE Catalog(CatalogId INTEGER, Journal VARCHAR(25), Publisher Varchar(25), Date VARCHAR(25), Title Varchar(45), Author Varchar(25)); INSERT INTO Catalog VALUES('1', 'onjava', 'OReilly', 'April 2005', 'Five Favorite Features from 5.0', 'David Flanagan'); INSERT INTO Catalog VALUES('2', 'onjava', 'OReilly', 'Feb 2005', 'Introducing JBoss Remoting', 'John Mazzitelli'); INSERT INTO Catalog VALUES('3', 'onjava', 'OReilly', 'March 2005', 'Aspect-Oriented Annotations', 'Bill Burke');
配置 SQLExplorer
安装了SQLExplorer插件后,我们将要在Eclipse 3.02中配置SQLExplorer.首先,在Eclipse中打开SQLExplorer视窗。在Eclipse 集成开发环境中单击 “Open a perspective”按扭来打开一个视窗。图1说明了“Open a perspective”按扭。
图 1. 打开视窗
在条目列表中,选择“Other...”来显示SQLExplorer插件,如图2所示。
图 2. “ other… ”菜单项
在 Select Perspective框中,选择SQLExplorer视窗,如图3所示。通过选择SQLExplorer视窗,SQLExplorer插件的功能部件在Eclipse中变得可用。
图 3. SQLExplorer 视窗
Drivers 标签显示了不同的数据库驱动,它们被用来连接不同的数据库。现在可用的数据库包括DB2, MySQL, Oracle, Sybase, HSQLDB, SQLServer 和 PostgreSQL。针对MySQL,我们需要配置SQLExplorer。为了配置MySQL驱动,右击 MMMySQL Driver 结点, 并且选择 Change the Selected Driver, 如图4所示。
图 4. 修改驱动
在 Modify Driver框中,选择 Extra Class Path 标签,并且单击 Add 按扭将 MySQL 驱动 .jar 文件(为下载的 Connector/J 的一部分)添加到类路径中。图5阐明了将MySQL 的 JDBC 驱动加到 Eclipse 的类路径中。
图 5. 设置驱动
添加 MySQL Connector/J 驱动 .jar 文件,mysql-connector-java-3.0.16-ga-bin.jar,到类路径中。在 Example URL 域中, 指定连接到数据库的 URL。一个连接到 test 数据库的JDBC连接将被创建,test数据库已经在MySQL安装的时候预先创建了。连接到 test 数据库的 URL 为 jdbc:mysql://localhost/test。在 Driver Class Name 域中,指定MySQL JDBC 驱动为 com.mysql.jdbc.Driver。MMMySQL 驱动按如图6所示的设置配置。
图 6. 设定 MySQL JDBC 设置
想要连接到 MySQL 数据库并提取其中的表格,我们需要为连接建立一个别名。一个连接的别名说明了连接设置,JDBC 驱动,URL,用户名和密码。在SQLExplorer视窗中选择 Aliases 标签。单击 “Create new Alias” 按扭来创建一个新的别名,如图7所示。
图 7. 创建一个新的别名
在“Create new Alias"框中,指定一个别名。选择MMMySQL Driver 来为MySQL数据库创建一个别名。在 URL 域中指定 test 数据库的连接 URL, jdbc:mysql://localhost/test。图8展示了MySQL 别名的设置。
图 8. 创建一个新的别名
以上操作将一个MySQL的别名加入到 Aliases 标签中,正如图9所示。想要修改一个别名,右击别名结点并选择 “Change the selected Alias.”
图 9. MySQL 别名
MySQL 别名用来连接到 MySQL 数据库并且从中提取数据。要想打开数据库连接,右击 MySQL 别名结点并选择 Open,如图10所示。
图 10. 打开别名
在 Connection 框中,指定登陆到 MySQL 数据库使用的用户名和密码,然后单击 OK 按扭。图11展示了登陆的设置。缺省情况下,对于 root 用户不需要密码。
图 11. 打开连接
一个与 MySQL 数据库的 JDBC 连接就这样建立了。一旦连接上了,Eclipse 就会显示 MySQL 数据库中的不同的数据库模式,如图12所示。
图 12. 列出数据库模式
对其他数据库的支持
这个 JDBC 连接的例子是关于配置与 MySQL 数据库连接的。通过在 Drivers 标签中为数据库选择合适的驱动,可以配置与其他数据库的 JDBC 连接。只需为选定的数据库指定驱动类和连接URL,就可以配置与该数据库的 JDBC 连接。以下列出的是其他数据库的驱动类、连接URL和驱动 .jar 文件。
DB2
o Driver Class: COM.ibm.db2.jdbc.app.DB2Driver
o Connection URL: jdbc:db2:
o Driver .jar/.zip: db2java.zip
Sybase
o Driver Class: com.sybase.jdbc2.jdbc.SybDriver
o Connection URL: jdbc:sybase:Tds::/
o Driver .jar/.zip: jconn2.jar
Oracle
o Driver Class: oracle.jdbc.driver.OracleDriver
o Connection URL: jdbc:oracle:thin:@ ::
o Driver .jar/.zip: classes12.zip
SQLServer
o Driver Class: com.microsoft.jdbc.sqlserver.SQLServerDriver
o Connection URL: jdbc:microsoft:sqlserver://localhost:1433
o Driver .jar/.zip: mssqlserver.jar, msbase.jar, msutil.jar
PostgreSQL
o Driver Class: org.postgresql.Driver
o Connection URL: jdbc:postgresql://:/
o Driver .jar/.zip: postgresql.jar
在如上列表中, 是指数据库实例, 是数据库连接端口, 是数据库的SID, 是数据库服务器。
访问数据库数据
在上一节中我们在 Eclipse 中配置了 SQLExplorer 插件。下面,我们将从示例表 Catalog 中提取并修改数据。如果是从一个命令行 SQL 客户端访问数据库,则使用如下命令来提取数据(在一行中):
SQL>SELECT catalogId, journal, publisher, date, title, author from Catalog;
这将以文本表的形式显示数据。使用图形 SQL 客户端 SQLExplorer,数据将以结构表的形式显示。SQLExplorer 同样也会生成创建表和从中提取数据的 SQL 脚本。如果使用 DESC 命令在一个命令行客户端中显示表格的结构,只有列名,列数据的类型,列数据的长度大小以及非空的值会被显示。有了 SQLExplorer, 索引、主键和外键值都会被显示。
在 Eclipse 的 SQLExplorer 视窗中选择 Database Structure View 标签。为了显示表 Catalog 的结构,在 Database Structure View 中选择 Database>test>TABLE>Catalog 结点。图13显示了表 Catalog 的结构。
图 13. Database Structure View
Columns 标签显示了下表中列出的列:
为了显示选中的表格中的数据,请选择 Preview 标签。图14显示了表 Catalog 中的数据。关于表格的其他的信息分别在 Indexes, Primary Key, Foreign Key 和 Row Count 标签中显示。
图 14. 显示表格数据
若想得到创建表格的 SQL 脚本,右击表结点并且选择 Create Table Script,如图15所示。
图 15. 生成建表脚本
如图16所示,这将生成创建被选表格的 SQL 脚本, 并将其显示在 SQLExplorer 视窗中的 SQL Editor 中。
图 16. 建表脚本
Database Structure View 的 Preview 标签中的数据是使用缺省的 Select 查询提取的,它包括了表格中所有的列。要想显示缺省的 Select 查询语句,右击表结点并且选择 “Generate Select in Sql Editor”,如图17所示。
图 17. 生成缺省 select 查询语句
如图18所示,SQL Editor 中显示了从表 Catalog 中提取数据的缺省查询语句。注意:显示在 SQL Editor 中的 SELECT 查询语句的结尾没有分号(;)。
图 18. Select 查询语句
查询语句可能被定制为只显示表格中的几列数据。比如,修改 Select 语句使其显示除了 CatalogId 列的其他所有列。选择 Execute SQL 按扭来运行 SQL 脚本。由修改后的 select 语句得到的数据显示在 SQL Results 框中,如图19所示。
图 19. 使用定制的 SELECT 查询语句提取表中数据
接下来,SQL Editor 中的一条 SQL 脚本将会更新表 Catalog。例如,把标题“Five Favorite Features from 5.0”修改为“New Features in JDK 5.0”。如图20所示,在 SQL Editor 中运行更新表 Catalog 的脚本
图 20. 更新 SQL 脚本
表格中数据被更新了。在修改后的表格上运行缺省的 select 查询,修改后的数据将被显示在 SQL Results 框中。图21显示了表 Catalog 修改后的数据。
图 21. 修改表格数据
接着,使用 DELETE SQL语句从表中删除一行数据,如图22所示。CatalogId='3'的行将从表中删除。
图 22. DELETE SQL 脚本
运行缺省的 select 查询语句来显示修改后的表中的数据。SQL Results 框中的表格不再包括被删除的行了,如图23所示。
图 23. 删除了一行后的表格数据
通过在 Eclipse 中配置 SQLExplorer 插件,该集成开发环境获得了图形用户界面(GUI)较之命令行客户端的许多优点。
总 结
例子中,我们与 MySQL 数据库建立了一个 JDBC 连接,并访问其中的一个示例数据库。SQL Explorer 同样可以被用来配置与其他数据库的连接,包括 DB2, Sybase, Oracle, HSQLDB, SQL Server 和 PostgreSQL。