库存管理系统中登录验证中出现的问题
2017-05-14 16:14
162 查看
在库存管理系统的代码中出现了连接数据库进行查询时的错误,报空指针异常。
Dao包中的部分代码如下
Login类中的部分代码如下
调试的时候出现空指针异常,经过几次查找与修改之后代码修改如下
在这里将数据库的连接单独创建了一个方法
并且将
Connection conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
改为
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
将Connection 去掉,这里带Connection 的话就是局部变量了,在后面连接依然为null
在这个Login类中的这个监听器中获取用户信息之前调用了Dao类中的MyConn()方法创建数据库的连接。
Dao包中的部分代码如下
protected static String dbClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; protected static String dbUrl = "jdbc:sqlserver://localhost:1433; DatabaseName=db_JXC"; protected static String dbUser = "sa"; protected static String dbPwd = "han12345"; protected static String second = null; public static Connection conn = null; static { try { Class.forName(dbClassName); } catch (Exception e) { e.printStackTrace(); } try { // 与数据库连接 Connection conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); } catch (Exception e1) { e1.printStackTrace(); } } public static TbUserlist getUser(String name, String password) { //创建一个新的用户表对象 TbUserlist user = new TbUserlist(); //通过name查询用户信息,语句在 ResultSet rs = findForResultSet("select * from tb_userlist where username='"+ name + "'"); try { //这里出现空指针异常 if (rs.next()) { //将表中读取到的信息传递到TbUserlist中用于后面的验证 user.setUsername(name); user.setPass(rs.getString("pass")); if (user.getPass().equals(password)) { user.setName(rs.getString("name")); user.setQuan(rs.getString("quan")); } } } catch (SQLException e) { e.printStackTrace(); } return user; } public static ResultSet findForResultSet(String sql) { if (conn == null) return null; long time = System.currentTimeMillis(); ResultSet rs = null; try { Statement stmt = null; //该常量指示可滚动但通常不受result底层数据更改影响的result对象的类型,不可更新的resultset对象的类型 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); //执行sql语句,通过name查询用户信息 rs = stmt.executeQuery(sql); //时间 second = ((System.currentTimeMillis() - time) / 1000d) + ""; } catch (Exception e) { e.printStackTrace(); } return rs; }
Login类中的部分代码如下
public void actionPerformed(final ActionEvent e) { //从数据库中获取用户 user = Dao.getUser(userName.getText(), userPassword.getText()); //如果用户或者密码为空的话将两个文本框置为NULL if (user.getUsername() == null || user.getName() == null) { userName.setText(null); userPassword.setText(null); return; } setVisible(false); new KCFrame(); } });
调试的时候出现空指针异常,经过几次查找与修改之后代码修改如下
protected static String dbClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; protected static String dbUrl = "jdbc:sqlserver://localhost:1433; DatabaseName=db_JXC"; protected static String dbUser = "sa"; protected static String dbPwd = "han12345"; protected static String second = null; public static Connection conn = null; public static void MyConn() { try { Class.forName(dbClassName); } catch (Exception e) { e.printStackTrace(); } try { // 与数据库连接 conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); System.out.println("连接成功"); } catch (Exception e1) { e1.printStackTrace(); } }
在这里将数据库的连接单独创建了一个方法
并且将
Connection conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
改为
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
将Connection 去掉,这里带Connection 的话就是局部变量了,在后面连接依然为null
public void actionPerformed(final ActionEvent e) { Dao.MyConn(); //从数据库中获取用户 user = Dao.getUser(userName.getText(), userPassword.getText()); //如果用户或者密码为空的话将两个文本框置为NULL if (user.getUsername() == null || user.getName() == null) { userName.setText(null); userPassword.setText(null); return; } setVisible(false); new KCFrame(); } });
在这个Login类中的这个监听器中获取用户信息之前调用了Dao类中的MyConn()方法创建数据库的连接。
相关文章推荐
- 验证来自服务器的证书时出现问题,将重试连接,登录可能延迟
- BIEE 11G 登陆时出现 “无法登录 验证期间出错” 的问题解决
- 使用User-Agent作为登录验证的一部分出现的问题
- 登录时第一次输入验证码显示验证码错误。出现的问题:验证码ajax验证时 后台取不到session的值
- Exchange故障排除实录:客户端出现登录验证
- 解决Linux系统安装后,root用户无法登录,提示“无法验证用户”的错误问题
- asp.net用户身份验证时读不到用户信息的问题 您的登录尝试不成功。请重试。 Login控件
- QQ登录界面出现????QQ?? 以及一些文件出现乱码问题
- 右下角老弹出盗版提示,以及登录界面出现正版验证对话框
- 登录mysql出现/var/lib/mysql/mysql.sock不存在以及mysql dead but subsys locked的问题
- PHP 出现乱码和Sessions验证问题的解决方法!
- SqlServer 2005 升级至SP2过程中出现"身份验证"无法通过的问题
- 关于PHP session登录验证的一个安全问题
- H3C交换机dot1X+AD+IAS+CA配置实验(解决用户尚未登录无法验证问题)
- H3C交换机dot1X+AD+IAS+CA配置实验五(解决用户尚未登录无法验证问题)
- Struts2 表单验证错误信息重复出现的问题
- tomcat登录后出现XDB输入用户名密码问题
- 关于PHP中出现乱码和Sessions验证问题的解决方法!
- Project任务与 Outlook 同步时,出现登录失败的问题
- 解决QQ2009正式版登录时出现“服务器拒绝”问题