當前位置:首頁 » 數據倉庫 » 類映射到資料庫工具
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

類映射到資料庫工具

發布時間: 2022-05-19 23:59:00

㈠ 如何:將修改函數映射到存儲過程(實體數據模型工具)

實體框架生成一個從 ObjectContext 派生的類,該類表示概念模型中的實體容器。(該派生類的名稱即是概念模型文件中的EntityContainer 的名稱。)該類公開 SaveChanges 方法,該方法觸發對基礎資料庫的更新。這些更新操作可以使用系統自動生成的 sql 語句(默認),也可以使用開發人員所指定的存儲過程。無論是否使用存儲過程來更新資料庫,用於創建、更新和刪除實體的應用程序代碼都是一樣的。注意:如果沒有將實體類型的插入、更新或刪除這三種操作全部映射到存儲過程,則在運行時執行的情況下未映射的操作將失敗且會引發 UpdateException。下面的過程假定您已在實體設計器中打開一個 .edmx 文件。將插入操作映射到存儲過程將插入操作映射到存儲過程在實體設計器圖面上或在「模型瀏覽器」窗口中,右擊要映射插入操作的實體類型,然後選擇「存儲過程映射」。此時將出現「映射詳細信息」窗口的「將實體映射到函數」視圖。單擊「<選擇插入函數>」。在下拉列表中選擇插入操作要映射到的存儲過程。窗口中填充的是實體屬性與存儲過程參數之間的默認映射。通過單擊相應屬性欄位並從下拉列表中選擇適當屬性,修改每個存儲過程參數對應的映射。注意:所有實體鍵都必須具有映射。如果存儲過程使用 INSERT 語句,則實體鍵通常映射到插入新行時創建的主鍵。下面幾個步驟介紹如何將存儲過程返回的數據映射到實體屬性。單擊「<添加結果綁定>」。該欄位即變為可編輯狀態。鍵入包含存儲過程返回的數據的參數名稱。單擊對應於參數名稱的屬性欄位。該欄位將變成一個下拉屬性列表。選擇返回的數據要映射到的屬性。注意:對於整數值輸出參數,「受影響的行數參數」復選框處於啟用狀態。如果在調用插入操作時針對某參數選中該復選框且返回的值為零,將引發 。對每個返回值和未映射屬性重復步驟 5 到 8。現在,所選實體類型的插入操作已映射到存儲過程。將更新操作映射到存儲過程將更新操作映射到存儲過程在實體設計器圖面上或在「模型瀏覽器」窗口中,右擊要映射插入操作的實體類型,然後選擇「存儲過程映射」。此時將出現「映射詳細信息」窗口的「將實體映射到函數」視圖。單擊「<選擇更新函數>」。在下拉列表中選擇更新操作要映射到的存儲過程。窗口中填充的是實體屬性與存儲過程參數之間的默認映射。通過單擊相應屬性欄位並從下拉列表中選擇適當屬性,修改每個存儲過程參數對應的映射。對於每個屬性,都可以選中在「使用原始值」[Use Original Value]列中的復選框。通過「使用原始值」[Use Original Value]選項,可以使用並發控制。如果選中某個屬性的「使用原始值」[Use Original Value]選項,則從資料庫讀取的該屬性的值將傳遞給指定的存儲過程參數。請注意,屬性的原始值和當前值都可以傳遞給不同的參數。注意:映射更新操作時,可以將存儲過程返回的數據映射到實體屬性。下面幾個步驟介紹如何將存儲過程返回的數據映射到實體屬性。單擊「<添加結果綁定>」。該欄位即變為可編輯狀態。鍵入包含存儲過程返回的數據的參數名稱。單擊對應於參數名稱的屬性欄位。在下拉列表中選擇返回的數據要映射到的屬性。注意:對於整數值輸出參數,「受影響的行數參數」復選框處於啟用狀態。如果在調用更新操作時針對某參數選中該復選框且返回的值為零,將引發 。可以選擇對每個返回值重復步驟 6 到 9。現在,所選實體類型的更新操作已映射到存儲過程。將刪除操作映射到存儲過程將刪除操作映射到存儲過程 在實體設計器圖面上或在「模型瀏覽器」窗口中,右擊要映射插入操作的實體類型,然後選擇「存儲過程映射」。此時將出現「映射詳細信息」窗口的「將實體映射到函數」視圖。單擊「<選擇刪除函數>」。在下拉列表中選擇刪除操作要映射到的存儲過程。窗口中填充的是實體屬性與存儲過程參數之間的默認映射。通過單擊相應屬性欄位並從下拉列表中選擇適當屬性,修改每個存儲過程參數對應的映射。注意:必須將關聯映射到存儲過程參數。在屬性下拉列表中,可以選擇關聯。注意:對於整數值輸出參數,「受影響的行數參數」復選框處於啟用狀態。另請參見任務演練:將一個實體映射到存儲過程(實體數據模型工具)

㈡ 枚舉類型映射到資料庫中以什麼存在

Enum為枚舉提供基類,其基礎類型可以是除 Char 外的任何整型。如果沒有顯式聲明基礎類型,則使用 Int32。編程語言通常提供語法來聲明由一組已命名的常數和它們的值組成的枚舉。 注意:枚舉類型的基類型是除 Char 外的任何整型

