Cross-platform Java Database Connectivity JDBC
implementations are commonly used to connect Java programs to any of the major databases
available on the market today. There are several possibilities of connecting programs to
databases. We'll focus on JDBC here and are going to point out one of the key advantages:
there is no client side software installation required.
More exactly, we do not need the Microsoft SQL
Server client side installation. JDBC works just over your network. You may take a
program to any of your PCs and run it directly from your CD. This works, of course, not
only because we use JDBC, but also because we use Java.
Microsoft SQL Server is located on the machine in
the centre of the following figure. Note that SQL Server 2000 is only running on
Microsoft's Server Operating Systems. Our test environment includes the following
hardware: Windows 2000 Professional, SUN Solaris 8 and Redhat Linux 7.2.
The essential Java 2 SDK, tools, runtimes, and APIs for developers
writing, deploying, and running applets and applications in the Java programming
language. Also includes Java Development Kit release 1.1 and Java Runtime Environment
1.1. We used JDK 1.3 for our tests.
Download Site: http://java.sun.com/j2se/1.3/
Beside the JDK, as always required for Java programs, we
need the Microsoft implementation of the JDBC specification. The so-called Microsoft SQL
Server 2000 JDBC Driver
Download Site:
Microsoft Download Site
The Microsoft® SQL Server 2000 Driver for JDBC is a Type 4 JDBC
driver that provides highly scalable and reliable connectivity for the enterprise Java
environment. This driver provides JDBC access to SQL Server 2000 through any Java-enabled
applet, application, or application server.
We can find there drivers for Windows and Unix. If we download the Windows and Solaris
drivers we get the following two files:
- setup.exe (Windows)
- mssqlserver.tar (Solaris)
Trying to install the setup.exe on Windows we immediately
recognised that we don't know what the installation program
exactly does (registry?) and additionally we get about 30 DLLs.
That's not what we want!
JDBC does not need any installation or environmental settings. The other thing is that
we don't want to have DLLs, instead a pure Java driver, that's the thing we are looking
for!
Inside the Solaris mssqlserver.tar file it looks much better. Why not taking
the required jar files out of this tar? If it is pure Java it will run on Windows too!
... and it does.
- Create any Directory on your system
- Untar the file: mssqlserver.tar and you
get:
- install.ksh
- msjdbc.tar
- read.me
- Untar the file: msjdbc.tar and you get:
- lib/msbase.jar
- lib/mssqlserver.jar
- lib/msutil.jar
Here's a sample program, which shows how to establish a connection to Microsoft SQL
Server. Don't forget to import the java.sql packages to get access to DriverManager and
many other related classes and methods.
import java.sql.*;
/**
* Microsoft SQL Server JDBC test program
*/
public class Test {
public Test() throws Exception {
// Get connection
DriverManager.registerDriver(new
com.microsoft.jdbc.sqlserver.SQLServerDriver());
Connection connection = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://<Host>:1433",<"UID>","<PWD>");
if (connection != null) {
System.out.println();
System.out.println("Successfully connected");
System.out.println();
// Meta data
DatabaseMetaData meta = connection.getMetaData();
System.out.println("\nDriver Information");
System.out.println("Driver Name: "
+ meta.getDriverName());
System.out.println("Driver Version: "
+ meta.getDriverVersion());
System.out.println("\nDatabase Information ");
System.out.println("Database Name: "
+ meta.getDatabaseProductName());
System.out.println("Database Version: "+
meta.getDatabaseProductVersion());
}
} // Test
public static void main (String args[]) throws Exception {
Test test = new Test();
}
}
Compile the Java Source: Test.java (all in
one line):
$ javac -classpath
".;./lib/mssqlserver.jar;
./lib/msbase.jar;./lib/msutil.jar" Test.java
Be aware that you need access to a javac program on your computer or media. If not,
simply specify the full path ahead of javac. The above command is good for Java 2. If
your are using for instance Java 1.1.8, add your JDK's classes.zip to the classpath. On
Unix systems replace the the semicolons " ; " by colons " : " The
forward slashes " / " are fine for
both platforms, it's not a must to use backslashes " \
" on Windows.
Similar to the compilation you may run it like this (again all in
one line):
$ java -classpath ".;./lib/mssqlserver.jar;
./lib/msbase.jar;./lib/msutil.jar" Test
The output looks something like this:
Successfully connected
Driver Information
Driver Name: SQLServer
Driver Version: 2.2.0022
Database Information
Database Name: Microsoft SQL Server Database
Version:
Microsoft SQL Server 2000 8.00.194 (Intel X86)
Aug 6 2000 00:57:48
Copyright (c) 1988-2000 Microsoft Corporation
Enterprise Edition on Windows NT 5.0
(Build 2195: Service Pack
2)
You can download the sources in a TAR / GZIP File
from here.
|