⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 person.java

📁 java相关的j2me,j2se的一些相关资料
💻 JAVA
字号:
package events;

import java.util.*;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;

public class Person {
    private Long id;  //标识符,都是由Hibernate自己赋值
    public  String name;
    public Set emailAddr = new HashSet(); //用于关联,只需关联字符,会对应创建一个表.
    public Set houses = new HashSet();    //用于关联,需要对应到House类
    
    public Person() {}
    public Long getId(){ return id;}              public void setId(Long id){this.id=id;}
    public String getName(){return name;}         public void setName(String name){this.name=name;}
    public Set getEmailAddr(){return emailAddr;} public void setEmailAddr(Set emailAddr){emailAddr=emailAddr;}
    public Set getHouses(){return houses;}        public void setHouses(Set houses){this.houses=houses;}
    
    public static void createAndStorePerson(String name){
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session =  sessionFactory.getCurrentSession();
        Person p = new Person();
        p.name = name;
        p.emailAddr.add("a17587052@126.com");  //向emailAddr关联字段添加数据(可以没有数据)
        session.beginTransaction();
        try{
            House oneHouse = (House)session.load(House.class,1L); //当不存在时,会抛出异常
            //House oneHouse = (House)session.get(House.class,1L,LockMode.READ);  //当不存在时,返回的是NULL
            p.houses.add(oneHouse);
            session.save(p);  //将模型中的数据存入表中,同时也会将相应数据存入到关联表中.
        }catch(ObjectNotFoundException e){}
        session.getTransaction().commit();
        sessionFactory.close();
    }
    
    public static void updatePerson(){
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session =  sessionFactory.getCurrentSession();
        Person onePerson = new Person();  onePerson.setId(1L);//不能使用load,否则无法更新数据,暂时只能声明成一个对象.
        onePerson.name = "我的家";
        session.beginTransaction();
        House oneHouse = (House)session.load(House.class,1L); //load出id为1的House对象.
        House twoHouse = (House)session.load(House.class,2L);
        onePerson.houses.remove(oneHouse); //从关联中先删除一个House
        onePerson.houses.add(twoHouse);    //在关联中添加一个新的House
        onePerson.emailAddr.clear();       //清除Set(也就是关联表)中的数据
        session.update(onePerson);         //更新,也将会对关联的表进行数据更新(注意:onePerson是new出来的对象,不是load出来的).
        session.getTransaction().commit();
        sessionFactory.close();
    }
    
    public static void deletePerson(){
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session =  sessionFactory.getCurrentSession();
        session.beginTransaction();
        Person onePerson = (Person)session.load(Person.class,1L);
        session.delete(onePerson); //这也将会删除关联表中的数据(person_email和person_house).
        session.getTransaction().commit();
        sessionFactory.close();
    }
    
    public static void main(String args[]){
        //createAndStorePerson("wangmiaohua");
        //updatePerson();
        //deletePerson();        
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -