/** access mysql database through JDBC Driver */
package mypack.util;
import java.sql.*;
import javax.naming.*;
import javax.sql.*;
import java.util.*;public class OfficeDB {  private String dbUrl =  "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=officedb";
  private String dbUser="sa";
  private String dbPwd="fortune";  public OfficeDB () throws Exception{
     Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  }  public Connection getConnection()throws Exception{
      return java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
  }  public void closeConnection(Connection con){
    try{
        if(con!=null) con.close();
      }catch(Exception e){
        e.printStackTrace();
      }
  }  public void closePrepStmt(PreparedStatement prepStmt){
    try{
        if(prepStmt!=null) prepStmt.close();
      }catch(Exception e){
        e.printStackTrace();
      }
  }  public void closeStmt(Statement Stmt){
    try{
        if(Stmt!=null) Stmt.close();
      }catch(Exception e){
        e.printStackTrace();
      }
  }
  
  public void closeResultSet(ResultSet rs){
    try{
        if(rs!=null) rs.close();
      }catch(Exception e){
        e.printStackTrace();
      }
  }
}
======================================
package mypack.util;import java.sql.*;
public class login{
private Connection conn;
private Statement stmt;
private ResultSet rs; 
private OfficeDB mydb;

public login(){
String sqlstr;
try{
conn=mydb.getConnection();
stmt=conn.createStatement();
  sqlstr="select * from usertab "; 
  rs=stmt.executeQuery(sqlstr);
  while(rs.next())
  {
   System.out.println("user="+rs.getString("userid")+"username="+rs.getString("username"));
  }
}
catch(Exception e){System.out.println("connect db is error!");}
finally{
  mydb.closeResultSet(rs);
  mydb.closeStmt(stmt);
  mydb.closeConnection(conn);
  }
}
  public static void main(String[] args){
    OfficeDB mydb=new OfficeDB();
  }
}

解决方案 »

  1.   

    这个好像是访问SQLServer阿 哪里有mySQL?
      

  2.   

    是访问SQLServer,而不是mysql呀,老大
      

  3.   

    public static void main(String[] args){
        OfficeDB mydb=new OfficeDB();
      }
    只創建了OfficeDB對象, login類好像沒有實例化呀.
    login類沒起作用呀.
      

  4.   

    try{

    }catch(Exception e){

    }
     要放在方法中才行!
      

  5.   


    package mypack.util;import java.sql.*;
    public class login{
    private Connection conn;
    private Statement stmt;
    private ResultSet rs; 
    private OfficeDB mydb;
    private String sqlstr;

    public login(String sqlstr){
    this.sqlstr = sqlstr;
    }

    public login(){
    }

    public void execSQL(){
    try{
    mydb = new OfficeDB();
    conn=mydb.getConnection();
    stmt=conn.createStatement();
      rs=stmt.executeQuery(sqlstr);
      while(rs.next())
      {
       System.out.println("user="+rs.getString("userid")+"username="+rs.getString("username"));
      }
    }
    catch(Exception e){System.out.println("connect db is error!");}
    finally{
      mydb.closeResultSet(rs);
      mydb.closeStmt(stmt);
      mydb.closeConnection(conn);
    }
    }  public static void main(String[] args) throws Exception{
        login mylog =new login("select * from usertab ");
        mylog.execSQL();
      }
    }
      

  6.   

    sorry,是ms sqlserver2000.to konhon(优华):
       在类login中創建了OfficeDB對象,不可以在login类中调用OfficeDB的方法吗?错误信息:
    unreported exception java.lang.exception;must caught or decalared to be thrown
    OfficeDB mydb=new OfficeDB();
                  ^
    1 error
      

  7.   

    你试将"OfficeDB mydb=new OfficeDB();"
    放入到 public class login{
    private Connection conn;
    private Statement stmt;
    private ResultSet rs; 
    private OfficeDB mydb;
    private String sqlstr;
    之后.
      

  8.   

    public static void main(String[] args){
    ->
    public static void main(String[] args) throws Exception{