自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用動(dòng)態(tài)數(shù)據(jù)庫訪問對象

運(yùn)維 數(shù)據(jù)庫運(yùn)維
數(shù)據(jù)庫的發(fā)展是永不止步,從最初的簡單的數(shù)據(jù)庫操作系統(tǒng)發(fā)展到現(xiàn)在的強(qiáng)大的數(shù)據(jù)庫,人們共同見證著數(shù)據(jù)庫的進(jìn)步,現(xiàn)今使用動(dòng)態(tài)數(shù)據(jù)庫訪問對象也得到了實(shí)現(xiàn),下面將為大家重點(diǎn)介紹有關(guān)使用動(dòng)態(tài)數(shù)據(jù)庫訪問對象的知識。

導(dǎo)讀:使用動(dòng)態(tài)數(shù)據(jù)庫訪問對象很大程度簡化了我們的操作,為了使我的介紹更形象化,也易于大家理解,下文中我將通過一些實(shí)例簡單的介紹下這種方法。

前兩天看到Warp framework的介紹,它基于Google Guice,是一個(gè)輕量級的web開發(fā)框架。它的Dynamic finder特性實(shí)在讓人興奮,代碼非常簡單,支持注入,大大簡化了DAO層的開發(fā)。下面看看它的幾個(gè)例子吧:

@Finder(query="from Person")
public List<Person> listAll() { return null; }

@Finder(query="from Person where firstName = :firstName")
Person find(@Named("firstName") String name);

還有更簡單的嗎

在以往的開發(fā)過程中,為了層次清晰,易于測試,通常會(huì)將業(yè)務(wù)邏輯層和數(shù)據(jù)庫訪問層分開??聪旅娴睦?/p>

public class UserService
{
public UserService(IUserDAO userDAO){}
}
為什么要這樣做呢?

好處是:

1. userDAO能夠依賴注入,使用IOC框架管理

2. 對UserService進(jìn)行單元測試,userDAO使用mock工具創(chuàng)建,這樣避免了要單元測試還得生成真實(shí)數(shù)據(jù)的問題。

但是這樣就產(chǎn)生了一個(gè)問題,大部分?jǐn)?shù)據(jù)表都會(huì)有這么一個(gè)DAO對象存在,使得DAO層過于龐大。當(dāng)然如果使用泛型的DAO或者抽象出基類就能使代碼量減少,這樣也不能解決根本問題。Warp提出的Dynamic finder,讓人著實(shí)興奮。自己根本就不需要逐個(gè)DAO去實(shí)現(xiàn),只需要方法聲明+annotation。

這么好的想法怎么能不采用呢。 于是我花了幾個(gè)小時(shí)試著用C#來實(shí)現(xiàn),并且結(jié)合了Linq To Sql。如果直接使用SqlCommand來操作數(shù)據(jù)庫填充實(shí)體,實(shí)現(xiàn)起來會(huì)更加簡單,現(xiàn)在用Linq To Sql的人越來越多,就結(jié)合著來寫的。結(jié)果還不錯(cuò),代碼看著的確簡潔了很多,就是接口+Attribute。我使用的數(shù)據(jù)庫是Northwind。Customer是Linq To Sql生成出來的,EntityType是用來標(biāo)識對那個(gè)實(shí)體類進(jìn)行操作,F(xiàn)ind用來標(biāo)識根據(jù)主鍵查找對象的方法,Delete表示是刪除一個(gè)實(shí)體,Create表示創(chuàng)建一個(gè)實(shí)體。Query表示自定義的查詢字符串,現(xiàn)在只是最簡單實(shí)現(xiàn),以后可以提供更復(fù)雜的查詢條件和寫法。

[DomainType(typeof(Customer))]
public interface ICustomDAO

從上文可以總結(jié)出使用動(dòng)態(tài)數(shù)據(jù)庫訪問對象好處還是很多的,希望大家通過本次的學(xué)習(xí),能夠掌握這種技巧,這樣就能為對大家以后的工作帶來種種益處,大家何樂而不為呢?

【編輯推薦】

  1. 混合數(shù)據(jù)庫時(shí)代何日降臨
  2. 確保數(shù)據(jù)庫安全的三大法寶
  3. 數(shù)據(jù)庫營銷是否變身超級營銷工具
  4. 國產(chǎn)數(shù)據(jù)庫的艱難長征路

 

責(zé)任編輯:迎迎 來源: 希賽網(wǎng)
相關(guān)推薦

2009-12-31 09:18:23

ADO.NET對象模型

2011-05-19 09:53:33

數(shù)據(jù)庫對象

2011-03-03 11:07:57

Spring數(shù)據(jù)庫訪問ORM

2010-05-20 14:52:42

MySQL數(shù)據(jù)庫

2009-07-02 09:35:02

hibernate訪問

2009-09-15 10:02:44

Linq to SQL

2013-11-26 09:47:47

ORM

2010-09-01 15:15:20

DB2動(dòng)態(tài)游標(biāo)

2021-09-03 15:41:00

鴻蒙HarmonyOS應(yīng)用

2011-05-13 13:38:49

數(shù)據(jù)庫對象

2009-11-11 11:33:08

VB.NET線程訪問數(shù)

2010-04-29 11:53:42

Oracle數(shù)據(jù)庫

2011-07-27 08:56:32

Oracle數(shù)據(jù)庫綁定變量軟解析

2018-07-13 09:20:30

SQLite數(shù)據(jù)庫存儲(chǔ)

2017-06-09 14:30:31

Openstack N對象模型數(shù)據(jù)庫

2010-12-27 16:18:59

本地元數(shù)據(jù)庫

2010-04-14 15:45:49

Oracle 數(shù)據(jù)庫

2011-07-05 16:08:10

2009-09-28 13:33:48

Hibernate訪問

2010-01-04 17:54:41

Silverligh訪
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號