㈢ 如何將持久化類中集合屬性為組件映射到底層資料庫

Hibernate由pojo(持久化類),映射文件,配置文件。映射文件和配型類型是XML.
映射文件的作用主要是設定持久化類里的屬性和資料庫表中的列對應情況。
配置文件的作用主要是設定與那個資料庫相連接以及資料庫的password和loginname
看到這里就應該明白了吧!!

㈣ 怎樣不通過框架,將javabean映射到資料庫中

你如何用實體框架,象HIBERNATE這樣的ORM的時候,
首先考慮的肯定是BEAN實體類,也就是面向對象編程,面向對象操作資料庫了.
但是考慮到關聯關系的時候,情況就復雜些了.
比如一對多的情況:
拿博客系統來說吧
一篇文章BLOG,肯定有一個BLOGID,這個BLOGID肯定是唯一的
BLOG(BLOGID,USERID,TITLE,CONTENT,MSGS)(博客ID,用戶ID,標題,內容,評論)
現在有人對這個BLOG進行評論
評論MSG(MSGID,USERID,BLOG,MESSAGE)(評論ID,用戶ID,博客,評論內容)
這有兩個實體類,BLOG和MSG是一對多雙向關聯關系.
也就是說,根據這個BLOG可以知道這個BLOG下面所有的評論.
而某個MSG,肯定是對某一個BLOG進行評論的.
BLOG裡面保存著評論的信息MSGS,MSGS肯定是個集合.
其中MSG裡面保存著BLOG的信息.
實體類大概是上面那樣.
下面就要建立關聯關系的映射了.
一對多的關聯關系的映射,主要體現在多的這一端,而多的這一端在資料庫中體現就是外鍵.
也就是說,BLOG類中的MSGS是帖MSG來決定的,而資料庫中,BLOG表肯定是沒有MSG的任何欄位信息.
但是MSG中肯定有BLOG實體類BLOGID.

有時候多個表也可以設計成一個BEAN.看情況設計嘍.

建立樓主去研究下HIBERNATE裡面的關聯關系及其映射,
看實體類和資料庫中表的詳細情況.

㈤ 大家用什麼工具進行資料庫和實體類的轉換

可以根據規律來編寫一些程序來生成這些代碼,這個生成代碼的程序就是代碼生成器。
現階段代碼生成器有很多,其中我個人認為CodeSmith的功能最為強大。基本上你想要生成什麼樣的代碼都可以根據模版來生成,模版有自帶的,有別人編寫的,當然,你覺得不夠,也可以自己編寫模版。
至於如何根據資料庫生成實體類。
他的原理是資料庫中的欄位就是將來生成實體類中的私有變數和屬性。
所以我們可以編寫模版來讀取資料庫中的欄位,然後來根據資料庫中的欄位來生成你所需要的變數和屬性。
至於Codesmith的具體使用,比較簡單,可以到網上搜索一下,有很多的介紹。

㈥ 如何將含有繼承關系的類圖映射為關系資料庫

庫。
通常使用以下兩種方法來映射繼承關系:
1)將基類映射到一張表,每個子類映射到一張表。在基類對應的表中定義主鍵,而在
子類對應的表中定義外鍵。
2)將每個子類映射到一張表,沒有基類表。在每個子類的表中包括基類的所有屬性。
這種方法適用於子類的個數不多,基類屬性比較少的情況。

㈦ 怎樣將類圖直接轉換為資料庫的表

庫。 通常使用以下兩種方法來映射繼承關系: 1)將基類映射到一張表,每個子類映射到一張表。在基類對應的表中定義主鍵,而在 子類對應的表中定義外鍵。 2)將每個子類映射到一張表,沒有基類表。在每個子類的表中包括基類的所有屬性。 這種方法適用於子類的個數不多,基類屬性比較少的情況。

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

㈨ 請問我用Linq映射到資料庫表Book,為什麼我想添加數據時,沒有Add方法呢

linq to sql 類 可以通過修改配置來完成復數命名。
VS--》工具--》選項--》資料庫工具--》O/R 設計器--》啟用復數 是TRUE
如上方式就生成帶復數的實體了
---------------------
手動修改也可以!特定模板工具也可以. 估計大一些的項目組用自己的模板.
個人認為還是單數理由更多一些,所以微軟默認是單數!
-----
至於你說的add 方法 應該是為了項目一致而個人添加的方法.
一般Add 實現方法核心!

using (XXXDataContext db = new XXXDataContext())
{
db.實體集.InsertOnSubmit(實體);
db.SubmitChanges();
}
-----
另一種採用模型封裝
public class EShopDao<TEntity, TDataContext, TPK> : DBSupport, IGenericDao<TEntity, TDataContext, TPK>
where TDataContext : DataContext, new()
where TEntity : class
{

public void Insert(TEntity entity, bool submitFlag)
{
DataContext.GetTable<TEntity>().InsertOnSubmit(entity);
if (submitFlag)
{
DataContext.SubmitChanges();
}
}

}
---
到目前為止 我發現 linq to sql 怕是不如 直接研究EDM ,感覺很多看似為了一致而去畫蛇添足.