前提・実現したいこと
Javaにて、データベースを取り扱うプログラミングを行った際、テーブル内のデータを取得する方法がわからないのですが、どうすればよろしいでしょうか?
一応自分が考えた方法で、取得しようとしたのですが、SQLExcepemsion例外へと流れてしまいます。
助けてください。
発生している問題・エラーメッセージ
値が挿入されず、falseを返してしまう。
while文の部分を素通りしてしまうため!マークを付け加えたりもしてみましたが駄目でした。
errorcode
1org.postgresql.util.PSQLException: 適切な位置にいない ResultSetです。おそらく、nextを呼ぶ必要があります。 2 at org.postgresql.jdbc.PgResultSet.checkResultSet(PgResultSet.java:2772) 3 at org.postgresql.jdbc.PgResultSet.getString(PgResultSet.java:1894) 4 at dao.UserDAO.loginCheck(UserDAO.java:25) 5 at servlet.LoginConterollerServlet.doPost(LoginConterollerServlet.java:54) 6 at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) 7 at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 8 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 9 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 10 at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 11 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 12 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 13 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) 14 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 15 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491) 16 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) 17 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) 18 at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) 19 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 20 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) 21 at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) 22 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 23 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764) 24 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388) 25 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 26 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) 27 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) 28 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 29 at java.base/java.lang.Thread.run(Thread.java:844) 30
該当のソースコード
該当のコードです。
java
1package dao; 2 3import java.sql.Connection; 4import java.sql.PreparedStatement; 5import java.sql.ResultSet; 6import java.sql.SQLException; 7import java.util.ArrayList; 8import java.util.List; 9 10import model.dao.UserBean; 11 12 13public class UserDAO { 14 15 16 //ログイン処理メソッド 17 public boolean loginCheck(String id,String pass) throws SQLException,ClassNotFoundException{ 18 try (Connection con=ConnectionManager.getConnection()){ 19 String sql="SELECT * FROM accounttable"; 20 PreparedStatement pStmt=con.prepareStatement(sql); 21 List<UserBean> userlist=new ArrayList<>(); 22 ResultSet re=pStmt.executeQuery(); 23 while(!re.next()) { 24 UserBean user=new UserBean(); 25 user.setId(re.getString(1)); 26 user.setName(re.getString(3)); 27 user.setPassWord(re.getString(2)); 28 user.setLevel(re.getInt(4)); 29 userlist.add(user); 30 } 31 32 for(UserBean user1:userlist) { 33 if(user1.getId().equals(id)&&user1.getPassWord().equals(pass)) { 34 return true; 35 }else { 36 return false; 37 } 38 39 } 40 return false; 41 42 }catch(SQLException e) { 43 e.printStackTrace(); 44 } 45 return false; 46 47 48 } 49 50 51 52 53 54 55 56 57} 58
補足
元は、教科書から引っ張ってきました
追記です。
java
1while(re.next()) { 2 String id=re.getString("ID"); 3 String pass=re.getString("PASSWORD"); 4 String name=re.getString("NAME"); 5 int lavel=re.getInt("LEVEL"); 6 UserBean user=new UserBean(id,pass,name,lavel); 7 userList.add(user); 8 }
これで、テーブルからデータを格納できているのでしょうか?
教えていただけないでしょうか?
回答1件
あなたの回答
tips
プレビュー