Hibernate入门-基本映射Map

(1) 使用hibernate配置文件创建学生信息表(学号、姓名、性别、出生日期、班级)、班级信息表(班级编号、班级名称、开班日期)。
(2) 使用Map集合实现学生信息的增、删操作。

增加

package com.hibernate.entity;

import java.util.Date;
import java.util.Map;

/**
 * @ Author     : Rain
 * @ Classname  : StudentEntity
 * @ Date       : 2019/5/24 13:25
 * @ Description:
 */

public class StudentEntity {
    private int snumber;
    private String sname;
    private String sex;
    private Integer classid;
    private Date birth;
    private int id;
    private Map<String,Date> clazzEntity;

    public Map<String, Date> getClazzEntity() {
        return clazzEntity;
    }

    public void setClazzEntity(Map<String, Date> clazzEntity) {
        this.clazzEntity = clazzEntity;
    }

    public int getSnumber() {
        return snumber;
    }

    public void setSnumber(int snumber) {
        this.snumber = snumber;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getClassid() {
        return classid;
    }

    public void setClassid(Integer classid) {
        this.classid = classid;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }


    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

}

映射文件StudentEntity.hbm.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.hibernate.entity.StudentEntity" table="student" catalog="shiyan8">
        <id name="id">
            <generator class="identity"></generator>
        </id>
        <property name="sname"></property>
        <property name="sex"></property>
        <property name="birth"></property>
        <property name="snumber"></property>
        <property name="classid"></property>
        <map name="clazzEntity" table="class" catalog="shiyan8">
            <key column="classid" not-null="true"></key>
            <map-key type="string" column="cname"></map-key>
            <element column="cdata" type="date"></element>
        </map>
    </class>

</hibernate-mapping>
import com.hibernate.entity.StudentEntity;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * @ Author     : Rain
 * @ Classname  : Main.java
 * @ Date       : 2019/5/24 13:22
 * @ Description:
 */
public class Main {
    public static void main(String[] args) {

        Configuration configuration = new Configuration().configure();
        SessionFactory factory = configuration.buildSessionFactory();
        Session session = factory.openSession();
        Transaction transaction = session.beginTransaction();


        StudentEntity studentEntity = new StudentEntity();
        studentEntity.setClassid(1);
        studentEntity.setSex("男");
        studentEntity.setSname("李先生");
        studentEntity.setSnumber(2017772104);
        Map<String, Date> map = new HashMap<>();
        map.put("大学",new Date());
        studentEntity.setClazzEntity(map);
        session.save(studentEntity);

        transaction.commit();
        session.close();
        factory.close();

    }
}

运行结果

Hibernate: 
    
    create table shiyan8.class (
       classid integer not null,
        cname varchar(255) not null,
        cdata date,
        primary key (classid, cname)
    )
Hibernate: 
    
    create table shiyan8.student (
       id integer not null auto_increment,
        sname varchar(255),
        sex varchar(255),
        birth datetime,
        snumber integer,
        classid integer,
        primary key (id)
    )
Hibernate: 
    
    alter table shiyan8.class 
       add constraint FKjrros0tgdr6r73576ed1u3vw7 
       foreign key (classid) 
       references shiyan8.student (id)
Hibernate: 
    insert 
    into
        shiyan8.student
        (sname, sex, birth, snumber, classid) 
    values
        (?, ?, ?, ?, ?)
Hibernate: 
    insert 
    into
        shiyan8.class
        (classid, cname, cdata) 
    values
        (?, ?, ?)

在这里插入图片描述
在这里插入图片描述

删除

只需要更改一下main.java

import com.hibernate.entity.StudentEntity;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

/**
 * @ Author     : Rain
 * @ Classname  : Main.java
 * @ Date       : 2019/5/24 13:22
 * @ Description:
 */
public class Main {
    public static void main(String[] args) {

        Configuration configuration = new Configuration().configure();
        SessionFactory factory = configuration.buildSessionFactory();
        Session session = factory.openSession();
        Transaction transaction = session.beginTransaction();


//        StudentEntity studentEntity = new StudentEntity();
//        studentEntity.setClassid(1);
//        studentEntity.setSex("男");
//        studentEntity.setSname("李先生");
//        studentEntity.setSnumber(2017772104);
//        Map<String, Date> map = new HashMap<>();
//        map.put("大学",new Date());
//        studentEntity.setClazzEntity(map);
//        session.save(studentEntity);

        StudentEntity studentEntity = session.get(StudentEntity.class, 1);
        session.delete(studentEntity);

        transaction.commit();
        session.close();
        factory.close();

    }
}

结果

Hibernate: 
    select
        studentent0_.id as id1_1_0_,
        studentent0_.sname as sname2_1_0_,
        studentent0_.sex as sex3_1_0_,
        studentent0_.birth as birth4_1_0_,
        studentent0_.snumber as snumber5_1_0_,
        studentent0_.classid as classid6_1_0_ 
    from
        shiyan8.student studentent0_ 
    where
        studentent0_.id=?
Hibernate: 
    delete 
    from
        shiyan8.class 
    where
        classid=?
Hibernate: 
    delete 
    from
        shiyan8.student 
    where
        id=?
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值