数据库连接类如下:
package org.pan.util;import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DBConnectionManager {
private String driverName="com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://127.0.0.1:3306/wagemanage","root","root";
public void setDriverName(String newDriverName) {
driverName = newDriverName;
}
public String getDriverName() {
return driverName;
}
public void setUrl(String newUrl) {
url = newUrl;
}
public String getUrl() {
return url;
}
public void setUser(String newUser) {
user = newUser;
}
public String getUser() {
return user;
}
public void setPassword(String newPassword) {
password = newPassword;
}
public String getPassword() {
return password;
} public Connection getConnection() {
try {
Class.forName(driverName);
// return DriverManager.getConnection(url, user, password);
return DriverManager.getConnection(url);
}
catch (Exception e) {
e.printStackTrace();
return null;
}
} public static void main(String[] args) {
// DBConnectionManager DBConnectionManager1 = new DBConnectionManager();
try{
DBConnectionManager dcm = new DBConnectionManager();
Connection conn = dcm.getConnection();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from admin");
// stmt = conn.createStatement(); while(rs.next()){
System.out.print("登陆帐号: "+rs.getString(0));
System.out.print("\tpassword: "+rs.getString(1));
System.out.println();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
运行后报错:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
org.pan.web.DataBase.close(DataBase.java:79)
org.pan.web.login.excute(login.java:60)
org.apache.jsp.login_jsp._jspService(login_jsp.java:76)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.,我的jar包已经放在了lib下,这个数据库连接类以前是用来连接access的。现在想改成连mysql,但该了老是报错,不知道什么地方没写对
package org.pan.util;import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DBConnectionManager {
private String driverName="com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://127.0.0.1:3306/wagemanage","root","root";
public void setDriverName(String newDriverName) {
driverName = newDriverName;
}
public String getDriverName() {
return driverName;
}
public void setUrl(String newUrl) {
url = newUrl;
}
public String getUrl() {
return url;
}
public void setUser(String newUser) {
user = newUser;
}
public String getUser() {
return user;
}
public void setPassword(String newPassword) {
password = newPassword;
}
public String getPassword() {
return password;
} public Connection getConnection() {
try {
Class.forName(driverName);
// return DriverManager.getConnection(url, user, password);
return DriverManager.getConnection(url);
}
catch (Exception e) {
e.printStackTrace();
return null;
}
} public static void main(String[] args) {
// DBConnectionManager DBConnectionManager1 = new DBConnectionManager();
try{
DBConnectionManager dcm = new DBConnectionManager();
Connection conn = dcm.getConnection();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from admin");
// stmt = conn.createStatement(); while(rs.next()){
System.out.print("登陆帐号: "+rs.getString(0));
System.out.print("\tpassword: "+rs.getString(1));
System.out.println();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
运行后报错:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
org.pan.web.DataBase.close(DataBase.java:79)
org.pan.web.login.excute(login.java:60)
org.apache.jsp.login_jsp._jspService(login_jsp.java:76)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.,我的jar包已经放在了lib下,这个数据库连接类以前是用来连接access的。现在想改成连mysql,但该了老是报错,不知道什么地方没写对
package csdn;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class MySQLDB { public static Connection getConnection() {
Connection conn = null;
try {
String driver = "com.mysql.jdbc.Driver";
String dbURL = "jdbc:mysql://localhost:3306/DBName?useUnicode=true&characterEncoding=UTF-8";
String username = "root";
String password = ""; Class.forName(driver).newInstance();
conn = DriverManager.getConnection(dbURL, username, password);
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return conn;
} public static boolean closeConnection(Connection conn) {
try {
conn.close();
return true;
} catch (SQLException e) {
e.printStackTrace();
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}}
import java.sql.*;public class DBConnectionManager {
private String driverName="com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://127.0.0.1:3306/wagemanage";
private String user="root";
private String password="root";
public void setDriverName(String newDriverName) {
driverName = newDriverName;
}
public String getDriverName() {
return driverName;
}
public void setUrl(String newUrl) {
url = newUrl;
}
public String getUrl() {
return url;
}
public void setUser(String newUser) {
user = newUser;
}
public String getUser() {
return user;
}
public void setPassword(String newPassword) {
password = newPassword;
}
public String getPassword() {
return password;
}
/* public Connection getConnection() {
try {
Class.forName(driverName);
return DriverManager.getConnection(url,user,password);
}
catch (Exception e) {
e.printStackTrace();
return null;
}
}
*/
public static void main(String[] args) {
try{
DBConnectionManager dcm = new DBConnectionManager();
Class.forName(dcm.getDriverName());
Connection conn = DriverManager.getConnection(dcm.getUrl(),dcm.getUser(),dcm.getPassword());
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from admin");
while(rs.next()){
System.out.print("登陆帐号: "+rs.getString(0));
System.out.print("\tpassword: "+rs.getString(1));
System.out.println();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
//这个这么写有就问题,
//--->
private String url = "jdbc:mysql://127.0.0.1:3306/wagemanage;
private String name = "root";
private String pass = "root";
---------------------------------------------------------------------------
// return DriverManager.getConnection(url, user, password);
return DriverManager.getConnection(url);
//这个也有问题
//--->
return DriverManager.getConnection(url, user, pass);
---------------------------------------------------------------------------
try{
DBConnectionManager dcm = new DBConnectionManager();
Connection conn = dcm.getConnection();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from admin");
// stmt = conn.createStatement(); while(rs.next()){
System.out.print("登陆帐号: "+rs.getString(0));
System.out.print("\tpassword: "+rs.getString(1));
System.out.println();
}
}catch(Exception e){
e.printStackTrace();
}
//--------->改成:
try{
DBConnectionManager dcm = new DBConnectionManager();
Connection conn = dcm.getConnection(dcm.url,dcm.name,dcm.pass);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from admin");
// stmt = conn.createStatement(); while(rs.next()){
System.out.print("登陆帐号: "+rs.getString(0));
System.out.print("\tpassword: "+rs.getString(1));
System.out.println();
}
}catch(Exception e){
e.printStackTrace();
}
这样的定义能正确?
String username = "root";
String password = "";
这样写不正确啊,你可以看看JDK的帮助文档啊,//加载驱动
Class.forName("Driver");
//得到连接
Connection conn = DriverManager.getConnection(url,username,password);
//得到处理对象 Statement 或者 prepareStatement ,注意SQL注入
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
根源java.lang.NullPointerException
org.pan.web.DataBase.close(DataBase.java:79)
org.pan.web.login.excute(login.java:60)
org.apache.jsp.login_jsp._jspService(login_jsp.java:76)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
注意:完整的堆栈跟踪的根本原因是在Apache Tomcat/6.0.20日志。
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/school"; //school为数据库
String user="root"; //账号
String pwd=""; //密码Class.forName(driver); //加载驱动
Connection con=DriverManager.getConnection(url,user,pwd); //连接
自己研究吧......