当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server2000+JDBC常见问题及解决

MSSQL
MS SQL Server 2000系统数据类型
SQL Server几个容易出错的数据类型
SQL Server 数据库中关于死锁的分析
站长必备的sql查询语言基础知识
经验分享交流:常用SQL语句技法
SQL SERVER 2000 数据库备份与还原
解决SQL SERVER 2005无法远程连接的问题
SQL Server 安装参考意见
在sqlserver2005中安装sql server 2000的示例数据库northwind
SQL Server 2000 数据库分离与附加
高级自定义查询、分页、多表联合存储过程
SQL Server数据库下教你如何做导库SQL
常用的 MSSQL Server 数据修复命令
SQL存储过程初探
SQL Server存储过程编写经验和优化
卸载SQL Server2000后不能再次安装的问题解决方法
教你安装SQL Server 2005示例数据库
MySQL 的外键与参照完整性: Part 1
SQL Server安装:"安装文件配置服务器失败"的解决方法
SQL Server 数据库文件存放在何处

MSSQL 中的 SQL Server2000+JDBC常见问题及解决


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 55 ::
收藏到网摘: n/a

 

  SQL Server 2000 是当今网络编程中使用的比较多的一个数据库系统,java是目前最流行的编程语言,在编程中涉及的比较多也比较重要的就是数据库问题,java自身提供了对各类主流数据库系统的支持,通过java.sql 库,提供了统一的接口,使得可以在java环境下不必对程序作大规模的修改,只要更改相应的驱动程序,即可实现对各类数据库的操作,从而提高软件的生存周期和降低软件的开发成本和维护费用,在这种情况下SQL Server 2000 和java 的融合问题就显得比较重要了,本文简要地阐述一下SQL Server 2000 和jdk的融合问题。

  系统需求:

   数据库:SQL Server 2000 sp3
   驱动程序:SQL Server driver for jdbc
   java版本:jdk1.2以上

  1:我们首先使用jdbc-odbc桥来实现数据库的连接,这个相对简单。
  
  首先使用SQL Server 企业管理其建立一个数据库test,并建立一个简单的表 first_table

  建立odbc数据源 ,各步骤采用默认操作即可

  编写一个简单的测试程序,该程序主要实现数据库的连接,以及一个简单的sql操作 ,代码如下:

/***********************************************
/*
/*DbTest.java
/*
/******************************************* */

import java.sql.*;

public class DbTest {

 Connection con;
 Statement sta;
 ResultSet rs;

 String driver;
 String url;
 String user;
 String pwd;
 public DbTest()
 {
  driver = "sun.jdbc.odbc.JdbcOdbcDriver";
  url = "jdbc:odbc:store_manager";
  user = "share";
  pwd = "share";
  init();
 }
 public void init()
 {
  try{
   Class.forName(driver);
   System.out.println("driver is ok");
   con = DriverManager.getConnection(url,user,pwd);
   System.out.println("conection is ok");
   sta = con.createStatement();
   rs = sta.executeQuery("select * from room");
   while(rs.next())
    System.out.println(rs.getInt("roomNum"));
  }catch(Exception e)
  {
   e.printStackTrace();
  }
 }

 public static void main(String args [])//自己替换[]
 {
  new DbTest();
 }

  运行结果如下:

driver is ok
conection is ok
1001
1002
1003
1004
1005
1006
Press any key to continue...

  顺利通过测试

  2、我们这次不通过odbc桥来操作数据库,我们采用SQL Server driver 来实现对SQL Server数据库的操作, 这将是我们这篇文章的重点,因为jdbc-odbc桥是一种常见的操作windows系统数据库的常用方法,但它存在的缺点很多,所以现在很多开发者都侧重于使用sqlserver driver来操作,在这里我们通过一步步的调试,来加深读者对这种连接的理解

  在通常的理解下,只要我们装了sqlserver driver for jdbc 我们便可进行数据库编程,事实则不然,首先我们看下边的代码:

/***********************************************
/*
/*DbTest.java
/*http://www.knowsky.com
/******************************************* */

import java.sql.*;

public class DbTest {

 Connection con;
 Statement sta;
 ResultSet rs;

 String driver;
 String url;
 String user;
 String pwd;
 public DbTest()
 {
  driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";;
  url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName =StoreManager";
  user = "sa";
  pwd = "potsmart10";
  init();
 }
 public void init()
 {
  try{
   Class.forName(driver);
   System.out.println("driver is ok");
   con = DriverManager.getConnection(url,user,pwd);
   System.out.println("conection is ok");
   sta = con.createStatement();
   rs = sta.executeQuery("select * from room");
   while(rs.next())
   System.out.println(rs.getInt("roomNum"));
  }catch(Exception e)
  {
   e.printStackTrace();
  }
 }

 public static void main(String args [])//自己替换[]
 {
  new DbTest();
 }

  这段代码跟上变得代码是一样的,差别在于驱动,还有url,这是在使用sqlserver driver for jdbc 中遇到的困惑。按道理讲,上边这段代码应该没错,可首先我们来看一下,如果SQL Server服务器没有升级到sp3(在使用jdbc时,如果系统是xp或者2003务必要把sqlserver 升