SQLテーブルから整数値を取得していない現在の行は、私は、SQLテーブルから登録ユーザの(つまりINTEGER NOT NULL GENERATED ALWAYS AS IDENTITY
ある)のIDを取得しようとしていますいわゆる "USERS"、int _id = rs2.getInt("UserID");
を呼び出すとき、それは私に例外をスロー:ここInvalid cursor state - no current row.
は、私がこれまで持っているものです:Servlet.javaでカーソル状態が無効 - 私はこれについて多くのことを探してきたが、何も私の問題を解決していない
:UAppConstants.javaで
try{
stmt = conn.prepareStatement(UAppConstants.SELECT_USERID_BY_NAME);
System.out.println("1");
stmt.setString(1, _username);
System.out.println("2");
ResultSet rs2 = stmt.executeQuery();
System.out.println("3");
int _id = rs2.getInt("UserID"); //exception here
System.out.println("the registered user id is" + _id);
}catch (SQLException e) {
System.err.println(e.getMessage()); // print error
}
:
public final String CREATE_USERS_TABLE = "CREATE TABLE USERS (UserID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) PRIMARY KEY,username varchar(10) NOT NULL,password varchar(8) NOT NULL,description varchar(50) DEFAULT NULL,nickname varchar(20) NOT NULL,photo varchar(100) DEFAULT NULL)";
public final String INSERT_USER_STMT = "INSERT INTO USERS (username,password,nickname,description,photo) VALUES (?,?,?,?,?)";
public final String SELECT_USERID_BY_NAME = "SELECT UserID FROM USERS WHERE username=? ";
UserModel.java:
public class User {
private String Username, Password, Description, Photo,Nickname;//user "schema"
private int UserID;
public User(String name, String pass, String nick,String desc,String photo) {
Username = name;
Password = pass;
Description = desc;
Photo = photo;
Nickname = nick;
}
/* Getters & Setters */
public int getUserID() {
return UserID;
}
public void setUserID(int uid) {
this.UserID = uid;
}
//the rest of getters and setters
例外:
INFO: Reloading Context with name [/ExampleServletv3] is completed
1
2
3
Invalid cursor state - no current row.
誰かが何をすべきかを私に指示することができますか? は、カーソルは最初の行の前に置かれ、executeQuery
たら
はstracktraceではありません。代わりに、Webサーバーのログの一部であり、スタックトレースでいくつかのエラーが含まれます。それらのすべては、再デプロイメントのためにサーバーをシャットダウンすることに関連しています。だから彼らは手元の問題とは何の関係もない。あなたの問題に関連する唯一のエラーメッセージは最後の行にあり、stracktraceがありません。私の答えに記述されているようにエラー処理を改善してください。 – Codo
あなたは 'sql-server'でこの質問にタグを付けましたが、DDLはMicrosoft SQL Server構文ではありません。 –