下一页 上一页 目录

6. 如何设置 JDBC 支持

有几种数据库可以在 Linux 上运行,并且也支持 JDBC 接口。这些包括

如果您只想尝试一个 DBMS,我建议您首先尝试 PostgreSQL,主要是因为它随大多数主要的 Linux 发行版一起提供,并且可能已经安装在您的系统上。

6.1 IBM DB2

待撰写。

请参阅 http://www-4.ibm.com/software/data/db2/linux/ 以获取更多信息。

6.2 MiniSQL

待撰写。

请参阅 http://www.hughes.com.au/ 以获取更多信息。

6.3 MySQL

待撰写。

请参阅 http://www.mysql.org/ 以获取更多信息。

6.4 Oracle

待撰写。

请参阅 http://platforms.oracle.com/linux/

6.5 PostgreSQL

背景

PostgreSQL 是一个复杂的对象关系数据库管理系统 (DBMS),几乎支持所有 SQL 结构,包括子查询、事务以及用户定义的类型和函数。它是任何地方可用的最先进的开源数据库。PostgreSQL, Inc. 也提供商业支持。当前版本是 6.5.3,可以从许多镜像站点或 CD 上获得。(来自 PostgreSQL 网站。)

由于 PostgreSQL 的开源许可证,您的 Linux 发行版可能已经附带了它。

下载和安装

与其从 PostgreSQL 下载,我建议您首先尝试您的 Linux 发行版最有可能附带的 PostgreSQL。

或者,可以从 https://postgresql.ac.cn 获取 PostgreSQL。

要确认 PostgreSQL 是否安装在您的计算机上,请输入

rpm -qa | grep postgresql

which postmaster
which psql

您需要安装 postgresql、postgresql-server 和 postgresql-java 软件包才能将 Java 与 PostgreSQL 一起使用。

确保 PostgreSQL 正在运行。输入

ps -f -u postgres

您应该看到 postmaster,PostgreSQL 守护程序正在运行。

如果 postmaster 没有运行,则可能有一个 Sys V Init 脚本可以用来启动它。在许多发行版中,它位于 /etc/rc.d/init.d 中。要启动 PostgreSQL,请输入

cd /etc/rc.d/init.d
./postgresql start

您可以使用上面的 "ps" 命令来确认 PostgreSQL 正在运行。

注意:要使用 JDBC,PostgreSQL 需要使用 '-i' 参数启动,以指示支持 TCP/IP 连接,而不是仅支持 UNIX 域套接字。确认 postmaster> 是使用 '-i' 参数启动的。

通过输入以下命令创建一个测试数据库

su - postgres
createdb javatest

您应该看不到任何错误消息。

创建一个包含一个测试行的测试表。首先,登录到交互式 PostgreSQL 工具并连接到您刚刚创建的 javatest 数据库,方法是输入(作为 postgres 用户)

psql javatest

您应该看到确认您已连接到数据库:javatest。

然后,通过输入(在 psql 中)创建测试表

create table test (col1 varchar(255));

您应该看到 "CREATE" 确认消息。

接下来,通过输入(在 psql 中)插入一行

insert into test (col1) values ('Hello, from PostgreSQL!');

您应该看到 "INSERT" 确认消息。

最后,通过输入(在 psql 中)确认该行存在

select col1 from test;  

您应该看到您刚刚创建的行。

您可以通过输入 "\ q" 退出 psql。

有关使用 PostgreSQL 的更多帮助,我建议您查看 Linux 的 Database-SQL-RDBMS HOW-TO 文档(PostgreSQL 对象关系数据库系统),网址为 http://metalab.unc.edu/mdw/HOWTO/PostgreSQL-HOWTO.html

您需要将适当的 JAR 包添加到您的 CLASSPATH 中。PostgreSQL JAR 包包含在 postgresql-jdbc 软件包中。

export CLASSPATH=$CLASSPATH:/usr/lib/pgsql/jdbc6.5-1.2.jar

您可能需要根据 PostgreSQL 在您的系统上的安装位置替换路径。

确认您的安装

您现在可以编译和运行一个使用 PostgreSQL 的简单 JDBC 应用程序了。创建以下程序。

import java.sql.*;

