知识大全 使用动态数据库访问对象

Posted 数据库

篇首语:人格成熟的重要标志:宽容、忍让、和善。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用动态数据库访问对象相关的知识,希望对你有一定的参考价值。

  前两天看到Warp framework的介绍 它基于Google Guice 是一个轻量级的web开发框架 它的Dynamic finder特性实在让人兴奋 代码非常简单 支持注入 大大简化了DAO层的开发 下面看看它的几个例子吧:

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

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

  还有更简单的吗

  在以往的开发过程中 为了层次清晰 易于测试 通常会将业务逻辑层和数据库访问层分开 看下面的例子

public class UserService  public UserService(IUserDAO userDAO)

  为什么要这样做呢好处是 userDAO能够依赖注入 使用IOC框架管理  对UserService进行单元测试 userDAO使用mock工具创建 这样避免了要单元测试还得生成真实数据的问题

  但是这样就产生了一个问题 大部分数据表都会有这么一个DAO对象存在 使得DAO层过于庞大 当然如果使用泛型的DAO或者抽象出基类就能使代码量减少 这样也不能解决根本问题 Warp提出的Dynamic finder 让人着实兴奋 自己根本就不需要逐个DAO去实现 只需要方法声明+annotation

  这么好的想法怎么能不采用呢 于是我花了几个小时试着用C#来实现 并且结合了Linq To Sql 如果直接使用SqlCommand来操作数据库填充实体 实现起来会更加简单 现在用Linq To Sql的人越来越多 就结合著来写的 结果还不错 代码看着的确简洁了很多 就是接口+Attribute 我使用的数据库是Northwind Customer是Linq To Sql生成出来的 EntityType是用来标识对那个实体类进行操作 Find用来标识根据主键查找对象的方法 Delete表示是删除一个实体 Create表示创建一个实体 Query表示自定义的查询字符串 现在只是最简单实现 以后可以提供更复杂的查询条件和写法

cha138/Article/program/net/201311/15442

相关参考

知识大全 使用OLE对象访问Oracle数据库

使用OLE对象访问Oracle数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  OLE即对象

知识大全 使用动态SQL克隆数据库对象

使用动态SQL克隆数据库对象  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首先给出一个警告下面

知识大全 VB中用ADO对象动态创建数据库和表

VB中用ADO对象动态创建数据库和表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  :问题的提出

知识大全 SQL Server数据对象结构的动态建立

SQLServer数据对象结构的动态建立  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Micr

知识大全 为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限

为什么在使用动态SQL语句时必须为低层数据库对象授予权限?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 简化对数据库的访问

  改进的OracleJpublisher可以将数据库实体映射到Java和Web服务    编写客户端和中间层的Java与JEE应用程序来表示数据库实体如用户定义的SQL对象类型和集合类型时如果你需要

知识大全 动态Proxy与Java ACL用户访问控制机制实现

动态Proxy与JavaACL用户访问控制机制实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 在浏览器上保存数据

  JavaScript能做的事并不局限于访问HTML表单的数据它还能让你创建自己的对象——也就是让你创建储存于客户端的数据你甚至还能建立包含其它对象的对象为什么需要这些功能?一个好的理由就是创建数组

知识大全 delphi编程实现动态创建别名

  对于BDE会话期对象来说BDE别名特别重要许多方法都需要传递一个数据库的别名作为参数TSession提供了管理BDE别名的功能  但是作者往往等到要发布程序时才发现你的程序由于找不到别名而无法运行

知识大全 对象“友好的”访问

  如果根本不指定访问指示符就象本章之前的所有例子那样这时会出现什么情况呢?默认的访问没有关键字但它通常称为友好(Friendly)访问这意味着当前包内的其他所有类都能访问友好的成员但对包外的所有类来