代码如下:
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;
}
上面是给你的参照 你照着改改吧 应该难度不大的