(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=?