博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate ORM框架——第二章:Hibernate关联映射
阅读量:6413 次
发布时间:2019-06-23

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

 

1、hibernate.cfg.xml除了映射的路径变,其余不变;

2、类

package entity;public class Address {    private String shengfen ;    private String city ;    public String getShengfen() {        return shengfen;    }    public void setShengfen(String shengfen) {        this.shengfen = shengfen;    }    public String getCity() {        return city;    }    public void setCity(String city) {        this.city = city;    }    }

 

package entity;import java.util.Date;public class Person {    private int pno ;    private String pname ;    private Date birthDay ;    private Boolean gendar ;    private java.math.BigDecimal salary ;        private Address addr ;    public int getPno() {        return pno;    }    public void setPno(int pno) {        this.pno = pno;    }    public String getPname() {        return pname;    }    public void setPname(String pname) {        this.pname = pname;    }    public Date getBirthDay() {        return birthDay;    }    public void setBirthDay(Date birthDay) {        this.birthDay = birthDay;    }    public Boolean getGendar() {        return gendar;    }    public void setGendar(Boolean gendar) {        this.gendar = gendar;    }    public java.math.BigDecimal getSalary() {        return salary;    }    public void setSalary(java.math.BigDecimal salary) {        this.salary = salary;    }    public Address getAddr() {        return addr;    }    public void setAddr(Address addr) {        this.addr = addr;    } }

3、类的映射文件:本章重点

     
                         
(1)pname--varchar2类型--可以设置以下属性:
type="string" length="20"(设置长度) not-null="true"(是否为空) (2)salary--java.math.BigDecimal类型(可以显示精度)--可以设置以下属性:
type="big_decimal" precision="10"(保留总位数,包括小数点) scale="3"(保留小数点)
具体的type=""的值,请参照“hibernate对应的sql类型和java类型图"(文章最前面的图),其中hibernate映射类型是作为type属性的值的。

4、util包中的HibernateUtil和以前一样不变

5、test测试包:Main.java

package test;import java.math.BigDecimal;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import entity.Address;import entity.Person;import util.HibernateUtil;public class Main {    public static void main(String[] args) {                SessionFactory sf = HibernateUtil.getSessionFactory();        Session s = sf.openSession();        Transaction tx = s.beginTransaction();                Person ps = new Person();        ps.setPname("zss");        /*ps.setBirthDay(new Date());*/     //默认当前时间        //yyyy-MM-dd HH:mm:ss   //格式化时间        SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");                try {            //提示输入时间            Scanner sc = new Scanner(System.in);            System.out.println("请输入日期(格式为yyyy-MM-dd):");            String day = sc.next();                        Date date = formatDate.parse(day);            //Date date = formatDate.parse("1998-06-30");//输入时间:写死            ps.setBirthDay(date);                        sc.close();        } catch (ParseException e) {            e.printStackTrace();        }            ps.setGendar(true);              BigDecimal a = new BigDecimal(1200);        ps.setSalary(a);                Address addr = new Address();        addr.setShengfen("广东");        addr.setCity("珠海");        ps.setAddr(addr);                s.save(ps);        tx.commit();        s.close();    }}

 

 /*以上个人整理笔记,如果有误或者有不懂的地方,欢迎评论与指出*/

 

转载于:https://www.cnblogs.com/Sunny-lby/p/7357715.html

你可能感兴趣的文章
java牛客网四则运算_数据库刷题—牛客网(51-61)
查看>>
Java get set6_JDK6的新特性(转)
查看>>
java发送邮件 不登陆_Java邮件到Exchange Server“不支持登录方法”
查看>>
编程学习初体验(5. 如何自学编程)(2)
查看>>
思科ISR G1与ISR G1C的区别
查看>>
利用perl提取web配置文件中的域名对应的路径
查看>>
Centos5上安装JRE和LUMAQQ
查看>>
关于监控工具的主动发起性能测试
查看>>
我的友情链接
查看>>
OpenSSL学习(十六):基础-指令rand
查看>>
KeyMob致力于打造国内领先的移动广告平台
查看>>
路由选路原则
查看>>
jvm 学习(一)
查看>>
JavaScript简介
查看>>
SQL Server附加数据库拒绝访问解决方法汇总
查看>>
SM2算法原理及实现
查看>>
RHCA教材翻译计划
查看>>
js-小括号在不同场合下的作用
查看>>
我的友情链接
查看>>
kvm中虚拟机的硬盘扩容
查看>>