當前位置:首頁 » 操作系統 » hibernate資料庫映射

hibernate資料庫映射

發布時間: 2023-04-29 15:29:29

1. hibernate映射資料庫表如何使表中欄位默認值生效

解決方法:
在hibernate映射文件對資料庫表的描述中,在當前欄位處加入insert="false"語句,這時hibernate在進行插入操作時,只會為那些有實值的欄位賦值,而值為空白的欄位就會使用資料庫表中定義的默認值了。

舉例說明,表person:

sql">CREATETABLEaddress(
i_idint(11)NOTNULLauto_increment,
c_addressvarchar(100)NOTNULLdefault'中國',
PRIMARYKEY(id)
)
address.hbm.xml:
<hibernate-mappingpackage="cn.com.lough.model">
<class
name="address"
table="address"
lazy="false"
>
<metaattribute="sync-DAO">true</meta>
<cacheusage="read-write"/>
<id
name="IId"
type="integer"
column="i_id"
>
<generatorclass="native"/>
</id>
<property
name="C_Address"
column="c_address"
type="string"
not-null="false"
length="128"
/>
</hibernate-mapping>
運行程序
publicregAddress(Stringa){//傳入的值a未在網頁文本框里獲得任何值(家庭地址)
Addressp=newAddress();
p.setAddress(a);
HiFactory.save(p);
}
此時hibernate生成的sql語句為insertintoperson(c_address)values('');
資料庫表結果為
i_idc_address
1null
修改address.hbm.xml為:
<hibernate-mappingpackage="cn.com.lough.model">
<class
name="Address"
table="address"
lazy="false"
>
<metaattribute="sync-DAO">true</meta>
<cacheusage="read-write"/>
<id
name="IId"
type="integer"
column="i_id"
>
<generatorclass="native"/>
</id>
<property
name="C_Address"
column="c_address"
type="string"
not-null="false"
length="128"
insert="false"
/>
</hibernate-mapping>
再次運行程序,此時hibernate生成的sql語句為insertintoaddress()values();

2. 資料庫表在兩個資料庫中,怎麼進行hibernate映射呢

前提是你數據源配置正確.
映射文件中:
注意看class屬性:
name是你的model類(包名+類名)
table是你資料庫里的表名
catalog是你的資料庫名
<hibernate-mapping>
<class name="com.cwx.model.Xsb" table="XSB" schema="dbo" catalog="XSCJ">
......
</class>
</hibernate-mapping>

3. Hibernate的類型怎樣映射資料庫中欄位的自定義類型

在hibernate的xml映射文件中可以配置實體屬性與資料庫欄位間的對應關系。如下:
<property name="salary" precision="2" scale="10" length="255"
column="salary" type="string" update="true" insert="true"
lazy="false" unique="false" not-null="false">
</property>

4. 在HIbernate中,實體類如何映射到資料庫

是通過映射文件來映射的。舉個簡單的例子,例如我有個Teacher實體類(某教學管理系統老師用戶):
private Integer id; //編號
private String name; //姓名
private String password; //密碼
private Date createDate; //創建日期
同時,我創建了數據表TEACHER:
create table teacher( id number(9) primary key, --編號 name varchar2(20), --姓名 password varchar2(20), --密碼 create_date date --創建日期 );
這時,怎麼關聯它們呢?通過載入hibernate框架,我們就可以使用映射文件來關聯實體類和資料庫了
文件名:Teacher.hbm.xml(必須與實體類名字一致)
內容:
<?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 Persistence Tools-->
<hibernate-mapping>
<class name="com.yss.Teacher" table="TEACHER" schema="WZM">
<id name="id" type="java.lang.Integer">
<column name="ID" precision="9" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" length="20" />
</property>
<property name="password" type="java.lang.String">
<column name="PASSWORD" length="20" />
</property>
<property name="createDate" type="java.util.Date">
<column name="CREATE_DATE" length="7" />
</property>
</class>
</hibernate-mapping>
當然,這只是比較簡單的映射,還有什麼多對多,一對多等映射,並且映射時如何設置以達到需要的效果,這些你可以在網上搜索相關資料自行查看。

熱點內容
扁桃玩的伺服器地址 發布:2025-05-17 12:18:25 瀏覽:508
u盤上傳歌 發布:2025-05-17 12:14:51 瀏覽:613
入門c語言設計 發布:2025-05-17 12:08:31 瀏覽:41
c3演算法 發布:2025-05-17 12:04:19 瀏覽:365
phprecv 發布:2025-05-17 11:55:00 瀏覽:611
福建時鍾監控網關伺服器雲主機 發布:2025-05-17 11:54:28 瀏覽:249
c資料庫壓縮 發布:2025-05-17 11:39:22 瀏覽:963
安卓手機如何連接音響功放 發布:2025-05-17 11:37:48 瀏覽:962
破解exe加密視頻 發布:2025-05-17 11:23:41 瀏覽:979
我的世界伺服器圈太大了怎麼辦 發布:2025-05-17 11:15:21 瀏覽:617