关于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(Class
NotFoundException 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();
这个不算加载驱动程序吗?