hibenate 패키지 처리 에 대한 첫 업데이트 최적화 기록 (맹신)

4250 단어
전제조건
이 장 에 서 는 hibenate 를 사용 하 는 방법 에 대해 서 만 패 키 징 처 리 를 최적화 하 는 기록 과정 입 니 다.주제 절 차 는 주로 세 단계 로 나 뉘 는데 다음 과 같다.
  • 첫 번 째 코드 작성 - 수정 과 수정 방안 제시
  • 최적화 쓰기 코드 업데이트 - 주로 최적화 기능 추가
  • 마지막 으로 정리 - - 정리 와 참고 수요
  • 주의: 학습 과정 만 기록 합 니 다.더 좋 은 방법 이 있 으 면 메 시 지 를 남 길 수 있 습 니 다.
    첫 번 째 코드
    처음으로 hibenate 의 패 키 징 방법 을 쓰 는데 주로 3 단계 1 로 나 누 어 2. 서 비 스 를 시작 합 니 다. 3. 닫 습 니 다.
    다음은 부족 한 점:
  • 수정 과 삭제 에 있어 서 검색 과 같이 데이터베이스 시트 에 이 id 가 존재 하 는 지 판단 하 는 사용자 가 없어 서 오류 가 발생 하기 쉽다.(최적화)
  • getAllId 방법 을 제공 하지 않 았 습 니 다. 즉, 모든 사용 자 를 보 는 방법 입 니 다.username 의 키워드 에 따라 찾 는 것 도 깊이 배 울 수 있 습 니 다.
  • id 를 추가 하 는 방식 이 최적화 되 지 않 았 습 니 다. 우선 비 어 있 는 부분의 id 를 먼저 입력 할 수 있 습 니 다.(코드 를 쓰 지 않 아 도 됩 니 다. 방법 은 getAll 과 유사 합 니 다. 먼저 빈 id 를 찾 은 다음 id, username, password 를 추가 하고 마지막 으로 제출 할 수 있 습 니 다)
  • 참조 코드 는 다음 과 같 습 니 다.
    package com.test.dao;
    
    import com.test.model.User;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    
    /**
     * @author  Dian
     */
    public class Hibernate {
        /**
        *      
        */
        Configuration configuration=null;
        SessionFactory sessionFactory=null;
        Session session=null;
        Transaction transaction=null;
        /**
        *    hibernate  
        */
        public void init(){
            configuration=new Configuration().configure();          //       
            sessionFactory=configuration.buildSessionFactory();     //  session  
            session=sessionFactory.openSession();                   //  session  
            transaction=session.beginTransaction();                 //    
        }
        /**
         *    
         */
        public void add(String username,String password){
            User user=new User();
            user.setUsername(username);
            user.setPassword(password);
            session.save(user);
            transaction.commit();
            transaction=session.beginTransaction();
        }
        /**
         *  ID id   
         */
        public void update(long id,String username,String password){
            User user=(User) session.get(User.class,new Long(id));
            user.setUsername(username);
            user.setPassword(password);
            session.update(user);
            transaction.commit();
            transaction=session.beginTransaction();
        }
        /**
         *  ID id   
         */
        public void getById(long id){
            User user=(User) session.get(User.class,new Long(id));
            if(user==null){
                System.out.println("id "+id+"      ");
            } else{
                session.update(user);
                transaction.commit();
                System.out.println("ID:"+user.getId()+"    :"+user.getUsername());
                transaction=session.beginTransaction();
            }
        }
        /**
         *  ID id   
         */
        public void delete(long id){
            User user=(User) session.get(User.class,new Long(id));
            session.delete(user);
            transaction.commit();
            transaction=session.beginTransaction();
        }
        /**
         *  hibernate  
         */
        public void close(){
            transaction.commit();
            if(session!=null){
                session.close();
                session=null;
            }
            if(sessionFactory!=null){
                sessionFactory.close();
            }
            if(configuration!=null){
                configuration=null;
            }
        }
    }
    

    업데이트 최적화 후 코드 는 다음 과 같 습 니 다. 주의: 이번 작업 은 id 가 비어 있 는 사용 자 를 최적화 시 켰 습 니 다. 즉, 데이터 베 이 스 를 삭제 한 후에 id 가 비어 있 는 현상 을 초래 합 니 다.향상 이 필요 합 니 다. id 가 비어 있 는 곳 을 표시 하지 않 았 습 니 다.
    /**
     *  ID id id     
     */
    public void getAllId(long id){
        for(long i=1;i<=id;i++) {
            User user=(User) session.get(User.class,new Long(i));
            if(user!=null){
                session.update(user);
                transaction.commit();
                System.out.println("ID:"+user.getId()+"    :"+user.getUsername());
                transaction=session.beginTransaction();
            }
        }
    }
    

    요약:
  • 이번 조작 은 백 스테이지 와 의 조작 만 사용 하고 전단 과 의 연동 작업 에 적합 하지 않 습 니 다.즉, 첫 번 째 학습 참고 성 이 있 지만 전단 과 의 연동 성 을 향상 시 켜 야 한 다 는 것 이다.
  • 모든 사람 을 찾 는 방식 은 좋 지 않 습 니 다. 백 스테이지 에서 데이터 베 이 스 를 볼 수 있 는 모든 사람 이 최대 id 이지 만 스마트 하지 못 해서 수 동 으로 봐 야 합 니 다.
  • 비고 정보 가 너무 적 으 면 타인 에 게 불리 하 다.
  • 좋은 웹페이지 즐겨찾기