建立数据库语句时抛出异常java.lang.ClassCastException: com.microsoft.jdbc.base.BaseStatement,请指点
我用eclipse1.5.0, sql server 2000编程时,出现
java.lang.ClassCastException: com.microsoft.jdbc.base.BaseStatement
at Design.testsql.getConnection(testsql.java:37)
at Design.testsql.displayDbProperties(testsql.java:60)
at Design.testsql.main(testsql.java:109)
Error Trace in getConnection() : com.microsoft.jdbc.base.BaseStatement
的错误,我刚接触这方面的内容,请大家指点:
这是我的程序,
package Design;
import java.beans.Statement;
import java.sql.*;
import java.sql.ResultSet;
public class testsql{
private java.sql.Connection con =null;
private final String url = "jdbc:microsoft:sqlserver:// ";
private final String serverName= "192.168.0.34 ";
private final String portNumber = "1433 ";
private final String databaseName= "TTSQL ";
private final String userName = "sa ";
private final String password = "onetwo ";
// Informs the driver to use server a side-cursor,
// which permits more than one active statement
// on a connection.
private final String selectMethod = "cursor ";
String query = "Select Teacher_Name from Teacher_INFO ";
// Constructor
public testsql(){}
private String getConnectionUrl(){
return url+serverName+ ": "+portNumber+ ";databaseName= "+databaseName+ ";selectMethod= "+selectMethod+ "; ";
}
private java.sql.Connection getConnection(){
try{
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ");
con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
if(con!=null) System.out.println( "创建连接对像成功! " );
Statement st = (Statement) con.createStatement();
System.out.println( "创建Statement成功! " );
ResultSet rs = ((java.sql.Statement) st).executeQuery(query);
System.out.println( "操作数据表成功! " );
System.out.println( "----------------! " );
}catch(Exception e){
e.printStackTrace();
System.out.println( "Error Trace in getConnection() : " + e.getMessage());
}
return con;
}
/*
Display the driver properties, database details
*/
public void displayDbProperties(){
java.sql.DatabaseMetaData dm = null;
java.sql.ResultSet rs = null;
try{
con= this.getConnection();
if(con!=null){
dm = con.getMetaData();
System.out.println( "数据库信息 ");
System.out.println( "\t数据库名字: "+ dm.getDriverName());
System.out.println( "\t数据库版本: "+ dm.getDriverVersion ());
System.out.println( "\n数据库信息 ");
System.out.println( "\t数据库名字: "+ dm.getDatabaseProductName());
System.out.println( "\t数据库版本: "+ dm.getDatabaseProductVersion());
System.out.println( "可以连接的SQL数据库 ");
rs = dm.getCatalogs();
while(rs.next()){
System.out.println( "\tcatalog: "+ rs.getString(1));
}
rs.close();
rs = null;
closeConnection();
}else System.out.println( "错误: 没有激活连接! ");
}catch(Exception e){
e.printStackTrace();
}
dm=null;
}
private void closeConnection(){
try{
if(con!=null)
con.close();
con=null;
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception
{
testsql myDbTest = new testsql();
myDbTest.displayDbProperties();
}
}
急急??
[解决办法]
import java.beans.Statement;
这个包用错了。
[解决办法]
import java.sql.*;
这个就可以了,其他的都不要。