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

Hibernate中抽象化主鍵使用教程

系統(tǒng) 2283 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是一個抽象類,其下有兩個子類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(
" 包裝電視機 " );
????????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號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 两当县| 宁阳县| 苗栗市| 房产| 边坝县| 佛教| 麟游县| 郸城县| 蓬莱市| 凤台县| 西城区| 共和县| 荥经县| 彰武县| 马尔康县| 樟树市| 巴中市| 栾城县| 遂川县| 稻城县| 广平县| 孟津县| 贵州省| 兴仁县| 红原县| 鹿泉市| 武威市| 巴楚县| 民丰县| 高碑店市| 盐山县| 法库县| 元江| 江安县| 南川市| 常熟市| 奇台县| 东山县| 循化| 光泽县| 晴隆县|