我做了一个简单的查询数据库的系统,其中连接数据库的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");
这三句话重写一遍的话,便可以很顺利地连接数据库.
请问大虾们这是怎么回事呀?
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");
这三句话重写一遍的话,便可以很顺利地连接数据库.
请问大虾们这是怎么回事呀?
肯定会报错,报错的类型是打不到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;
}
可是我下面已经写了一句
public static cardConnect con=new cardConnect();
这个不算加载驱动程序吗?