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

hibernate映射資料庫

發布時間: 2022-05-27 19:06:28

1. Hibernate根據映射文件生成資料庫

這個是可以的,主外鍵會自動建立。
但是一般都不這么做,hibernate配置文件生成的資料庫是很難把握的,除非這個項目很簡單或者你是一個專家級的人物。
我自己的看法是這個是得不嘗失,還不如先er圖,邏輯圖,物理圖,再轉成資料庫表來得實在。

2. 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>

3. 如何使用Hibernate來對資料庫表做映射

添加Hibernate的
org
建表
創建一個工程
通過eclipse來瀏覽資料庫
窗口---》視圖---》其它---》DBbrowser
在相應的DB瀏覽窗口裡新建一個資料庫連接
新建一個Hibernate配置文件
產生相應的影射文件和DAO類
寫一個測試類來測試對表的數據的增刪改查操作

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>
當然,這只是比較簡單的映射,還有什麼多對多,一對多等映射,並且映射時如何設置以達到需要的效果,這些你可以在網上搜索相關資料自行查看。

5. 如何理解hibernate中的關系映射

對象關系映射orm,就是為了解決面向對象與面向關系資料庫不匹配現象的技術。簡言之,orm是通過使用
描述對象和資料庫之間的映射的元數據,將Java程序中的對象自動持久到關系資料庫中。換言之,就是將數據從一種形式轉換到另一種形式。
我下面就舉幾個例子你就明白了:
1、一對一,比如一個表的欄位有100多個,而且其中有40個其他表可能有用,那麼你把這個表拆分成兩個表,並且兩個表中的數據都是一條記錄對應一條記錄,某一個表中存放另一個對應表的id用來維護兩個記錄之間的關系,因為本來這兩條記錄原來就是一條記錄,不知道這么說你能明白嗎?
2、一對多,如:部門表與用戶表,一個部門是不是有多個用戶,但是一個用戶有且只有一個部門,很清晰了吧
3、多對一,相當於吧部門表與用戶表打顛倒
4、多對多,其實就是一對多與多對一結合起來實現的關系,如用戶表與許可權表,一個用戶有多個許可權,而一個許可權同時對應多個用戶,兩個結合起來就是多對多
5、單向雙向只是hibernate的概念,比如你這兩個表A---表B,這樣通過表A來維護表B的數據,但是表B不能維護表A,這就是單項,雙向現在應該就好解釋了,通過兩個表都可以相互管理對方的數據。書面點,單項就是由父類管理關聯關系,子類無法管理,雙向父類子類都可管理。
hibernate提出的這些關系都有相應的配置,其實這些關系在資料庫中一直是存在的,只是hibernate對這些關系都通過不同的配置實現,單向和雙向也有相應的配置,這些功能當然也可以不通過hibernate配置實現,自己在代碼中維護這塊關系也可以,單雙向,資料庫中沒有類似相關概念,hibernate提出這塊功能,我們可以通過配置完成他們的限制功能。

6. hibernate 欄位類型和資料庫欄位 怎樣映射

這個 按照我的理解
首先自定義註解要有自己的編譯解釋方法的
在這個便已解釋方法中估計需要連接資料庫(當然最基本的jdbc什麼的)
當然連接資料庫什麼的涉及到配置文件
通過jdbc獲取到資料庫信息 把註解中的參數與資料庫中的信息關聯(簡單的就可以存成List<Map等方式)由於註解的參數一般是類名。你可以 用反射的方式或其他方式(比如位元組碼什麼的)來處理獲取類的屬性
然後 我感覺關聯完了 就沒啥然後了 感覺主要是在註解的編譯解釋方法中做寫東西 當然 提高效率也可以用資料庫連接池什麼的

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

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

8. 用hibernate做課程設計中,各個實體類和資料庫表的映射關系。

創建資料庫
選擇開始菜單中→程序→【Management
sql
Server
2008】→【SQL
Server
Management
Studio】命令,打開【SQL
Server
Management
Studio】窗口,並使用Windows或
SQL
Server身份驗證建立連接。
在【對象資源管理器】窗口中展開伺服器,然後選擇【資料庫】節點
右鍵單擊【資料庫】節點,從彈出來的快捷菜單中選擇【新建資料庫】命令。
執行上述操作後,會彈出【新建資料庫】對話框。在對話框、左側有3個選項,分別是【常規】、【選項】和【文件組】。完成這三個選項中的設置會後,就完成了資料庫的創建工作,
在【資料庫名稱】文本框中輸入要新建資料庫的名稱。例如,這里以「新建的資料庫」。
在【所有者】文本框中輸入新建資料庫的所有者,如sa。根據資料庫的使用情況,選擇啟用或者禁用【使用全文索引】復選框。
在【資料庫文件】列表中包括兩行,一行是資料庫文件,而另一行是日記文件。通過單擊下面的【添加】、【刪除】按鈕添加或刪除資料庫文件。
切換到【選項頁】、在這里可以設置資料庫的排序規則、恢復模式、兼容級別和其他屬性。
切換到【文件組】頁,在這里可以添加或刪除文件組。
完成以上操作後,單擊【確定】按鈕關閉【新建資料庫】對話框。至此「新建的數據」資料庫創建成功。新建的資料庫可以再【對象資源管理器】窗口看到。

9. hibernate怎樣映射mysql資料庫

在實體類中定義的id的類型是字元串,那麼在映射文件中該如何進行設置呢?
<id name="teacher_id">
<generator class="native"/>
</id>

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

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

舉例說明,表person:

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();
熱點內容
手柄怎麼調節安卓模式 發布:2025-01-11 21:44:36 瀏覽:947
國產伺服器搭建ftp 發布:2025-01-11 21:27:33 瀏覽:917
電腦系統哪個好用配置 發布:2025-01-11 21:26:04 瀏覽:139
交換機配置中web配置是什麼意思 發布:2025-01-11 21:12:07 瀏覽:409
物資資料庫 發布:2025-01-11 21:00:24 瀏覽:854
javastop 發布:2025-01-11 21:00:20 瀏覽:31
機械手臂用什麼編程 發布:2025-01-11 20:55:32 瀏覽:592
買釣箱要哪些配置就夠了 發布:2025-01-11 20:24:23 瀏覽:510
防腳本取色 發布:2025-01-11 20:15:17 瀏覽:638
為什麼莊周活動安卓沒開始 發布:2025-01-11 20:14:23 瀏覽:462