자바 에서 데이터베이스 작업 시 스크롤 백

2329 단어 자바
Connection conn=null; 
conn.rollback()就可以回滚
//用jdbc连接数据库
//举例子,比如你在写一个级联删除的方法的时候,为了保证数据完整性,删除的时候一定要确定该删的都删了才行,否则就要回滚,下面是删除方法的例子:

public boolean delete (int sID) {/삭제 에 성공 하면 true; dbc = new DataBaseConnection ();//자신의 방식 으로 데이터 베 이 스 를 만 드 는 연결 Connection con = dbc. getConnection ();//Connection try {con. setAutoCommit (false);//JDBC 트 랜 잭 션 의 기본 제출 방식 을 변경 합 니 다. 기본 값 은 true 이 고 자동 으로 제출 합 니 다. dbc. executeUpdate ()"delete from xiao where ID ="+ sID);//삭제 dbc. executeUpdate ("delete from xiao content where ID ="+ sID);//삭제 dbc. executeUpdate ("delete from xiao affix where by lawid ="+ sID);;//JDBC 트 랜 잭 션 의 기본 제출 방식 을 복원 합 니 다. 이것 은 좋 은 습관 입 니 다. dbc. close ();//연결 return true 를 닫 습 니 다.//삭제 성공} catch (Exception exc) {con. rollBack ();//JDBC 트 랜 잭 션 을 스크롤 합 니 다. 이상 이 발생 하여 데이터 의 완전 성 을 확보 하기 위해 이번 에는 스크롤 백 을 하고 삭제 하지 않 습 니 다. exc. printStackTrace ();/출력 이상 정보; dbc. close ();//연결 을 닫 으 면 return false;//삭제 실패}}
//참고 로 자바 에서 JDBC 의 사무 관 리 는 당신 이 사용 하 는 데이터베이스 와 상 관 없 이 어떤 데이터 베 이 스 를 사용 하 든 상관 없습니다.
//추가 작업 하기
Connection con = null; PreparedStatement ps = null; ResultSet rs = null; String tableName = args[0]; Integer id = JdbcUtil.parseInt(args[1]); String name = args[2]; String command = args[3]; try{ con = JdbcUtil.getConnection(); con.setAutoCommit(false); String sql = "insert into "+tableName+ "values(?,?)"; ps = con.prepareStatement(sql); ps. setInt (1, id); ps. setString (2, name); ps. executeUpdate (); con. comit ();/수 동 제출
} catch (Exception e) {System. out. println (e. getMessage ()); try {con. rollback ();//수 동 스크롤 백} catch (Exception ex) {System. out. println (ex. getMessage ();}} 최종 {JdbcUtil. close (rs, ps, con);}
//수정 작업 하기
try { conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; User = JavaDB; Password = javadb; DatabaseName = northwind);//점 자동 제출 금지, 반환 conn. setAutoCommit (false) 설정, stmt = conn. createStatement ();//데이터베이스 업데이트 작업 1 stmt. executeUpdate ("update firsttable Set Name = 'testTransaction' Where ID = 1");//데이터베이스 업데이트 작업 2 stmt. executeUpdate ("insert into firsttable ID = 12, Name = 'testTransaction 2');//사무 제출 conn. comit ();} catch (Exception ex) {ex. printStackTrace (); try {/작업 이 성공 하지 못 하면 conn. rollback ();} catch (Exception e) {  e.printStackTrace();   } }

좋은 웹페이지 즐겨찾기