PreparedStatement의 excute 방법의 반환값 문제

1950 단어 jdbc
오늘 jdbc로 sql 문장을 썼습니다.Prepared Statement 대상을 통해 기록을 삽입합니다.
 
                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;
			}

 
 
 

좋은 웹페이지 즐겨찾기