class PostgreSQLTest {
  public static void main (String[] args) {
    try {
      Driver driver = (Driver)
        Class.forName("postgresql.Driver").newInstance();
      DriverManager.registerDriver(driver);

      String     url = "jdbc:postgresql:javatest"; 
      Connection con = DriverManager.getConnection(url, "postgres", ""); 
      Statement  stm = con.createStatement(); 
 
      stm.setQueryTimeout(10); 
      ResultSet  rs  = stm.executeQuery("select col1 from test"); 
 
      rs.next(); 
 
      System.out.println(rs.getString(1)); 
 
    } catch (SQLException e) { 
 
      System.out.println("Exception!"); 
      System.out.println(e.toString()); 
  } 
} 

使用 Java 编译器编译程序。

javac PostgreSQLTest.java  

如果编译器产生错误,请仔细检查语法并确认您的 PATH 和 CLASSPATH。

使用 JVM 运行程序。

java PostgreSQLTest  

如果 JVM 产生错误,请确认您的 PATH 和 CLASSPATH。

您应该看到以下输出

Hello, from PostgreSQL!  

恭喜,您已经安装、设置了一个环境并测试了 PostgreSQL 的 JDBC 接口。

更多信息

有关更多信息,我建议您查看 PostgreSQL 网站,网址为

https://postgresql.ac.cn/.

6.6 Sybase

背景

Sybase Adaptive Server Enterprise 是一个商业 RDBMS,可用于 Linux 操作系统。虽然 Sybase 最近发布了 12.0 版本,但 11.9.2 版本可用于 Linux。

根据 Sybase 网站,“通过将 ASE 移植到 Linux,Sybase 为 Linux 开发社区提供了第一个可用于该平台的高度可扩展、高性能的数据库引擎。该软件包包括 Adaptive Server Enterprise 的标准功能和所有相关的连接组件。Adaptive Server Enterprise 11.9.2 免费提供用于开发。”

下载

可以从 http://www.sybase.com/products/databaseservers/linux/linux1192_reg.html 获取 Sybase ASE。

为了下载,您必须在 Sybase 网站上注册并在线同意许可协议。

Sybase JDBC 驱动程序可以从 http://www.sybase.com/products/internet/jconnect/ 获取。

选择下载 jConnect 4.2/5.2。

如果您可以访问网络上的 Sybase 服务器,则只需下载并安装 JDBC 驱动程序。

安装

Sybase 的安装超出了本 HOWTO 的范围。本 HOWTO 将假定 Sybase 已正确安装和配置,并且您可以使用 isql 访问 Sybase。

以 sa 身份登录 isql,并通过输入以下命令创建测试用户和测试数据库

create database javatest  
go 
sp_addlogin javatest, javatest, javatest 
go 
use javatest 
go 
sp_dbowner javatest 
go 

您应该看不到任何错误消息。

创建一个包含一个测试行的测试表。首先,以 javatest 用户身份登录 isql 并输入

create table test (col1 varchar(255))  
go 

您应该看不到任何错误消息。

接下来,通过输入插入一行

insert into test (col1) values ('Hello, from Sybase!')  
go 

您应该看不到任何错误消息。

最后,通过输入确认该行存在

select col1 from test  
go 

您应该看到您刚刚创建的行。

您可以通过输入 "exit" 退出 isql。

有关使用 Sybase 的更多帮助,请查看可以与 Sybase 一起下载的文档。

您需要将适当的 JAR 包添加到您的 CLASSPATH 中。

export CLASSPATH=$CLASSPATH:/usr/local/sybase/jConnect-5_2/classes/jconn2.jar  

您可能需要根据 jConnect 在您的系统上的安装位置替换路径。

确认您的安装

您现在可以编译和运行一个使用 Sybase 的简单 JDBC 应用程序了。创建以下程序。

import java.sql.*;  
 
class SybaseTest { 
  public static void main (String[] args) { 
    try { 
      Driver driver = (Driver) 
        Class.forName("com.sybase.jdbc2.jdbc.SybDriver").newInstance(); 
      DriverManager.registerDriver(driver); 
 
      String     host = "127.0.0.1"; 
      String     port = "4100"; 
 
      String     url = "jdbc:sybase:Tds:" + host + ":" + port; 
      Connection con = DriverManager.getConnection(url, "javatest", "javatest"); 
      Statement  stm = con.createStatement(); 
 
      stm.setQueryTimeout(10); 
      ResultSet  rs  = stm.executeQuery("select col1 from test"); 
 
      rs.next(); 
 
      System.out.println(rs.getString(1)); 
 
    } catch (SQLException e) { 
 
      System.out.println("Exception!"); 
      System.out.println(e.toString()); 
  } 
} 

您将需要根据需要替换您的 Sybase 服务器的主机和端口号。请参阅 $SYBASE/interfaces 和 $DSQUERY 条目,了解要用于主机和端口号的值。

使用 Java 编译器编译程序。

javac SybaseTest.java  

如果编译器产生错误,请仔细检查语法并确认您的 PATH 和 CLASSPATH。

使用 JVM 运行程序。

java SybaseTest  

如果 JVM 产生错误,请确认您的 PATH 和 CLASSPATH。

您应该看到以下输出

Hello, from Sybase!  

恭喜,您已经安装、设置了一个环境并测试了 Sybase 的 JDBC 接口。

更多信息

有关更多信息,我建议您查看 Sybase jConnect 网站,网址为 http://www.sybase.com/products/internet/jconnect/


下一页 上一页 目录