正在回答
7回答
同学你好。可以检查一下代码中有没有使用rs.getString();的地方。使用rs.getString();前一定要加上rs.next();
ResultSet对象代表SQL语句执行的结果集,维护指向其当前数据行的光标。
每调用一次next()方法,光标向下移动一行。最初它位于第一行之前,因此第一次调用next()应把光标置于第一行上,使它成为当前行。
随着每次调用next()将导致光标向下移动一行。在ResultSet对象以及其他父辈Statement对象关闭之前,光标一直保持有效。
如果解答了同学的疑问,望采纳~
祝学习愉快~
LuckiTC
2019-07-05 19:55:07
package com.imooc.dao.Impl; import java.sql.Connection; import java.sql.ResultSet; import com.imooc.dao.UserDao; import com.imooc.domain.User; import com.imooc.utils.JDBCUtils; import java.sql.PreparedStatement; public class UserDaoImpl implements UserDao { @Override public User login(User user) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; System.out.println("开始数据库连接"); try { conn = JDBCUtils.getConnection(); String sql = "select * from user where username= ? and password= ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, user.getUsername()); pstmt.setString(2, user.getPassword()); //System.out.println(sql); rs = pstmt.executeQuery(); System.out.println(rs.getInt("username")); System.out.println("数据库连接成功"); if (rs.next()) { User exitUser = new User(); exitUser.setUid(rs.getInt("uid")); exitUser.setPassword(rs.getString("password")); exitUser.setUsername(rs.getString("username")); return exitUser; } } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtils.release(rs, pstmt, conn); } return null; } }
3. Java 数据库开发与实战应用
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星