Hibernate表的映射Word文档格式.docx
- 文档编号:19934110
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:66
- 大小:29.24KB
Hibernate表的映射Word文档格式.docx
《Hibernate表的映射Word文档格式.docx》由会员分享,可在线阅读,更多相关《Hibernate表的映射Word文档格式.docx(66页珍藏版)》请在冰豆网上搜索。
createtableuser(
idintauto_incrementprimarykey,
usernamevarchar(15)notnull,
passwordvarchar(15)notnull
)engine=InnoDBdefaultcharset=GBK;
-----
createtablestudent(
namevarchar(12)notnull,
agevarchar(12)notnull
----------
createtablepassenger(
namevarchar(15),
emailvarchar(15),
telvarchar(15)
------------------
createtableemployee(
namevarchar(20),
iconblob
---主键为uuid形式
createtableautoid(
idintprimarykey,
namevarchar(23)
--复合主键
createtabledoublekey(
numvarchar(32),
primarykey(num,name)
--assigned形式主键
createtableapptable(
numnamevarchar(25)primarykey,
usermessagevarchar(20)
--blob类型图片的添加
createtableblobphoto(
smailevarchar(25),
imageblob
--onetomany
--room
createtableroom(
namevarchar(25),
addressvarchar(25)
--emp
createtableemp(
messagevarchar(20),
ridint,
keyFK_emp_room(rid),
constraintFK_emp_roomforeignkey(rid)referencesroom(id)
1.一对多(多对一)的关联
(1)多对一(单项关联)
packageutil;
publicclassRoom1{
privateIntegerid;
privateStringname;
privateStringaddress;
publicRoom1(){
}
publicRoom1(Stringname,Stringaddress){
this.name=name;
this.address=address;
publicIntegergetId(){
returnid;
publicvoidsetId(Integerid){
this.id=id;
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){
publicStringgetAddress(){
returnaddress;
publicvoidsetAddress(Stringaddress){
}
=============================================
<
?
xmlversion="
1.0"
encoding="
UTF-8"
>
!
DOCTYPEhibernate-mappingPUBLIC"
-//Hibernate/HibernateMappingDTD3.0//EN"
"
hibernate-mapping>
<
classname="
util.Room1"
table="
room"
<
idname="
id"
type="
integer"
<
columnname="
/>
generatorclass="
identity"
/id>
propertyname="
name"
string"
column="
address"
/class>
/hibernate-mapping>
=============================
publicclassEmp1{
privateStringmessage;
privateRoom1room1;
publicEmp1(){
publicEmp1(Stringname,Stringmessage,Room1room1){
this.message=message;
this.room1=room1;
publicStringgetMessage(){
returnmessage;
publicvoidsetMessage(Stringmessage){
publicRoom1getRoom1(){
returnroom1;
publicvoidsetRoom1(Room1room1){
======================================
DOCTYPEhibernate-mappingPUBLIC
util.Emp1"
emp"
/property>
message"
--注意单项关联只需要在一方进行配置关系-->
many-to-onename="
room1"
class="
fetch="
select"
cascade="
save-
update"
--注意一般外键允许为空-->
rid"
not-null="
true"
/many-to-one>
==================================
SignalManytoOne.java
packagedeal;
importorg.hibernate.Session;
importorg.hibernate.Transaction;
importutil.Emp1;
importutil.HibernateSessionFactory;
importutil.Room1;
publicclassSignalManytoOne{
privatestaticSessionsession;
privatestaticTransactionts;
publicstaticvoidmain(String[]args){
//应先插入父表
Room1r1=newRoom1("
as"
"
yyyyy"
);
Emp1em1=newEmp1("
ae1"
mm1"
r1);
Emp1em2=newEmp1("
ae2"
Emp1em3=newEmp1("
ae3"
Emp1em4=newEmp1("
ae4"
Emp1em5=newEmp1("
ae5"
saveEmp(em1);
saveEmp(em2);
saveEmp(em3);
saveEmp(em4);
saveEmp(em5);
publicstaticvoidsaveEmp(Emp1em1){
//TODOAuto-generatedmethodstub
session=HibernateSessionFactory.getSession();
ts=session.beginTransaction();
session.save(em1);
mit();
session.close();
(2).一对多(单项关联)
publicclassEmp2{
publicEmp2(){
publicEmp2(Stringname,Stringmessage){
-------------Emp2.hbm.xml
DOCTYPEhibernate-mappingPUBLIC
"
util.Emp2"
<
increment"
-------------------------------------------------------
importjava.util.HashSet;
importjava.util.Set;
publicclassRoom2{
privateSet<
Emp2>
emps=newHashSet<
();
publicRoom2(){
publicRoom2(Stringname,Stringaddress,Set<
emps){
this.emps=emps;
publicSet<
getEmps(){
returnemps;
publicvoidsetEmps(Set<
-------------------------Room2.hbm.xml
util.Room2"
setname="
emps"
lazy="
save-update"
key>
--外键可以为空,not-null="
最好不要限制,
Rid是emp表中,注意外键不唯一-->
/key>
one-to-manyclass="
/set>
-------------------------------
SignalOntToMany.java
importutil.Emp2;
importutil.Room2;
publicclassSignalOneToMany{
Room2r2=newRoom2();
r2.setName("
liu"
r2.setAddress("
beijing"
//对于是集合的插入方法
r2.getEmps().add(newEmp2("
kk1"
helo"
));
kk2"
kk3"
saveSignalOneToMany(r2);
publicstaticvoidsaveSignalOneToMany(Room2r2){
session.save(r2);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hibernate 映射
![提示](https://static.bdocx.com/images/bang_tan.gif)