-5
Koşullara bağlı olarak saklı yordamı geri almam gereken bir gereksinim var.Java'da Geri Alma İşlemi Prosedürü
Önce saklı yordamı çağırın ve daha sonra bir koşul olup olmadığını kontrol edin ve koşul başarısız olursa, geri alma yapmak zorunda. Aşağıda denediğim kod var. yöntem öğrenci tabloda adı listesini basar() Yukarıdaki kodu
public static void main(String[] args) {
Student student=new Student();
student.setName("AAAA");
student.setAge("20");
student.setDob("14/08/1988");
student.setPhone("98841");
student.setSslc("1111");
student.setHsc("222");
student.setCollege("333");
System.out.println(student);
try {
Connection conn=ConnectDB.getConnection();
conn.setAutoCommit(false);
CallableStatement callableStatement = null;
String proc = "{call STUDENT_OP(?,?,?,?,?,?,?,?)}";
callableStatement = conn.prepareCall(proc);
Savepoint savepoint1 = conn.setSavepoint("ROLLBACK_SP");
int age=Integer.parseInt(student.getAge());
callableStatement.setString(1, student.getName());
callableStatement.setInt(2, age);
callableStatement.setString(3, student.getDob());
callableStatement.setString(4, student.getPhone());
callableStatement.setString(5, student.getSslc());
callableStatement.setString(6, student.getHsc());
callableStatement.setString(7, student.getCollege());
callableStatement.registerOutParameter(8, java.sql.Types.NUMERIC);
callableStatement.executeUpdate();
int returnCode=callableStatement.getInt(8);
getStudents();
if(SOME CONDITION){
conn.rollback(savepoint1);
}
getStudents();
} catch (SQLException e) {
e.printStackTrace();
}
}
,
getStudents. Geri alma ve geri alma işleminden önce bu getStudents() yöntemini çalıştırıyorum. Savepoint'u olarak ayarladım Savepoint savepoint1 = conn.setSavepoint ("ROLLBACK_SP"); ve bu kaydetme noktasını kullanarak geri dönüyorum. Ancak geri alma gerçekleşmiyor. Bir şey mi eksik? lütfen yardım et.