博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java之hibernate之组件映射
阅读量:5038 次
发布时间:2019-06-12

本文共 3279 字,大约阅读时间需要 10 分钟。

1.在开发中,有的类信息比较复杂,而且某几个信息可以组成某一个部分,这个时候可以采用组件映射,组件映射是一张表映射到多个类。表结构

2.类的设计

Link.java

public class Link {    private String phone;    private String qq;    private String email;    private String address;    public Link() {    }        public Link(String phone, String qq, String email, String address) {        super();        this.phone = phone;        this.qq = qq;        this.email = email;        this.address = address;    }    public String getPhone() {        return phone;    }    public void setPhone(String phone) {        this.phone = phone;    }    public String getQq() {        return qq;    }    public void setQq(String qq) {        this.qq = qq;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }}

Person.java

public class Person {    private int id;    private String name;    private int age;    private Link link;    public Person() {    }        public Person(String name, int age, Link link) {        super();        this.name = name;        this.age = age;        this.link = link;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public Link getLink() {        return link;    }    public void setLink(Link link) {        this.link = link;    }    }

3.映射文件信息

4.测试

public class HibernateTest {    /**     * 生成数据库表的工具方法     * */    @Test    public void testCreateDB(){        Configuration cfg = new Configuration().configure();        SchemaExport se = new SchemaExport(cfg);        //第一个参数  是否打印sql脚本        //第二个参数 是否将脚本导出到数据库中执行        se.create(true, true);    }    /**     * 初始化表数据     */    @Test    public void testInit(){        Session session = null;        Transaction tx = null;        try {            session = HibernateUtil.getSession();            tx = session.beginTransaction();                        Link l1 = new Link("1324115534","345324","mike@qq.com","多伦多");            Link l2 = new Link("1345432367","675754","lily@qq.com","纽约");            Person p1 = new Person("mike",23,l1);            Person p2 = new Person("lily",40,l2);            session.save(p1);            session.save(p2);            tx.commit();                    } catch (Exception e) {            if(tx!=null)                tx.rollback();        }finally {            HibernateUtil.close();        }    }    /**     */    @Test    public void testGetData(){        Session session = HibernateUtil.getSession();        Person p1 = (Person)session.get(Person.class, 1);        System.out.println(p1);        HibernateUtil.close();    }}

 

转载于:https://www.cnblogs.com/Vincent-yuan/p/11204769.html

你可能感兴趣的文章
Linux下MySQL数据库安装与配置
查看>>
Extjs String转Json
查看>>
oracle入门(4)——少而常用的命令
查看>>
打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机...
查看>>
Java 虚拟机部分面试题
查看>>
二叉树的遍历问题总结
查看>>
Spring之面向切面编程AOP
查看>>
MATLAB GUI程序设计中使文本框接收多行输入的方法
查看>>
全文检索-Elasticsearch (四) elasticsearch.net 客户端
查看>>
Oracle DBMS_SESSION
查看>>
sublime复制当前行到下一行
查看>>
WPF 3D变换应用
查看>>
ArchLinux安装开源VMware Tools
查看>>
DB2 锁升级示例1
查看>>
16.RDD实战
查看>>
MainFrame知识小结(20120210)—dfsort/syncsort中的数据类型
查看>>
D - Flip tile
查看>>
Java连接RabbitMQ之创建连接
查看>>
开户vim编程之--cscope支持
查看>>
python数据类型图解
查看>>