读书人

关于JBuilder 2006连接数据库的有关问

发布时间: 2011-12-03 22:57:58 作者: rapoo

关于JBuilder 2006连接数据库的问题
我做了一个简单的查询数据库的系统,其中连接数据库的cardConnect类如下:
package card;

import java.sql.*;

public class cardConnect {
public static Connection conn=null;

public cardConnect() {
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}catch(ClassNotFoundException ee){
}
}
public static Connection getconn() {
try{
String url="jdbc:microsoft:sqlserver:QXM9YDAUVR0AL90:1433;DatabaseName=dbcard";
String username="sa";
String password="sa";
return DriverManager.getConnection(url,username,password);
}catch(Exception e){
e.getMessage();
}
return conn;
}

public static void close(ResultSet rs){
try{
rs.close();
}
catch(Exception ee){}
}
public static void close(Statement stmt){
try{
stmt.close();
}
catch(Exception ee){}
}
public static void close(Connection conn){
try{
conn.close();
}
catch(Exception ee){}
}

public static cardConnect con=new cardConnect();
}
当我再创建其它的类要访问数据库时,如果直接写con=cardConnect.getconn();就会报错,而如果每次都将
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://QXM9YDAUVR0AL90:1433;DatabaseName=dbcard";
con=DriverManager.getConnection(url,"sa","sa");
这三句话重写一遍的话,便可以很顺利地连接数据库.
请问大虾们这是怎么回事呀?

[解决办法]
conn=cardConnect.getconn();
肯定会报错,报错的类型是打不到sqlserver驱动程序.
原因是你在得到连接之前没有加载驱动程序:
可以这样解决:

//注册驱动
public static cardConnect() {
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}catch(ClassNotFoundException ee){
}
}
//返回conn
public static Connection getconn() {
cardConnect();
try{
String url="jdbc:microsoft:sqlserver:QXM9YDAUVR0AL90:1433;DatabaseName=dbcard";
String username="sa";
String password="sa";
return DriverManager.getConnection(url,username,password);
}catch(Exception e){
e.getMessage();
}
return conn;
}

[解决办法]
那就是说再加一句cardConnect();?
可是我下面已经写了一句
public static cardConnect con=new cardConnect();
这个不算加载驱动程序吗?

读书人网 >J2SE开发

热点推荐