Hibernate 기본 용법

5916 단어
1. Hibernate 주해
// @Entity                 bean(      POJO      )
// @Id           bean        (        key)
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
// @Table(name="")
//                Table
//       Table  ,   @Table(name="")
// ""        Table  
public class User {

private int id;
private String username;
private String password;

@Id
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}
}

2. HQL 조회
HQL 조 회 를 실행 하 는 절차: 1. Hibernate Session 대상 2 획득, HQL 문장 작성 3, Session 을 호출 하 는 createQuery () 방법 으로 조회 대상 을 만 듭 니 다 4. HQL 문장 에 인자 가 포함 되 어 있 으 면 Query 의 setXxx 방법 으로 인자 할당 5, Query 대상 을 호출 하 는 list 등 방법 으로 조회 결 과 를 되 돌려 줍 니 다.
3. Hibernate 문법 해석
(1) from 자구 Hibernate 에서 가장 간단 한 검색 어의 형식 은 from tablename, 예 를 들 어 from user_info 별명 을 사용 해 야 할 때 가 있 습 니 다. from user_info as u (2) where 자구 where 자 구 는 돌아 오 는 인 스 턴 스 목록 의 범 위 를 줄 일 수 있 습 니 다.별명 이 지정 되 지 않 았 다 면 속성 명 을 사용 하여 속성 을 직접 참조 할 수 있 습 니 다. from user_info where name='admin' 별명 이 할당 되 었 다 면 완전한 속성 명 을 사용 해 야 합 니 다. from user_info as u where u.name='admin' (3) selection 자구 select 자 구 는 어떤 대상 과 속성 을 조회 결과 에 집중 시 킬 지 선택 합 니 다.select u.username from user_info as u
4. HQL 조회 인 스 턴 스
    // 1.     
    Query q = session.createQuery(" from User as u");

    // 2.     
    //Query q = session.createQuery(" from User as u where u.username = ?");
    //q.setParameter(0, "Jack");

    // 3.    SQL   
    //SQLQuery q = session.createSQLQuery("select * from user_info").addEntity(User.class);

    // 4.criteria   
/*  Criteria q = session.createCriteria(User.class);
    Criterion cc = Restrictions.between("id", 1, 3);
    Criterion cc1 = Restrictions.idEq(2);    
    q.add(cc);
    q.add(cc1);*/

5. Hibernate 한 쌍 이 많다.
  • 한 측의 실체 클래스 에 Set > 속성 을 추가 해 야 합 니 다
  • 그리고 한 측의 hbm. xml 파일 에 이렇게 쓰 십시오.
           
           
    
           
             
        
    
  • 6. Hibernate 는 1 대 1 이다.
  • 여러 측의 실체 류 에 한 측의 속성 을 추가 해 야 한다. 예 를 들 어 private Group group;
  • 그리고 한 측의 hbm. xml 프로필 에 이렇게 쓰 십시오.
  • 7. Hibernate 가 많 고 많다.
  • 쌍방 각자 의 실체 류 에 Set < > 속성 을 추가 해 야 합 니 다
  • 한 측 이 관련 관 계 를 유지 해 야 합 니 다. 한 측 이 관련 관 계 를 유지 해 야 합 니 다. inverse = "true" 는 관련 관 계 를 유지 하지 않 는 다 는 뜻 입 니 다. 다음 예 는 Course 가 관련 관 계 를 유지 하 는 것 입 니 다
  • .
    첫 번 째 실체의 프로필:
        
        
    
        
        
    
        
        
    
        
        
            
        
        
    
        
        
        
          
    
            
              
    
            
                    
          
        
        
    

    두 번 째 실체의 프로필:
        
        
    
        
        
    
         
    
        
        
            
        
        
    
        
        
             
               
         
        
        
    

    테스트 예:
         public class Test {
    
         public static void main(String[] args) {
    
        Configuration cfg = new Configuration().configure();
          @SuppressWarnings("deprecation")
        SessionFactory sf = cfg.buildSessionFactory();
        Session session = sf.openSession();
        session.beginTransaction();
    
        //       
        Set courses = new HashSet();
        Course c1 = new Course();
        c1.setCou_name("Chinese");
        Course c2 = new Course();
        c2.setCou_name("English");
        Course c3 = new Course();
        c3.setCou_name("Math");
        courses.add(c1);
        courses.add(c2);
        courses.add(c3);
    
        //       
        Set students = new HashSet();
        Student s1 = new Student();
        s1.setStu_name("Michael");
        Student s2 = new Student();
        s2.setStu_name("KangKang");
        Student s3 = new Student();
        s3.setStu_name("Jane");
        students.add(s1);
        students.add(s2);
        students.add(s3);
    
        //                
        c1.setStudents(students);
        c2.setStudents(students);
        c3.setStudents(students);
    
        //       
        session.save(c1);
        session.save(c2);
        session.save(c3);
    
        session.getTransaction().commit();
        session.close();
        sf.close();
        }
      }

    좋은 웹페이지 즐겨찾기