java与SQL2005的连接问题,代码如下,我已经导入sqljdbc.jar了 数据库 和 表 都建好了的,连接mysql都没有问题但是连接2005就不行了package com.test.db;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class Connect {
/**
 * 
 * sqlserver2005中连接
 */ String sDBDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

String sConneStr = "jdbc:sqlserver://localhost:1433;database=testDept";

public static final String user = "sa";

public static final String password = "sa2005"; Connection connect = null; ResultSet rs = null; Statement stmt = null;

public Connect() { try { Class.forName(sDBDriver).newInstance();

connect = DriverManager.getConnection(sConneStr,"sa","sa2005");

System.out.println("连接数据库成功!"); } catch (Exception e) { System.err.println(e.getMessage());
}
} // ------------------------------------------------

public ResultSet query(String sql) {
try {

stmt = connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

rs = stmt.executeQuery(sql);

} catch (Exception ex) {

System.err.println(ex.getMessage());
}
return rs;
} // ---------------------------------------------------
public int update(String sql) { int result = 0;

try {
stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY); result = stmt.executeUpdate(sql); } catch (SQLException ex) { System.err.println(ex.getMessage());
}
return result;
} public static void main(String args[]) { Connect conn = new Connect();

String sql = "select * from dept";

ResultSet rs = conn.query(sql);

try {

rs.next();

System.out.println(rs.getString("deptid")); } catch (SQLException e) { e.printStackTrace();
}
}
}但是运行后出现这样的错误:
Connection reset
null
Exception in thread "main" java.lang.NullPointerException
at com.test.db.Connect.main(Connect.java:91)
请问是什么原因导致成的!各位感激不尽!谢谢。。

解决方案 »

  1.   

    String sql = "select * from dept"; ResultSet rs = conn.query(sql);这两行直接缺点什么吧!
      

  2.   

    "我已经导入sqljdbc.jar了" 
    我记得java连接Sqlserver 用的jar包好像不是这东西。
    按照你写的这样连接方式,貌似是需要三个mXXX.jar如果是jtds连接方式的话,需要另外一个jar你网上搜下
      

  3.   


    我out了,我搜了下,不是jar包的问题简单的说应该是你在连接断开后,进行了数据库的读写操作引起的
      

  4.   

    package com.dao;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;public class BaseDao {
    public static Connection getConnection() {
    String url = "jdbc:sqlserver://localhost:1433;databasename=aaa";
    String username = "sa";
    String password = "123";
    String forname = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    Connection conn = null;
    try {
    Class.forName(forname);
    conn = DriverManager.getConnection(url, username, password);
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return conn;
    }package com.dao;import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;import pojo.Article;public class ArticleDao {
    public int addArticle(Article article) { try {
    Connection conn = BaseDao.getConnection();
    String sql =  "select * from table";
    PreparedStatement pre = conn.prepareStatement(sql);
    ResultSet rs  = pre.executeQuery();
    if(rs.next()){
    //
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return 0;
    }
    }
    包你没导错,你试试我的看看。2005 是一个包   2000是三个包。