库存管理系统中登录验证中出现的问题
来源:互联网 发布:淘宝2015年销售额多少 编辑:程序博客网 时间:2024/05/09 02:14
在库存管理系统的代码中出现了连接数据库进行查询时的错误,报空指针异常。
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()方法创建数据库的连接。
1 0
- 库存管理系统中登录验证中出现的问题
- 新闻管理系统中用户的登录与验证
- JSP项目中连接数据库出现中文用户名无法通过登录验证问题的解决
- iOS中关于登录验证方面的问题的解决
- 在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存)
- 材料管理系统中发现的问题
- 学生管理系统中遇到的问题
- Django用户登录中出现403问题的解决
- 自定义tabbar中,点击退出登录出现的问题
- shiro中遇到404出现重新登录的问题
- javaweb登录页面验证码验证以及session中验证码值获取不同步的问题
- 供应商管理库存的信息支撑系统
- 电商项目中库存管理(问答式)
- Ajax验证过程中出现的中文乱码问题
- c#中进行控件验证是出现的问题!
- 短信验证倒计时以及在firefox中出现的问题
- 学生信息管理系统中系统登录问题
- 库存管理系统 官网
- [每日问答]特征选择有哪些方法?
- ReactNative学习历程
- 利用 Profiler(性能分析器)查看游戏在移动真机上的性能消耗数据
- 剑指offer——二叉树的深度
- 字符数组和字符串的区别
- 库存管理系统中登录验证中出现的问题
- 1038. 统计同成绩学生(20)
- Ureal编译器的快捷使用
- ubuntu14.04+cuda8.0配置
- uboot命令概述,uboot环境变量的加载设置与save原理
- MySQL常用命令(持续更新)
- (二)初次使用flask框架
- 安信可A7模块介绍,以及GPRS基本测试命令
- 计算机网络--CRC校验