数据库连接问题(Access denied for user 'root '@'localhost' (using password: YES))
我上百度搜了很久,说是权限问题,或者修改下密码之类的,但是显然不是我遇到的问题。
给大家看一下我的代码(报错):
下面就是我的代码,其他地方的应该就不用黏贴了吧。
神奇的地方是,我把getConnection()方法中return中DriverManager.getConnection(url,userName,userPassword);
中的userName变量换成常量"root"程序就能正常执行,我真的很苦恼。
每次遇到这种奇怪的问题我都会觉得是我的ide有问题,可是最后事实证明是某些小细节,但是我这次还是奇怪是不是我的ide有问题,因为我上几个小项目也是这样的写法除了类名有变更,基本代码一致,可是偏偏我这个会报错。。求解啊。。。头疼
package deep.common;
import java.io.IOException;
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.util.Properties;
/**
* jdbc数据帮助类
* @author DeepSleeping
*
*/
public class DBUtil {
private static String driver;
private static String url;
private static String userName;
private static String userPassword;
//获取连接
static{
try {
InputStream ins = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");
Properties prop = new Properties();
prop.load(ins);
//获取数据库连接必要数据
driver = prop.getProperty("driver");
url = prop.getProperty("url");
userName = prop.getProperty("userName");
userPassword = prop.getProperty("userPassword");
System.out.println("driver = " + driver);
System.out.println("url = " + url);
System.out.println("userName = " + userName);
System.out.println("userPassword = " + userPassword);
//加载驱动
Class.forName(driver);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 获取连接
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException{
/*用变量userName就会出错不知道为什么*/
return DriverManager.getConnection(url,userName,userPassword);
}
/**
* 释放连接
*/
public static void release(Connection conn,PreparedStatement ps,ResultSet rs){
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4635/viewspace-3130451/ ,如需转载,请注明出处,否则将追究法律责任。