今天在编写一个用户登录系统的时候,发现总是出现connection获得为空,
部分代码如下所示
1)这是编写的数据库
drop database if exists alayang_msg;
create database alayang_msg;
use alayang_msg;
create table t_user(
id int(10) primary key auto_increment,
username varchar(100),
password varchar(100),
nickname varchar(100),
status int(3),
type int(3)
);
GRANT all on alayang_msg.* to 'jerry'@'localhost' IDENTIFIED by 'jerry123';
2)这是数据库连接部分
public static Connection getConnection()
{
String username="jerry";
String password="123";
String url = "jdbc:mysql://localhost:3306/jerry_msg";
Connection con=null;
try {
con=DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
if(con==null)
System.out.println("null");
return con;
}
3)这是DAO里的add方法的部分代码
public void add(User user) {
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con=DButil.getConnection();
if(con==null)
{
System.out.println("con is null");
}
String sql="select count(*) from t_user where username=?";
ps=con.prepareStatement(sql);
if(ps==null)
{
System.out.println("ps is null");
}
代码调试现象:总是提示我con为空,然后检查程序的逻辑,语法发现都没有错误,最后无奈之下,
就把数据库的登录名给改了,如下所示
GRANT all on alayang_msg.* to 'hehe'@'localhost' IDENTIFIED by '123';
没想到再次运行的时候竟然成功了!!到此时,才恍然发觉,原来在其他的数据库,我以前用过jerry这个名字
,并且密码跟其他的数据库设置的相同,由此导致了错误。
一个登录名只能对应一个数据库。。。。