我在网上下载了一个SQLServer2000的JDBC驱动程序,但是我不知道怎样在代码中实现数据库连接.我写了一个DatabaseBean,如下:package com.hy.bean;import java.sql.*;public class DatabaseBean {
public DatabaseBean() {
try{
Class.forName(driver).newInstance();
conn=DriverManager.getConnection(url);
}
catch (Exception e) {
System.out.println("DatabaseBean()->"+e);
}
}
public ResultSet doSelect(String sql) {
try {
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
if (rs.next())
return rs;
else
return null;
}
catch (SQLException e) {
System.out.println("doSelect()->"+e.getMessage());
return null;
}
finally {
try {
if (rs!=null)
rs.close();
if (stmt!=null)
stmt.close();
if (conn!=null)
conn.close();
}
catch (SQLException e) {
System.out.println("doSelect()->"+e.getMessage());
return null;
}
}
} public int doUpdate(String sql) {
int row=0;
try {
stmt=conn.createStatement();
row=stmt.executeUpdate(sql);
if (row!=0) return row;
else return 0;
}
catch (SQLException e) {
System.out.println("doUpdate()->"+e);
return 0;
}
finally {
try {
if (rs!=null)
rs.close();
if (stmt!=null)
stmt.close();
if (conn!=null)
conn.close();
}
catch (SQLException e) {
System.out.println("doSelect()->"+e.getMessage());
return 0;
}
}
}
public int doInsert(String sql) {
return doUpdate(sql);
}
public int doDelete(String sql) {
return doUpdate(sql);
}
private static final String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static final String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=公寓;user=sa;password="; private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
public static void main(String[] args) {
DatabaseBean db=new DatabaseBean();
String sql="select * from user";
ResultSet rs=db.doSelect(sql);
try{
while (rs.next()) {
//System.out.println("------------------------------");
System.out.println("id="+rs.getString("id"));
System.out.println("username="+rs.getString("username"));
System.out.println("password="+rs.getString("password"));
System.out.println("------------------------------");
}
}
catch (SQLException e) {
System.out.println("main()->"+e);
}
}
}编译无误,但是执行时总是出现:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver请问高手们,我现在该怎么办?
public DatabaseBean() {
try{
Class.forName(driver).newInstance();
conn=DriverManager.getConnection(url);
}
catch (Exception e) {
System.out.println("DatabaseBean()->"+e);
}
}
public ResultSet doSelect(String sql) {
try {
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
if (rs.next())
return rs;
else
return null;
}
catch (SQLException e) {
System.out.println("doSelect()->"+e.getMessage());
return null;
}
finally {
try {
if (rs!=null)
rs.close();
if (stmt!=null)
stmt.close();
if (conn!=null)
conn.close();
}
catch (SQLException e) {
System.out.println("doSelect()->"+e.getMessage());
return null;
}
}
} public int doUpdate(String sql) {
int row=0;
try {
stmt=conn.createStatement();
row=stmt.executeUpdate(sql);
if (row!=0) return row;
else return 0;
}
catch (SQLException e) {
System.out.println("doUpdate()->"+e);
return 0;
}
finally {
try {
if (rs!=null)
rs.close();
if (stmt!=null)
stmt.close();
if (conn!=null)
conn.close();
}
catch (SQLException e) {
System.out.println("doSelect()->"+e.getMessage());
return 0;
}
}
}
public int doInsert(String sql) {
return doUpdate(sql);
}
public int doDelete(String sql) {
return doUpdate(sql);
}
private static final String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static final String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=公寓;user=sa;password="; private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
public static void main(String[] args) {
DatabaseBean db=new DatabaseBean();
String sql="select * from user";
ResultSet rs=db.doSelect(sql);
try{
while (rs.next()) {
//System.out.println("------------------------------");
System.out.println("id="+rs.getString("id"));
System.out.println("username="+rs.getString("username"));
System.out.println("password="+rs.getString("password"));
System.out.println("------------------------------");
}
}
catch (SQLException e) {
System.out.println("main()->"+e);
}
}
}编译无误,但是执行时总是出现:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver请问高手们,我现在该怎么办?
%JAVA_HOME%\lib;D:\jdk\lib\msutil.jar;D:\jdk\lib\mssqlserver.jar;D:\jdk\lib\msbase.jar请指教!
Program Files\Microsoft SQL JDBC\lib\msbase.jar;D:\Program Files\Microsoft SQL J
DBC\lib\msutil.jar
socket.
Exception in thread "main" java.lang.NullPointerException
at com.hy.bean.DatabaseBean.doSelect(DatabaseBean.java:19)
at com.hy.bean.DatabaseBean.main(DatabaseBean.java:89)
Press any key to continue...我现在该怎么办?
if (rs!=null)
rs.close();
if (stmt!=null)
stmt.close();
if (conn!=null)
conn.close();
}
catch (SQLException e) {
System.out.println("doSelect()->"+e.getMessage());
return null;
} 这几句不合理,该方法需要返回一个 ResultSet,但你却关闭了连接。ResultSet 是基于连接的,连接一关就完蛋了。这几句我随手删了。其他部分我只改了一下数据库名称、表名称、字段名称,然后编译运行,代码没有问题。SQL Server 你熟悉吗?估计你的数据库服务器有问题。你要做一个测试——运行查询分析器,选择 "SQL Server验证方式",确保使用 sa 和空密码可以连接成功。