现在的程序,基本上都要和数据库打交到,以前用C#和Delphi的时候,与数据库的连接,查询操作都是十分简单的,但是第一次用JAVA通过JDBC和数据库打交到,第一次,用了一上午的时间,仙子按总算成功了,其实第一次配置就成功,只是自己用了IDE工具,而没有做相关的设置,导致了假象,JDBC的操作不成功:
1,系统环境:
Windows2000 Pro+MS SQL2000 SP4+Tomcat 5 +JCreator3+JDBC1 SP3
2,环境变量:
JAVA_HOME:C:/Program Files/Java/jdk1.5.0_09
CLASS_PATH:%JAVA_HOME%/lib;C:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib/msbase.jar;C:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib/mssqlserver.jar;C:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib/msutil.jar;
path:%JAVA_HOME%/bin;
3,测试脚本
public class Connect ... {
private java.sql.Connection con = null;
private final String url = "jdbc:microsoft:sqlserver://";
private final String serverName= "localhost";
private final String portNumber = "1433";
private final String databaseName= "pubs";
private final String userName = "sa";
private final String password = "sa";
// Informs the driver to use server a side-cursor,
// which permits more than one active statement
// on a connection.
private final String selectMethod = "cursor";
// Constructor
public Connect()...{}
private String getConnectionUrl()...{
return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
}
private java.sql.Connection getConnection()...{
try...{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
if(con!=null) System.out.println("Connection Successful!");
}catch(Exception e)...{
e.printStackTrace();
System.out.println("Error Trace in getConnection() : " + e.getMessage());
}
return con;
}
/**//*
Display the driver properties, database details
*/
public void displayDbProperties()...{
java.sql.DatabaseMetaData dm = null;
java.sql.ResultSet rs = null;
try...{
con= this.getConnection();
if(con!=null)...{
dm = con.getMetaData();
System.out.println("Driver Information");
System.out.println(" Driver Name: "+ dm.getDriverName());
System.out.println(" Driver Version: "+ dm.getDriverVersion ());
System.out.println(" Database Information ");
System.out.println(" Database Name: "+ dm.getDatabaseProductName());
System.out.println(" Database Version: "+ dm.getDatabaseProductVersion());
System.out.println("Avalilable Catalogs ");
rs = dm.getCatalogs();
while(rs.next())...{
System.out.println(" catalog: "+ rs.getString(1));
}
rs.close();
rs = null;
closeConnection();
}else System.out.println("Error: No active Connection");
}catch(Exception e)...{
e.printStackTrace();
}
dm=null;
}
private void closeConnection()...{
try...{
if(con!=null)
con.close();
con=null;
}catch(Exception e)...{
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception
...{
Connect myDbTest = new Connect();
myDbTest.displayDbProperties();
}
}
把这段代码另存为Connect.java,放在c盘根目录。
这是来自微软官方一篇对JDBC操作的文章。
http://support.microsoft.com/kb/313100/zh-cn
4,开始-运行-cmd-
调用javac,java命令,编译Connect.java
javac Connect.java
java Connect.Class
注:javac编译的是文件,java命令操作的class对象。
5,成功输出的界面
Connection Successful!
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.384 (Intel X86)
May 23 2001 00:02:52
Copyright (c) 1988-2000 Microsoft Corporation
Desktop Engine on Windows NT 5.1 (Build 2600: )
Avalilable Catalogs
catalog:master
catalog:msdb
catalog:pubs
catalog:tempdb
6,在IDE中设置
我用的是JCreator3.5汉化版,在配置-选项-JDK配置文件-JDK 版本 1.5.0_11-类-添加-添加存档
把C:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib目录下的三个jar文件添加进去,然后即可正确的输出上述代码。
如果您按照以上操作有其他异常情况,请访问www.google.cn :)