日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Hibernate中抽象化主鍵使用教程

系統(tǒng) 2085 0

首先,在數(shù)據(jù)庫(kù)中建立表:
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 >

?

最后是測(cè)試代碼

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

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 格尔木市| 沈阳市| 新化县| 馆陶县| 宝兴县| 垣曲县| 中牟县| 瑞安市| 桦南县| 容城县| 楚雄市| 汕尾市| 宜黄县| 巴林右旗| 库伦旗| 泸水县| 凉山| 炉霍县| 嘉鱼县| 鸡泽县| 文登市| 灵丘县| 大英县| 永兴县| 华亭县| 瑞昌市| 景宁| 莲花县| 兴山县| 黄龙县| 班玛县| 嘉荫县| 来安县| 建瓯市| 商南县| 清涧县| 岳阳县| 贵港市| 蒙阴县| 锡林郭勒盟| 寿阳县|