gpt4 book ai didi

java - ResultSet#isFirst() 并不表示存在一行

转载 作者:行者123 更新时间:2023-12-02 10:29:45 25 4
gpt4 key购买 nike

我刚刚在 java 程序中从 ms access 获取数据时遇到了问题,我正在使用 ucanaccess 驱动程序,以下是我的代码

public void loginUser(){
// variables
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;

// Step 1: Loading or
// registering Oracle JDBC driver class
try {

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
}
catch(ClassNotFoundException cnfex) {

System.out.println("Problem in loading or "
+ "registering MS Access JDBC driver");
cnfex.printStackTrace();
}

// Step 2: Opening database connection
try {

String msAccDB;
msAccDB = "C:/Users/Hidayat Ullah/Documents/Record.accdb";
String dbURL = "jdbc:ucanaccess://"
+ msAccDB;

// Step 2.A: Create and
// get connection using DriverManager class
connection = DriverManager.getConnection(dbURL);

// Step 2.B: Creating JDBC Statement
String sql= "SELECT * FROM Student WHERE studentid = ? AND password = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
//printing here loginId.getText() and loginPass.getText() always has value
//i entered in the gui
pstmt.setString(1, loginId.getText());
pstmt.setString(2,loginPass.getText());
ResultSet row = pstmt.executeQuery();

if(row.isFirst()){
JOptionPane.showMessageDialog(null, "Student ID
:"+row.getString("studentid"));
System.exit(0);
}else{
JOptionPane.showMessageDialog(null, "No such record exists in database
against this ID, either ID or Password is incorrect.");
System.exit(0);
}

问题是,当我输入数据库中的用户 ID 和密码时,它总是不返回任何记录。我在这里做错了什么?

最佳答案

ResultSet 对象最初创建时,它位于第一行之前,因此 .isFirst() 将返回 false 直到调用 .next()ResultSet 定位在第一行(如果存在)上。您的代码可以简单地调用 .next() 而不是调用 .isFirst() ,如果它返回 true 则至少找到一个匹配行.

关于java - ResultSet#isFirst() 并不表示存在一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53680621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com