我在Eclipse上调试一程序,代码如下
可以连接到Sqlserver2005,但一直报错java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.Driver
我把Class.forName(driver).newInstance();相关行注释掉之后,同样可以连接到数据库,并且也不报错了
有人能解释一下怎么回事吗, 感激不尽!!!
代码如下:
package org.bzc.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;public class DoInsert {
private Connection conn = null;
private Statement stmt = null;
private String driver = "com.microsoft.sqlserver.jdbc.Driver";
private String username = "sa";
private String password = "sa";
private String sql = "INSERT INTO studenttest(id,name,myclass,score) VALUES(2014,'小zang','0802',95)"; public boolean addStudent() {
boolean flag = false;
/*try {// step1:加载数据库厂商提供的驱动程序
Class.forName(driver).newInstance();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
// step2:提供数据库连接的URL
String url = "jdbc:sqlserver://localhost:1433; Databasename = zlj";
try {
// step3:通过DriverManager获得数据库的一个连接对象
conn = DriverManager.
getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
try {
// step4:创建Statement(SQL的执行环境)
stmt = conn.createStatement();
// step5:执行SQL语句
int row = stmt.executeUpdate(sql);
// step6:处理结果
if (row == 1) {
flag = true;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// step7:关闭JDBC的资源
if (null != stmt) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (null != conn) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return flag;
} public static void main(String[] args) {
DoInsert doinsert = new DoInsert();
boolean flag = doinsert.addStudent();
if (flag) {
System.out.println("添加信息成功!");
}else{
System.out.println("添加信息失败!");
}
}}

解决方案 »

  1.   

    private String driver = "com.microsoft.sqlserver.jdbc.Driver";
    改为
    private String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
      

  2.   

    改为:Java codeprivate String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    还是不行啊,
    /*try {// step1:加载数据库厂商提供的驱动程序
    Class.forName(driver);
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }*/
    这样屏蔽一下才不报错,并且可以连接到数据库导出数据
    搞不懂为什么?
      

  3.   

    tomcat么,估计要清理cache,jsp修改后没有重新编译,改下明显的东西,看变化么。
      

  4.   

    jdbc4.0 是不用显式的去加载驱动,如果驱动包符合 SPI 模式就会自动加载