以下是小弟做连接数据库的类
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.DriverManager;
public class DBAccess {
// MYsql数据库连接
/*final public static String strDriver = "org.gjt.mm.mysql.Driver";
final public static String strURL = "jdbc:mysql://localhost:3306/test";
final public static String strUserName = "root";
final public static String strPassword = "tb";*/

final public static String strDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
final public static String strURL = "jdbc:microsoft:sqlserver://localhost:1433;databasename=test";
final public static String strUserName = "sa";
final public static String strPassword = "sa";

private static DBAccess db;
private  Connection conn;
private   Statement stmt;
private   ResultSet rset;

public DBAccess(){
try {
Class.forName(DBAccess.strDriver);
conn = DriverManager.getConnection(DBAccess.strURL,DBAccess.strUserName,DBAccess.strPassword);
stmt = conn.createStatement();
} catch (ClassNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public static DBAccess getDBAccess(){
if(db == null){
db = new DBAccess();
}
return db;
}

public Connection getConnection(){
return conn;
}

public ResultSet query(String sql){
try {
rset = null;
rset = stmt.executeQuery(sql);
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return rset;
}

public int update(String sql){
int flag = 0;
try {
flag = stmt.executeUpdate(sql);
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return flag;
}

public void close(){
try {
if(rset != null){
rset = null;
rset.close();
}

if(stmt != null){
stmt = null;
stmt.close();
}

if(conn != null){
conn = null;
conn.close();
}
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}

解决方案 »

  1.   

    小弟刚刚接触JAVA不久,以下是完整代码.
    小弟做一个连接数据库类,一个数据类,一个操作数据类,一个模拟前台类,
    此程度只是测试吧了.
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.sql.DriverManager;
    public class DBAccess {
    // MYsql数据库连接
    /*final public static String strDriver = "org.gjt.mm.mysql.Driver";
    final public static String strURL = "jdbc:mysql://localhost:3306/test";
    final public static String strUserName = "root";
    final public static String strPassword = "tb";*/

    final public static String strDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
    final public static String strURL = "jdbc:microsoft:sqlserver://localhost:1433;databasename=test";
    final public static String strUserName = "sa";
    final public static String strPassword = "sa";

    private static DBAccess db;
    private  Connection conn;
    private   Statement stmt;
    private   ResultSet rset;

    public DBAccess(){
    try {
    Class.forName(DBAccess.strDriver);
    conn = DriverManager.getConnection(DBAccess.strURL,DBAccess.strUserName,DBAccess.strPassword);
    stmt = conn.createStatement();
    } catch (ClassNotFoundException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
    }
    public static DBAccess getDBAccess(){
    if(db == null){
    db = new DBAccess();
    }
    return db;
    }

    public Connection getConnection(){
    return conn;
    }

    public ResultSet query(String sql){
    try {
    rset = null;
    rset = stmt.executeQuery(sql);
    } catch (SQLException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
    return rset;
    }

    public int update(String sql){
    int flag = 0;
    try {
    flag = stmt.executeUpdate(sql);
    } catch (SQLException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
    return flag;
    }

    public void close(){
    try {
    if(rset != null){
    rset = null;
    rset.close();
    }

    if(stmt != null){
    stmt = null;
    stmt.close();
    }

    if(conn != null){
    conn = null;
    conn.close();
    }
    } catch (SQLException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
    }
    }import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;public class UserDAO {
    public ArrayList fintAll(){
    ArrayList list = new ArrayList();
    DBAccess db = DBAccess.getDBAccess();
    db.getConnection();
    String sql = "select * from users";
    ResultSet rset = db.query(sql);
    try {
    while(rset.next()){
    UserVO user = new UserVO();
    user.setId(rset.getInt(1));
    user.setUsername(rset.getString(1));
    user.setPassword(rset.getString(2));
    list.add(user);
    }
    } catch (SQLException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
    return list;
    }
    }
    public class UserVO { private int id;
    private String username;
    private String password;


    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getPassword() {
    return password;
    }
    public void setPassword(String password) {
    this.password = password;
    }
    public String getUsername() {
    return username;
    }
    public void setUsername(String username) {
    this.username = username;
    }


    }import java.util.ArrayList;public class Main { /**
     * @param args
     */
    public static void main(String[] args){
    // TODO 自动生成方法存根

    UserDAO userDao = new UserDAO();
    ArrayList list = userDao.fintAll();
    for(int i = 0;i<list.size();i++){
    UserVO user = (UserVO)list.get(i);
    System.out.println(user.getId() + " : " + user.getUsername() + " :" + user.getPassword());
    }
    }}
      

  2.   

    不好意思,,刚刚大意,
    发生的错误是
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
      

  3.   

    sqlserver 补丁装了吗?
    数据库启动了吗?
      

  4.   

    如果是xp操作系统,尤其是sp2的,一定要打sqlserver补丁