找不到你指定的类,首先检查是不是你在class.forName()中的参数写错了,比如类名/类的路径写错。
再检查你要获取的类是否在其他jar包中,如果是,根据Jar包的路径获取URLClassLoader,通过获取到URLClassLoader获取类。
你在获得数据库哪里搞错了!!!!!!!!
还有你把sqlserver打成了sqlserfer。
//JDBC2000驱动-------仔细看与下面有小不同-----------Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");。
Connection conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;user=sa;password=sa;database=pubs");。
//JDBC2005驱动Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");。
Connection conn=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;user=sa;password=sa;database=pubs");。
还不清楚这里有个案例
import java.sql.*;public class DBOpr {。
public static void main(String[] args) {。
//数据库驱动
String dbdriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";。
//访问数据库的链接字符串。
String url="jdbc:sqlserver://localhost:1433;DatabaseName=pubs";。
//数据库登录用户名
String us="sa";。
//数据库登录密码
String pw="";。
try {
//1动态加载数据库的驱动程序。
Class.forName(dbdriver);。
//2获得数据链接
Connection conn=DriverManager.getConnection(url, us, pw);。
//3创建一个发布sQL语句的对象。
Statement sta=conn.createStatement();。
//4执行SQL语句
ResultSet rs= sta.executeQuery("select * from jobs");。
//5处理结果集
while(rs.next()){。
String jobId=rs.getString("job_id");。
String jobDesc=rs.getString("job_desc");。
int minLvl=rs.getInt("min_lvl");。
int maxLvl=rs.getInt("max_lvl");。
System.out.println(jobId+"\t"+jobDesc+"\t"+minLvl+"\t"+maxLvl);。
}
//6释放数据库对象资源。
rs.close();
sta.close();。
conn.close();。
} catch (ClassNotFoundException e) {。
// TODO Auto-generated catch block。
e.printStackTrace();。
} catch (SQLException e) {。
// TODO Auto-generated catch block。
e.printStackTrace();。
}
}
forname方法?JVM规定了几种必须对类执行初始化的场景,class.forName就是其中一种,它会让jvm对指定的类执行加载、连接、初始化操作,具体动作包括:
1.jvm会查找指定路径类的class文件,然后将class文件读入内存,为该类生成一个class对象作为访问类型信息的入口(类型信息是该类的class文件转换成的数据结构,存储在方法区,class对象就是用于访问这个数据结构的,我们可以通过getClass()方法获取class对象,class对象提供的反射功能其实就是基于该数据结构实现的)。
2.会为类的类变量分配空间并赋值、执行静态代码块中的内容,也就是对类进行初始化,比如我们熟悉的Class.forName("com.mysql.jdbc.Driver"),就是告诉jvm加载并初始化Driver类,为啥要加载它,自然是因为后续的JDBC流程中要用到它,大家可以进到Driver类中查看其源码,核心内容除了其父类的一些静态变量外,就是Driver类本身的静态代码块了,其中执行了DriverManager.registerDriver(new Driver()),这样一句代码,顾名思义,会创建并注册一个驱动对象,然后就可以拿来建立数据库连接了。
如果对加载、连接、初始化的过程感兴趣,大家可以去看下我的博文"JVM类加载过程详解"。
sqlServer版本是什么
2000加载驱动和URL的语句是。
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";。
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=XXX";。
SQL Server 2005 中加载驱动和URL的语句是。
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";。
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=XXX";。
如果写法错误将会找不到驱动。
// 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,
// 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以。
Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动。
// or:。
// com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();。
// or:
// new com.mysql.jdbc.Driver();。