亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Hibernate中抽象化主鍵使用教程

系統(tǒng) 2265 0

首先,在數(shù)據(jù)庫中建立表:
CREATE TABLE `container` (
? `containerId` varchar(50) NOT NULL,
? `container_type` varchar(50) NOT NULL,
? `size` double default NULL,
? `name` varchar(50) default NULL,
? `description` varchar(50) default NULL,
? `height` double default NULL,
? `length` double default NULL,
? `width` double default NULL,
? `diameter` double default NULL,
? PRIMARY KEY? (`containerId`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

?

其中Container是一個(gè)抽象類,其下有兩個(gè)子類Box和Bottle

?

package ?abstracttest;

public ? abstract ? class ?Container? ... {
??
private ?String?containerId;
??
private ? double ?size;
??
private ?String?name;
??
private ?String?description;
public ?String?getContainerId()? ... {
????
return ?containerId;
}

public ? void ?setContainerId(String?containerId)? ... {
????
this .containerId? = ?containerId;
}

public ?String?getDescription()? ... {
????
return ?description;
}

public ? void ?setDescription(String?description)? ... {
????
this .description? = ?description;
}

public ?String?getName()? ... {
????
return ?name;
}

public ? void ?setName(String?name)? ... {
????
this .name? = ?name;
}

public ? double ?getSize()? ... {
????
return ?size;
}

public ? void ?setSize( double ?size)? ... {
????
this .size? = ?size;
}

}

?

package ?abstracttest;

public ? class ?Bottle? extends ?Container? ... {
??
private ? double ?diameter;
??
private ? double ?height;
public ? double ?getDiameter()? ... {
????
return ?diameter;
}

public ? void ?setDiameter( double ?diameter)? ... {
????
this .diameter? = ?diameter;
}

public ? double ?getHeight()? ... {
????
return ?height;
}

public ? void ?setHeight( double ?height)? ... {
????
this .height? = ?height;
}

}

?

package ?abstracttest;

public ? class ?Box? extends ?Container? ... {
????
private ? double ?height;
????
private ? double ?length;
????
private ? double ?width;
????
public ? double ?getHeight()? ... {
????????
return ?height;
????}

????
public ? void ?setHeight( double ?height)? ... {
????????
this .height? = ?height;
????}

????
public ? double ?getLength()? ... {
????????
return ?length;
????}

????
public ? void ?setLength( double ?length)? ... {
????????
this .length? = ?length;
????}

????
public ? double ?getWidth()? ... {
????????
return ?width;
????}

????
public ? void ?setWidth( double ?width)? ... {
????????
this .width? = ?width;
????}

}

?

在HBM文件中,定義,抽象類的配置

?

<? xml?version="1.0"?encoding="utf-8" ?>
<! DOCTYPE?hibernate-mapping?PUBLIC?"-//Hibernate/Hibernate?Mapping?DTD?3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- ?
????Mapping?file?autogenerated?by?MyEclipse?-?Hibernate?Tools
-->
< hibernate-mapping? package ="abstracttest" >
????
< class? name ="Container" ?abstract ="true" ?table ="container" >
???????
< id? name ="containerId" >
?????????
< generator? class ="uuid.hex" ></ generator >
???????
</ id >
???????
< discriminator? column ="container_type" ></ discriminator >
???????
< property? name ="size" ?column ="size" ></ property >
???????
< property? name ="name" ?column ="name" ></ property >
???????
< property? name ="description" ?column ="description" ></ property >
???????
< subclass? name ="Box" ?discriminator-value ="BOX" >
?????????
< property? name ="height" ?column ="height" ></ property >
?????????
< property? name ="width" ?column ="width" ></ property >
?????????
< property? name ="length" ?column ="length" ></ property >
???????
</ subclass >
???????
< subclass? name ="Bottle" ?discriminator-value ="BOTTLE" >
?????????
< property? name ="diameter" ?column ="diameter" ></ property >
?????????
< property? name ="height" ?column ="height" ></ property >
???????
</ subclass >
????
</ class >
</ hibernate-mapping >

?

最后是測試代碼

package ?abstracttest;

import ?org.hibernate.Session;
import ?org.hibernate.SessionFactory;
import ?org.hibernate.Transaction;
import ?org.hibernate.cfg.Configuration;


public ? class ?Test? ... {

????
/**?*/ /**
?????*?
@param ?args
?????
*/

????
public ? static ? void ?main(String[]?args)? ... {
????????Configuration?cfg
= new ?Configuration();
????????cfg.configure();
????????SessionFactory?sf
= cfg.buildSessionFactory();
????????Session?session
= sf.openSession();
????????Transaction?t
= session.beginTransaction();
????????Box?box1
= new ?Box();
????????box1.setName(
" 木箱子 " );
????????box1.setHeight(
50 );
????????box1.setLength(
50 );
????????box1.setWidth(
50 );
????????box1.setDescription(
" 包裝電視機(jī) " );
????????box1.setSize(
12500 );
????????
????????Bottle?bottle1
= new ?Bottle();
????????bottle1.setName(
" 玻璃瓶子 " );
????????bottle1.setDescription(
" 喝牛奶用 " );
????????bottle1.setSize(
139.12 );
????????bottle1.setDiameter(
6 );
????????bottle1.setHeight(
12 );
????????
????????sessio

Hibernate中抽象化主鍵使用教程


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日日噜噜噜夜夜爽爽狠狠 | 亚洲综合伊人色一区 | 亚洲高清免费视频 | 免费观看黄色小视频 | 久久99国产精品久久99 | 国产未成女年一区二区 | 永久免费观看黄网站 | 曰本一区二区 | 免费中日高清无专码有限公司 | 另类图片色 | 国产色在线 | 亚洲综合色视频在线观看 | 日韩欧美网 | 久久亚洲福利 | 农村妇女又色黄一级毛片 | 99热免费在线 | 热99精品只有里视频最新 | 欧美爱爱小视频 | 亚洲视频成人 | 国内精品久久久久久网站 | 亚洲国产精品乱码在线观看97 | 免费播放欧美毛片 | 奇米影视奇米色 | 欧美白人猛性xxxxx交69 | 精品国产国产综合精品 | 欧美一级一极性活片免费观看 | 亚洲欧美精品综合中文字幕 | 日本一本一道久久香蕉免费 | 久久国产国内精品对话对白 | 久久99热在线观看7 久久99热这里只有精品 | 涩综合 | 欧美日比| 97精品福利视频在线 | 国产成人综合久久精品亚洲 | 国产一区二 | 国产美女视频免费 | 欧美精品在线一区 | 国产高清在线观看麻豆 | 日韩一区二区天海翼 | 国产成人精品一区二区不卡 | 国产精品美女www爽爽爽视频 |