数据库通用的问题

yiweidianzi 2010-10-10 07:34:05
设计数据库通用时,如果是写一个通用的回去数据库连接/开启事务。就只是写一个公共接口,
interface Idb
{
IDbConnection GetDbConnection;//数据库连接
IDbTransaction ConsoleTransaction(); //事务
}
但是如果是具体到每种业务,比如查询人员表中的一个人员名称。看别人的一般是每个业务写一个
接口,然后用多个类来实现接口 实现每种数据库操作类。

interface IUser
{
string GetUserName();
}
class SqlserverDb:IUser
{
public string GetUserName();
}
class MSSqlDb:IUser
{
public string GetUserName();
}
sql数据库时, ( IUser(new SqlserverDb) ).GetUserName();
这样每个业务多些个类,其实如果替换不同的数据库时,代码要带动的也很多。
怎么才能做到易修改,通用呢?

求指教!!
...全文
143 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wfqqwer5213 2010-10-10
  • 打赏
  • 举报
回复
记得spring的IOC吧,你可以用反射,在XML里设置每个接口的实现类
zhgroup 2010-10-10
  • 打赏
  • 举报
回复
易修改,通用,就把基础的数据增、删、改、查的SQL操作抽出来,以接口声明,由各个数据库类型的类去实现,
然后根据数据库类型的不同,返回统一的接口对象,如
interface IDataProvider(
void Insert(object o);
)

SqlDataProvider : IDataProvder(
void Insert(object o){}
)

OracleDataProvider : IDataProvider
(
void Insert(object o){}
)

这样,使用时,通过反射创建IDataProvider接口供业务类使用
wuyq11 2010-10-10
  • 打赏
  • 举报
回复
DAL与具体业务无关系
业务领域根据需要设计接口,调用DAL
jointan 2010-10-10
  • 打赏
  • 举报
回复
不好意思,没看贴子内容,回错了,我以为你是要实现例似IDbCommand之类的问题
jointan 2010-10-10
  • 打赏
  • 举报
回复
你回顾一下ODBC API

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