我现在在做一个小的网上定购子系统的模块,用的数据库是mysql,是参照书上做的,可是为什么老抱空指针的错误啊!
错误信息如下:
java.sql.SQLException: Invalid authorization specification message from server: "Access denied for user 'jdbc:mysql://loc'@'localhost' (using password: YES)"
at com.buy.bean.comm.database.DBConnect.getConnection(DBConnect.java:16)
at com.buy.bean.coin.UsercoinSelectBean.selectUsercoin(UsercoinSelectBean.java:26)
at java.lang.Thread.run(Thread.java:619)
no get connection! throws Exception
数据库已经连接
2008-2-29 8:31:38 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at com.buy.bean.coin.UsercoinSelectBean.selectUsercoin(UsercoinSelectBean.java:28)
at org.apache.jsp.COIN.usercoin_jsp._jspService(usercoin_jsp.java:120)
at java.lang.Thread.run(Thread.java:619)
java.sql.SQLException: Invalid authorization specification message from server: "Access denied for user 'jdbc:mysql://loc'@'localhost' (using password: YES)"
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2001)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1907)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:2524)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:818)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1808)
at com.mysql.jdbc.Connection.<init>(Connection.java:452)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
at java.sql.DriverManager.getConnection(DriverManager.java:548)
at java.sql.DriverManager.getConnection(DriverManager.java:179)
at com.buy.bean.comm.database.DBConnect.getConnection(DBConnect.java:16)
at com.buy.bean.coin.UsercoinSelectBean.selectUsercoin(UsercoinSelectBean.java:26)
at org.apache.jsp.COIN.usercoin_jsp._jspService(usercoin_jsp.java:120)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:390)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
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:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:212)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:619)
no get connection! throws Exception
数据库已经连接
2008-2-29 8:31:40 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at com.buy.bean.coin.UsercoinSelectBean.selectUsercoin(UsercoinSelectBean.java:28)
at com.buy.bean.comm.database.DBConnect.getConnection(DBConnect.java:16)
at com.buy.bean.coin.UsercoinSelectBean.selectUsercoin(UsercoinSelectBean.java:26
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:619)
no get connection! throws Exception
数据库已经连接
2008-2-29 8:31:40 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at com.buy.bean.coin.UsercoinSelectBean.selectUsercoin(UsercoinSelectBean.java:28)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at java.lang.Thread.run(Thread.java:619)
java.sql.SQLException: Invalid authorization specification message from server: "Access denied for user 'jdbc:mysql://loc'@'localhost' (using password: YES)"
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2001)
它老是指向UsercoinSelectBean.java类
package com.buy.bean.coin;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import com.buy.bean.comm.database.DBConnect;
public class UsercoinSelectBean {
public String selectUsercoin(String ID,int i){
String condition;
if(i==0){
condition = "select coin from user where id = '"+ID+"'";
}else if(i==1){
condition = "select consume from user where id = '"+ID+"'";
}else if(i==2){
condition = "select consume + coin from user where id = '"+ID+"'";
}else if(i==3){
condition = "select name from user where id = '"+ID+"'";
}else{
condition = "select type from user where id = '"+ID+"'";
}
ResultSet rs = null;
Statement sql = null;
String str = new String();
try {
Connection conn = DBConnect.getConnection();
System.out.println("数据库已经连接");
sql = conn.createStatement();
System.out.println("已经执行");
rs = sql.executeQuery(condition);
while (rs.next()) {
str = rs.getString(1);
}
rs.close();
sql.close();
conn.close();
} catch (SQLException ex) {
System.out.println("TradeDB SQLException: " + ex.getMessage());
return new String("can not select");
}
return str;
}
}以上我只是把一些认为有用的错误信息粘帖了一下,主要错误集中在
       DBConnect.java:16           UsercoinSelectBean.java:26)
我的DBConnect.java:16行的代码如下
conn = DriverManager.getConnection(Config.CONNECTION_URL,
Config.CONNECTION_URL,Config.CONNECTION_PWD);随便说一句我的连接的一些信息是放在一个properties文件里的,用Config类去管理,然后我通过Config类去调用的,这样有问题吗?书上也是这样做的啊config.properties文件
conn_type=
conn_url=jdbc:mysql://localhost:3306/buy
conn_user=root
conn_pwd=zgy01
conn_driver=com.mysql.jdbc.DriverConfig.java类
package com.buy.bean.comm.database;import java.io.IOException;
import java.util.Properties;public class Config 
{
   private static Properties prop = new Properties();
   
   static 
   {
   try
   {
   prop.load(Config.class.getResourceAsStream("config.properties"));
   }
   catch(IOException ex)
   {
System.out.println("File:config.properties no find,PLS check out!");
ex.printStackTrace();
   }
   }
   
   public static String CONNECTION_TYPE=prop.getProperty("conn_type");
   public static String CONNECTION_URL=prop.getProperty("conn_url");
   public static String CONNECTION_USER=prop.getProperty("conn_user");
   public static String CONNECTION_PWD=prop.getProperty("conn_pwd");
   public static String CONNECTION_DRIVER=prop.getProperty("conn_driver");
}

解决方案 »

  1.   

         没有人回答吗!我已经找到原因了,错误在于
    conn   =   DriverManager.getConnection(Config.CONNECTION_URL, 
    Config.CONNECTION_URL,Config.CONNECTION_PWD);第二个应该是用户名,真是太大意了,郁闷,55~~~~~~~~,快开接分啊!
      

  2.   

    如果我没有说错的话,你看的书的应该是:
    人民邮电出版社出版的《精通J2EE Eclipse Struts Hibernate Spring整合应用案例》(计磊 李里 周伟)编著我也正在看这本书。感觉写的太差了,错误百出啊!!!!很郁闷!