返回信息流我练习一个小项目。控制台报了三个错,分别是
1.java.sql.SQLException: Access denied for user 'admin'@'localhost' (using password: YES);2.java.lang.NullPointerException
at com.util.SqlHelper.executeQuery(SqlHelper.java:24);
3.2015-8-24 11:42:51 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet GoHallUi threw exception
java.lang.RuntimeException
at com.util.SqlHelper.executeQuery(SqlHelper.java:49)
然后我的sqlhelper代码是
public class SqlHelper
{
//定义需要的变量
private static Connection ct=null;//连接
private static ResultSet rs=null;//结果
private static PreparedStatement ps=null;
public ArrayList executeQuery(String sql,String []paras)
{
ArrayList al=new ArrayList();
try {
ct=DBUtil.getCon();
ps=ct.prepareStatement(sql);//这是第24行
//给sql问号赋值
for (int i = 0; i < paras.length; i++)
{
ps.setString(i+1, paras[i]);
}
rs=ps.executeQuery();
//非常有用的
ResultSetMetaData rsmd=rs.getMetaData();
//用法rs可以的到有多少列
int columnNum=rsmd.getColumnCount();
//循环从a1中取出数据封装到ArrayList中
while(rs.next())
{
Object []objects=new Object[columnNum];
for(int i=0;i<objects.length;i++)
{
objects[i]=rs.getObject(i+1);//返回对象数组
}
al.add(objects);
}
return al;
} catch (Exception e)
{
e.printStackTrace();
throw new RuntimeException(e.getMessage());//这是第49行
}finally
{
DBUtil.close(rs,ps,ct);
}
}
请各位大神指导,感激不尽
这是一条镜像帖。来源:北邮人论坛 / java / #43686同步于 2015/8/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
[问题]菜鸟求助一个问题,真诚希望各位大神解答
henry
2015/8/24镜像同步29 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
第一个错是你没有权限,可能是账号密码错了,也有可能是没有给你的ip加白名单。后面的就不清楚了,可能没有权限返回的对象就是null?
【 在 henry (henry) 的大作中提到: 】
: 我练习一个小项目。控制台报了三个错,分别是
: 1.java.sql.SQLException: Access denied for user 'admin'@'localhost' (using password: YES);2.java.lang.NullPointerException
: at com.util.SqlHelper.executeQuery(SqlHelper.java:24);
: ...................
多谢回答,但是我的用户名和密码都是对的,并且ip在navicat中好像也可以看出是放行的呀
【 在 dss886 的大作中提到: 】
: 第一个错是你没有权限,可能是账号密码错了,也有可能是没有给你的ip加白名单。后面的就不清楚了,可能没有权限返回的对象就是null?
:
: 【 在 henry (henry) 的大作中提到: 】
:
: .........
是啊,网上百度了好久真心解决不了,目前还是初学的菜鸟,求教应该怎么做
【 在 FromSixToTen 的大作中提到: 】
: 先解决第一个问题,YES?
:
'admin'@'localhost',如果你的程序不是在MySQL所在的机器上运行的,这里就有问题
重新添加一个用户试试,另外还有一些bug有可能导致远程连接不上,
比如http://anonymity.iteye.com/blog/347737,可以挨个排查一下。。
【 在 henry 的大作中提到: 】
: 多谢回答,但是我的用户名和密码都是对的,并且ip在navicat中好像也可以看出是放行的呀
: :
是在本机上运行的,另外我重新添加了一个用户,在数据库控制台可以登录,但到了myeclipse 还是报和上面一样的错
【 在 dss886 的大作中提到: 】
: 'admin'@'localhost',如果你的程序不是在MySQL所在的机器上运行的,这里就有问题
:
: 重新添加一个用户试试,另外还有一些bug有可能导致远程连接不上,
: 比如http://
: .........
把你的连接字符串弄出来看看。
【 在 henry 的大作中提到: 】
: 是啊,网上百度了好久真心解决不了,目前还是初学的菜鸟,求教应该怎么做
: :
【 在 FromSixToTen 的大作中提到: 】
: 把你的连接字符串弄出来看看。
dbinfo properties:
url = jdbc:mysql://127.0.0.1:3306/test
username = root
driver = com.mysql.jdbc.Driver
password =123123
DBUtil.java:
package com.util;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
////这是一个工具类,用于得到连接和关闭连接
public class DBUtil {
private static Connection ct=null;//连接
private static ResultSet rs=null;//结果
private static PreparedStatement ps=null;
//连接数据库参数
private static String url = "";
private static String drivername = "";
private static String username = "";
private static String password = "" ;
//加载驱动,一次
static{
try
{
Properties properties=new Properties();
InputStream is=DBUtil.class.getClassLoader().getResourceAsStream("com/util/dbinfo.properties");
properties.load(is);
//属性文件读取信息
drivername=properties.getProperty("driver");
username=properties.getProperty("username");
password=properties.getProperty("password");
url=properties.getProperty("url");
} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}
}
//得到连接
public static Connection getCon()
{
try {
Class.forName(drivername);
ct= DriverManager.getConnection(url, password, username);//注意配置文件
} catch (Exception e) {
e.printStackTrace();
}
return ct;//谁调用谁拿到Connection
}
public static void main(String args [])
{
System.out.println(drivername);
System.out.println(username);
System.out.println(password);
System.out.println(url);
}
//关闭资源函数
public static void close(ResultSet rs,Statement ps,Connection ct)
{
if(rs!=null)
{
try
{
rs.close();
}catch(Exception e)
{
}
rs=null;//使用垃圾回收
}
if(ps!=null)
{
try
{
ps.close();
}catch(SQLException e)
{
e.printStackTrace();
}
ps=null;
}
if(ct!=null)
{
try
{
ct.close();
}catch(SQLException e)
{
e.printStackTrace();
}
ct=null;
}
}
}