--Il existe un mécanisme appelé point de sauvegarde de transaction.
En premier lieu, une transaction est un "flux d'une série de processus pour effectuer un certain processus". Si l'un des processus est terminé dans une série de processus, il arrive souvent que les processus mis à jour jusqu'à ce point soient rembobinés et retournés à l'état avant l'exécution des processus. Cependant, selon la situation, vous voudrez peut-être revenir à un certain point où vous ne souhaitez pas tout retourner. Dans ce cas, vous pouvez définir un point d'enregistrement et revenir (revenir en arrière) à ce point.
Décrivez l'exemple de code en supposant le processus d'enregistrement du nom d'argument dans la table de liste.
--Get Savepoint entre l'obtention de la connexion et l'obtention de PreparedStatement.
Java
public void regist(String name) throws SQLException{
Connection con = null;
Savepoint save = null;
String sql = null;
PreparedStatement ps = null;
try{
con = this.getConnection();
if(con.getMetaData().supportsSavepoints()){
save = con.setSavepoint();
}
sql = "insert into list (name) values (?)";
ps = con.prepareStatement(sql);
ps.setString(1, name);
ps.executeUpdate();
ps.close()
}catch(SQLException e){
if(save != null){
con.rollback(save);
}
else{
con.rollback();
}
}finally{
if(con!=null){
try{
con.close();
}catch(SQLException e){
}
}
}
}
Recommended Posts