JDBC连接数据库问题

wodehongseupan 2011-06-03 12:15:39
请教大家一个问题,每次我连接数据库的时候,就会报错。大家知道是什么原因吗??
//**************************************
错误:
java.sql.SQLException: Access denied for user 'abc'@'root' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:911)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3953)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1276)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.struts.ClassifyDAO.<init>(ClassifyDAO.java:21)
at com.struts.ClassifyAction.doQueryClassify(ClassifyAction.java:37)
at com.struts.ClassifyAction.execute(ClassifyAction.java:25)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
at java.lang.Thread.run(Unknown Source)
2010-11-3 11:58:35 org.apache.struts.action.RequestProcessor processException
警告: Unhandled Exception thrown: class java.lang.NullPointerException
2010-11-3 11:58:35 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at com.struts.ClassifyDAO.query(ClassifyDAO.java:33)
at com.struts.ClassifyAction.doQueryClassify(ClassifyAction.java:41)
at com.struts.ClassifyAction.execute(ClassifyAction.java:25)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
at java.lang.Thread.run(Unknown Source)


//*************************************************
代码是这样写的:

package com.struts;
import java.sql.*;
import java.util.ArrayList;
import java.util.Collection;

public class ClassifyDAO {
public static final String DRIVER_DATABASE="com.mysql.jdbc.Driver";
public static final String CONNECTION_DATABASE="jdbc:mysql://192.168.1.48:3306/struts_db?useUnicode=true&characterEncoding=GBK";
public static final String DATABASE_USER="abc";
public static final String DATABASE_PASSWORD="abc";

private Connection connection; // 连接数据库
public ClassifyDAO(){
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e){
e.printStackTrace();
}
try{
his.connection = DriverManager.getConnection //此处报错。。。。。(CONNECTION_DATABASE,DATABASE_USER,"DATABASE_PASSWORD");
}catch(SQLException e){
e.printStackTrace();
}
}


public Collection query(Object model){ //数据查询
String sql = "select * from classify";
Collection collection = new ArrayList();
try{
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
ClassifyForm from = new ClassifyForm();
from.setClassNum(rs.getString(1));
from.setClassName(rs.getString(2));
collection.add(from);
}
closeResultSet(rs);
closeStatement(stmt);
}catch(SQLException e){
e.printStackTrace();
}finally{
closeConnection(connection);
}
return collection;
}


public void closeResultSet(ResultSet result){ //关闭结果集
try{
if(result != null){
result.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}


public void closeStatement(Statement stmt){ //关闭语句对象
try{
if(stmt != null){
stmt.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}

public void closeConnection(Connection connection){ //断开与数据库的连接
try{
if(connection!=null && !connection.isClosed()){
connection.commit();
connection.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
}

...全文
123 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjt321 2011-06-03
  • 打赏
  • 举报
回复
连接数据库 的用户名 和密码 不正确啊
fengyun817 2011-06-03
  • 打赏
  • 举报
回复
少去了个引号。
fengyun817 2011-06-03
  • 打赏
  • 举报
回复
his.connection = DriverManager.getConnection //此处报错。。。。。(CONNECTION_DATABASE,DATABASE_USER,"DATABASE_PASSWORD");
红色部分加引号不对了。这样密码是 DATABASE_PASSWORD。肯定连不上。改为
his.connection = DriverManager.getConnection //此处报错。。。。。(CONNECTION_DATABASE,DATABASE_USER,"ATABASE_PASSWORD)
wodehongseupan 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 inthebluesky 的回复:]
java.sql.SQLException: Access denied for user 'abc'@'root' (using password: YES)

查看数据库中 'abc'是否有权限
[/Quote]

我用别的工程,调abc的其他数据库就可以阿。用现在这个工程,掉abc的数据库就报错。
难道都是abc 调不同的数据库,权限也不一样吗
InTheBlueSky 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 inthebluesky 的回复:]
java.sql.SQLException: Access denied for user 'abc'@'root' (using password: YES)

查看数据库中 'abc'是否有权限
[/Quote]

看看是否存在
InTheBlueSky 2011-06-03
  • 打赏
  • 举报
回复
java.sql.SQLException: Access denied for user 'abc'@'root' (using password: YES)

查看数据库中 'abc'是否有权限
major361 2011-06-03
  • 打赏
  • 举报
回复
try{
his.connection = DriverManager.getConnection //此处报错。。。。。(CONNECTION_DATABASE,DATABASE_USER,"DATABASE_PASSWORD");
}catch(SQLException e){
e.printStackTrace();
}
}


我也看到了,接分了。
屌丝团 2011-06-03
  • 打赏
  • 举报
回复

his.connection = DriverManager.getConnection(CONNECTION_DATABASE,DATABASE_USER,"DATABASE_PASSWORD");


把这句话的双引号去掉,加上双引号就等于root密码是 DATABASE_PASSWORD 了。
lovemichael2 2011-06-03
  • 打赏
  • 举报
回复
。。。。。(CONNECTION_DATABASE,DATABASE_USER,"DATABASE_PASSWORD");
双引号去掉

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