日期:2014-05-20  浏览次数:21115 次

关于ClassforName 出现红线的问题,求助啊
代码如下:


package cn.jbit.output;

import java.sql.*;


public class JDBConnection {

public static Connection getConnection() {
String DBDrive = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=SelectClass";
String userName = "sa";
String password = "zhanwenzhao";
Connection conn = null;
try {
Class.forName(DBDrive); //forName 下面有一条红线提示错误
conn = DriverManager.getConnection(url,userName,password);
} catch (Exception e) {
e.printStackTrace();
System.out.println("数据库加载失败");
}
return conn;
}
}

错误是:


HTTP Status 500 - javax.servlet.ServletException: java.lang.Error: 无法解析的编译问题: 没有为类型 Class 定义方法 forName(String) 


代码改为 java.lang.Class.forName 后就出现以下的错误了:

HTTP Status 500 - java.lang.NullPointerException


这是为什么啊,怎么改才正确呢?

------解决方案--------------------
去掉static 修饰符。
------解决方案--------------------
没导入包嘛 更改后的错误是 空指针什么的 你的第一个表达貌似是没问题 很可能就是少导入包了
import java.sql.Connection;
import java.sql.SQLException;

private Connection getConnection() throws SQLException {
try {
 
Class.forName("com.mysql.jdbc.Driver");// 加载mysql驱动
 
connection = java.sql.DriverManager
.getConnection(
"jdbc:mysql://192.168.232.168:3306:3306/zyh?useUnicode=true&characterEncoding=utf-8",
"root", "111111");// 获取连接
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return this.connection;
}


上面是给你的参照 你照着改改吧 应该难度不大的