java 데이터베이스 사물 처리 실현

1817 단어 JAVA_WEB
예전에는 굴러가는 것을 이해하지 못했는데, 지금은 갑자기 이 예를 통해
하나의dao와 하나의서비스층을 통해 실현
데이터베이스 만들기
    create table money(name varchar(20),qian int(20));
    insert into money(name,qian)values('zs',1000);
    insert into money(name,qian)values('ls',1000);
Dao 계층 이체 기능 클래스: AccountDao
하나의 사물은 하나의 연결 대상을 통과할 수 있기 때문에, 우리는 여기에서 연결을 하나의 매개 변수로 전송한다
    public void zhuanzhang(Connection conn,String name,int qian){
        String sql = "update money set qian =qian+? where name=?"
       PrepareStatement pro = conn.prepareStatement(sql);
        pro.setInt(1,qian);
        pro.setString(2,name);
        int index = pro.executeUpdate();
/*여기서 틀리면 되돌아오는 결과는 0입니다. 대신에게 더 간단한 방법을 써 달라고 부탁합니다. 제가 여기서 이상한 것을 던졌습니다.
서비스 층에서 포착할 수 있다
    */
       if(index==0){
throw new RuntimeException("오류");
           }
    }
서비스 계층에서 코드 클래스 이름: AccuntService 구현 시작
public void shixian(String from,String to,int qian){
    Connection conn = null;
    try{
        conn=Jdbcutil.getConnection();//자기가 쓴 도구.
//사물을 시작하다
        conn.setAutoCommit(false);//autoCommit - 4true자동 제출 모드 사용하기4false자동 제출 모드를 사용하지 않음을 나타냅니다
        AccountDao  accd = new AccountDao();
        accd.zhuanzhang(from,qian);
        accd,zhuanzhuang(to,qian);
        conn.commit();
        conn.close();
    }catch(Exception e){
        try{
            conn.rollback();//이상을 포획하여 사물이 굴러간다.
        }catch(SqlException e){
            e.pran...();
    }
}    
}
//테스트 클래스 테스트
@Test
pubic void fun1(){
        AccuntService as = new AccuntService();
        as.shixian('zs','ls',100);
}

좋은 웹페이지 즐겨찾기