hibernate实验报告.docx
《hibernate实验报告.docx》由会员分享,可在线阅读,更多相关《hibernate实验报告.docx(21页珍藏版)》请在冰豆网上搜索。
hibernate实验报告
实验一Hibernate框架结构
实验目的:
1、掌握java的反射技术
2、掌握Hibernate体系架构
3、熟练使用Hibernate进行简单应用
实验内容
1、将publicclassStudent{
privateintid;
privateStringname;
privateintage;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
}
保存到数据库中。
Model包Student.java
privateIntegerid;
privateStringusername;
privateStringpassword;
privateIntegerage;
Student.hbm.xml
Util包HibernateUtil.java
packageutil;
importorg.hibernate.Session;
importorg.hibernate.SessionFactory;
importorg.hibernate.cfg.Configuration;
publicclassHibernateUtil
{
privatestaticSessionFactorysessionFactory;
static
{
try
{
//获取sessionFactory
sessionFactory=newConfiguration().configure().buildSessionFactory();}
catch(Exceptione)
{
System.err.println("构造sessionFactory出错:
"+e.getMessage());
}
}
publicstaticSessioncurrentSession()
{
//获取session
Sessionsession=sessionFactory.openSession();
returnsession;
}
//执行完后关闭session
publicstaticvoidcloseSession(Sessionsession)
{
if(null!
=session)
{
session.close();
}
}
}
Hibernate.cfg.xml
jdbc:
mysql:
//localhost:
3306/user
com.mysql.jdbc.Driver
root
root
org.hibernate.dialect.MySQLDialect
true
Test1.java
packagetest;
importmodel.Student;
importorg.hibernate.Session;
importorg.hibernate.Transaction;
importutil.HibernateUtil;
publicclassTest1
{
publicstaticvoidmain(String[]args)
{
Sessionsession=HibernateUtil.currentSession();
Transactiontx=session.beginTransaction();
Studentstu1=newStudent();
Try
{
stu1.setUsername("xiaoming");
stu1.setPassword("5732");
stu1.setAge(24);
session.save(stu1);
mit();
}catch(Exceptione)
{
tx.rollback();
}finally
{
session.close();
}
}
}
实验结果:
实验二对象映射
实验目的:
1掌握OID用法
2掌握一对一关联、一对多关联、多对多关联用法
3掌握集合对象的映射用法
4掌握继承的映射
实验内容
1、一个学生拥有一张借书卡,现在学生类和借书卡的定义如下,请将它们配置成一对一的双向关联。
publicclassStudent{
privateintid;
privateStringname;
privateintage;
privateStringsex;
privateStuIdCardbookCard;
……
}
publicclassbookCard{
privateintid;
privateStringnum;
privateStudentstudent;
……
}
配置:
2、一个顾客在网上商店购物时,可以有多份订单,而一份订单只属于一个顾客。
其类的定义如下:
publicclassCustomerimplementsSerializable{
privateintid;
privateStringname;
privateSetorders=newHashSet();
privateDoublemoney;}
publicclassOrderimplementsSerializable{
privateLongid;
privateStringorderNumber;
privateDoubleprice;
privateCustomercustomer;
……}
请配置它们的xml。
3、每个人都有当前住址,其定义如下:
publicclassperson{
privateintid;
privateStringname;
privateaddressaddress;}
publicclassaddress{
privateStringdetail;
privateStringstreet;
}
请把address作为person的表字段进行配置,该如何配置?
4、如下类,
publicclassStudent{
privateintid;
privateStringname;
privateSetteachers=newHashSet();}
ublicclassTeacher{
privateintid;
privateStringname;
privateSetstudents=newHashSet();}
请将其关系进行映射
一、Com.hibernate.pojo包student.java
privateIntegersid;
privateStringname;
privateStringpassword;
privateIntegerage;
privateSetstuidcards=newHashSet();
stuidcard.java
privateIntegerid;
privateStudentstudent;
privateStringnum;
Student.hbm.xml