SQL Server2000 JDBC常见问题及解决
来源:网络 更新时间:2014-12-6
SQLServer2000是当今网络编程中使用的比较多的一个数据库系统,Java是目前最流行的编程语言,在编程中涉及的比较多也比较重要的就是数据库问题,java自身提供了对各类主流数据库系统的支持,通过java.sql库,提供了统一的接口,使得可以在java环境下不必对程序作大规模的修改,只要更改相应的驱动程序,即可实现对各类数据库的操作,从而提高软件的生存周期和降低软件的开发成本和维护费用,在这种情况下SQLServer2000和java的融合问题就显得比较重要了,本文简要地阐述一下SQLServer2000和JDK的融合问题。
系统需求:
数据库:SQLServer2000sp3
驱动程序:SQLServerdriverforJDBC
java版本:jdk1.2以上
1:我们首先使用jdbc-odbc桥来实现数据库的连接,这个相对简单。
首先使用SQLServer企业管理其建立一个数据库test,并建立一个简单的表first_table
建立odbc数据源,各步骤采用默认操作即可
编写一个简单的测试程序,该程序主要实现数据库的连接,以及一个简单的sql操作,代码如下:
/***********************************************
/*
/*DbTest.java
/*
/********************************************/
importjava.sql.*;
publicclassDbTest{
Connectioncon;
Statementsta;
ResultSetrs;
Stringdriver;
Stringurl;
Stringuser;
Stringpwd;
publicDbTest()
{
driver="sun.jdbc.odbc.JdbcOdbcDriver";
url="jdbc:odbc:store_manager";
user="share";
pwd="share";
init();
}
publicvoidinit()
{
try{
Class.forName(driver);
System.out.println("driverisok");
con=DriverManager.getConnection(url,user,pwd);
System.out.println("conectionisok");
sta=con.createStatement();
rs=sta.executeQuery("select*fromroom");
while(rs.next())
System.out.println(rs.getInt("roomNum"));
}catch(Exceptione)
{
e.printStackTrace();
}
}
publicstaticvoidmain(Stringargs[])//自己替换[]
{
newDbTest();
}
}
运行结果如下:
driverisok
conectionisok
1001
1002
1003
1004
1005
1006
Pressanykeytocontinue...
顺利通过测试
2、我们这次不通过odbc桥来操作数据库,我们采用SQLServerdriver来实现对SQLServer数据库的操作,这将是我们这篇文章的重点,因为JDBC-odbc桥是一种常见的操作Windows系统数据库的常用方法,但它存在的缺点很多,所以现在很多开发者都侧重于使用sqlserverdriver来操作,在这里我们通过一步步的调试,来加深读者对这种连接的理解
在通常的理解下,只要我们装了sqlserverdriverforjdbc我们便可进行数据库编程,事实则不然,首先我们看下边的代码:
/***********************************************
/*
/*DbTest.Java
/*
/********************************************/
importjava.sql.*;
publicclassDbTest{
Connectioncon;
Statementsta;
ResultSetrs;
Stringdriver;
Stringurl;
Stringuser;
Stringpwd;
publicDbTest()
{
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";;
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=StoreManager";
user="sa";
pwd="potsmart10";