PreparedStatement의 excute 방법의 반환값 문제
1950 단어 jdbc
boolean flag = false;
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "insert into student " + Const.DBCOLUMN + " values "+Const.getDbcolumnAgent(Const.DBCOLUMN);
try {
con = ConnectionFactory.getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, student.getSite());
ps.setString(2, student.getShool());
ps.setString(3, student.getTraining());
ps.setString(4, student.getCourseName());
ps.setString(5, student.getPeclass());
ps.setString(6, student.getStuName());
ps.setString(7, student.getLoginId());
ps.setString(8, student.getOnlineTime());
ps.setString(9, student.getMianshouScore());
ps.setString(10, student.getBbsScore());
ps.setString(11, student.getTestScore());
ps.setString(12, student.getHomeworkScore());
ps.setString(13, student.getOtherScore());
ps.setString(14, student.getMakeupScore());
ps.setString(15, student.getLastScore());
ps.setString(16, student.getWorkUnit());
ps.setString(17, student.getPesubject());
ps.setString(18, student.getStage());
ps.setString(19, student.getPhone());
flag=ps.execute();
이상한 문제를 발견했다. 나는 분명히 기록을 삽입하는 데 성공했지만pstmt.execute () 가 확실히false로 돌아왔는데, 나중에 자료를 찾아서야 알았다
execute () 방법
Returns:
true if the first result is a ResultSet object; false if the first result is an update count or there is no result
나의 이해는:
만약execute가 실행하는 것이 insert나 업데이트 문장에 결과 집합이 없다면,false를 되돌려주고,select 문장에 결과 집합이 있다면,true를 되돌려줍니다.
만약 물이 이해된다면 excuteUpdate () 방법으로 대체할 수 있으며,excuteUpdate () 방법은 데이터베이스에서 업데이트된 항목의 수를 되돌려줍니다.
코드는 다음과 같습니다.
if(ps.executeUpdate()==1){
flag=true;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 애플리케이션을 모든 SQL 데이터베이스와 연결그래서 오늘 이 기사를 통해 JDBC를 통해 Java 애플리케이션을 SQL 데이터베이스에 연결하기 위해 작성할 수 있는 각 줄을 설명하는 심층 가이드를 제공하여 그들과 모든 커뮤니티를 도우려고 합니다. JDBC는 J...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.