标签: dao

适用于C#的简单CRUD生成器

我正在为C#寻找一个简单的CRUD(或DAL)生成器.我不想要任何重量级的东西,因为我在SQL Server 2008数据库中只有几个表.

有什么建议?我知道.netTiers,但这对我需要的东西来说太过分了.

谢谢!

更新:我尝试了LINQ to SQL,它不能很好地满足我的需求.

c# database code-generation dao crud

13
推荐指数
3
解决办法
4万
查看次数

在Dao类中使用静态方法或非静态方法?

嗨我为一些数据库操作生成Dao类

以这种方式使Dao类的方法静态或无静态更好?

使用下面的示例dao类,moref多个客户端同时使用AddSampleItem方法?这可能会导致什么结果?

public class SampleDao
{
  static DataAcessor dataAcessor 

  public static void AddSampleItem(object[] params)
  {
      dataAcessor =new DataAcessor();
       //generate query here
       string query="..."
      dataAcessor.ExecuteQery(query);
      dataAcessor.Close(); 
   }

  public static void UpdateSampleItem(object[] params)
  {
      dataAcessor =new DataAcessor();
       //generate query here
       string query="..."
      dataAcessor.ExecuteQery(query);
      dataAcessor.Close(); 
   }
}
Run Code Online (Sandbox Code Playgroud)

static dao class

13
推荐指数
2
解决办法
1万
查看次数

高流量网站的推荐结构

我正在重写一个大网站,需要非常扎实的架构,这里是我的几个问题,请原谅我混合苹果和橙子,也许还有奇异果:)我做了很多研究,最后完全糊涂了.

主要问题:您将采用哪种方法来构建一个预计会以各种方式增长的大型网站?

  1. 单个入口点,数据库中的页面数据,通过将GET变量与数据库条目相关联来拉出(?pageid = whatever)

  2. 单个入口点,页面数据在单独的文件中,包含基于GET变量(?pageid =包含whatever.php的任何内容)

  3. MVC(好吧,伙计们,我都是为了这个,但是除了检查所有的教程和框架之外无法掌握这个概念,他们是否将"视图"存储在数据库中?从示例中可以看出,如果你有1000页相同的话它们可以由1个模型塑造,但我仍然需要1000个"视图"文件?)

  4. PAC - 这对我来说听起来更合乎逻辑,但没有找到太多资源 - 如果这是一个好方法,你能推荐任何书籍或链接吗?

  5. DAL/DAO/DDD - 在发布问题之前,我通过努力阅读堆栈溢出来了解这些术语.不确定它是否属于此列表

  6. 坐下来创建我自己的架构(如果没有人在这里启发我可能会这样做:)

  7. 没有提到的东西......

谢谢.

php model-view-controller dao data-access-layer pac

13
推荐指数
1
解决办法
5177
查看次数

DDD:何处放置持久性逻辑,以及何时使用ORM映射

我们正在仔细研究我们的(Java)Web应用程序模式.在过去,我们遭受了过度贫血的对象模型以及控制器,服务和DAO之间的过度程序分离,其中简单的价值对象(基本上只是数据包)在它们之间传播.我们使用声明性(XML)管理的ORM(Hibernate)来实现持久性.所有实体管理都在DAO中进行.

在尝试转向更丰富的域模型时,我们发现自己在如何最好地设计持久层方面遇到了困难.我花了很多时间阅读和思考领域驱动设计模式.但是,我想要一些建议.

首先,我更自信的事情:

  • 我们前面有"瘦"控制器,只处理HTTP和HTML - 处理表单,验证,UI逻辑.

  • 我们将有一层无状态业务逻辑服务,它们实现常见的算法或逻辑,不知道UI,但非常了解(并委托)域模型.

  • 我们将拥有一个更丰富的域模型,其中包含该域模型中对象固有的状态,关系和逻辑.

问题出在持久性上.以前,我们的服务将通过Spring注入(通过Spring),并使用find()和save()等DAO方法来执行持久性.但是,更丰富的域模型似乎暗示对象应该知道如何保存和删除自己,也许更高级别的服务应该知道如何定位(查询)域对象.

在这里,出现了一些问题和不确定性:

  • 我们是否要将DAO注入域对象,以便它们可以在save()方法中执行"this.someDao.save(this)"?这有点尴尬,因为域对象不是单例,所以我们需要工厂或DAO的后期构建设置.从数据库加载实体时,这会变得混乱.我知道Spring AOP可以用于此,但我无法使用它(使用Play!框架,另一行实验),它看起来非常混乱和神奇.

  • 我们是否将DAO(存储库?)完全分开,与无状态业务逻辑服务相提并论?这可能有一定道理,但这意味着如果"保存"或"删除"是域对象的固有操作,则域对象无法表达这些操作.

  • 我们是否完全免除了DAO并使用JPA让实体自行管理.

下面是下一个细微之处:使用JPA映射实体非常方便.表演!框架为我们提供了一个很好的实体基类,具有save()和delete()等操作.但是,这意味着我们的域模型实体与数据库结构紧密相关,并且我们使用大量持久性逻辑传递对象,可能一直到视图层.如果不出意外,这将使域模型在其他环境中的可重用性降低.

如果我们想避免这种情况,那么我们需要某种映射DAO - 使用简单的JDBC(或至少是Spring的JdbcTemplate),或使用数据库实体和"业务"实体的并行层次结构,DAO永远复制来自一个层次结构到另一个

这里适当的设计选择是什么?

马丁

oop dao design-patterns domain-driven-design

13
推荐指数
1
解决办法
4838
查看次数

DAO设计模式

因此,假设我们想要使用DAO对象持久化几个实体.所以我们实现了正确的界面,所以我们最终得到了

class JdbcUserDao implements UserDao{
//...
}

class JdbcAddressDao implements AddressDao{
//...
}
Run Code Online (Sandbox Code Playgroud)

因此,如果我希望能够将持久性实现从JDBC切换到JPA(例如),反之亦然,我需要拥有JPAUserDao和JPAAddressDao ......意思是如果我有20个实体,并决定切换实现(使用DI容器),我必须在代码中用JPA切换每个Jdbc实现.

现在可能是我误解了DAO是如何工作的,但是......如果我刚才有

class JdbcDaoImpl implements UserDao,AddressDao{
//...
}
Run Code Online (Sandbox Code Playgroud)

然后,我将所有JDBC实现都放在一个类中,切换实现将是一件小事.此外,DaoImpl计数等于Dao接口的数量.为什么不通过实现(jdbc,JTA,JPA ......)对它们进行分组并将所有内容都放在一个类下?

提前致谢.

java dao design-patterns

13
推荐指数
1
解决办法
1万
查看次数

检查表存在

我需要检查数据库中是否存在表.我目前正在开发使用Yii2.

我的情况与这个问题有点不同,因为要检查的表不是(也可能不是)模型.

我试过了 (new \yii\db\Query())->select('*')->from($mysticTable)->exists());

以上是yii\db\Exception因为,根据上面提到的问题,yii\db\Query()班级->queryScalar()在被问到时是否会尝试->exists().这个方法总是会检查结果集是否存在.

如何检查表是否存在?

php mysql dao yii2

13
推荐指数
1
解决办法
7815
查看次数

Hibernate 5.2版 - >很多Query方法都弃用了吗?

我是Hibernate的新手.

我正在尝试获取所有管理员的名字和姓氏列表.

我的以下代码中有两个警告.我已经尝试在线搜索了很多.

1)查询是原始类型.应该参数化对泛型类型Query的引用.

2)不推荐使用Query类型的方法list().

public List<Object> loadAllAdmins() {
                List<Object> allAdmins = new ArrayList<Object>();
                try {
                        HibernateUtil.beginTransaction();

                        Query q = currentSession.createQuery("SELECT admin.firstName, admin.lastName from AdminBean admin");

                        allAdmins= q.list();

                        HibernateUtil.commitTransaction();
                } catch (HibernateException ex) {
                        System.out.println("List<AdminBean> loadAllPersons: HibernateException");
                }
                return allAdmins;
        }
Run Code Online (Sandbox Code Playgroud)

但我在整个网络上都看到了这样的示例代码.我该如何解决这两个问题?

更新

我只是尝试按照建议使用Criteria.它还说,对于Criteria,list()方法是弃用的......看起来很多方法都被弃用了Query和Criteria,包括uniqueResult()和其他...任何建议我应该如何替换它们?

java sql dao hibernate hql

13
推荐指数
2
解决办法
3万
查看次数

如何为连接表创建DAO?

我目前正在学习如何Dao在我的项目中使用模式.我知道,一张桌子相当于一张Dao,我是对的吗?就像StudentDao,SubjectDao.

每个都在相关的表中Dao执行CRUD操作,但我的问题是,我将如何DAO为连接表创建一个?假设我有一个查询来加入学生和主题表,那我该如何创建一个DAO呢?

我应该把它放到StudentDao?或者SubjectDao?或者在这种情况下有一个很好的做法?

dao join

12
推荐指数
1
解决办法
1万
查看次数

在抽象超类上获取泛型类型参数的实际类型

我有一个类:

public abstract class BaseDao<T extends PersistentObject> {

  protected Class<T> getClazz() {
     return T.class;
  }

  // ...

}
Run Code Online (Sandbox Code Playgroud)

但是编译器说T.class;:Illegal class literal for the type parameter T.

我怎样才能上课T

java generics dao jpa

12
推荐指数
4
解决办法
1万
查看次数

PHP域模型,DAO以及如何实现

当我昨天问一个关于单数/复数模型命名约定的问题时,我遇到了域模型的概念.据我所知,到目前为止,域模型只是一个对象,它代表了我的应用程序中的一个实体.

要使用一个非常简单的示例,请执行以下操作:

class User {

    private $name;

    public setName() {}
    public getName() {}

}
Run Code Online (Sandbox Code Playgroud)

现在,我想到了这个问题,我如何从一些输入源,从数据库或数据源填充这个"域模型"?

在阅读关于域模型的过程中,我得到的印象是,在它们内部应该只有一个表示域概念的表示.所以现在我还需要另一个负责与数据源交互的类(DAO?),在这种情况下是一个名为"User"的数据库表.我的DAO类将处理插入,更新,删除和多次提取.

我想出了这种方法从输入填充用户域模型,在这种情况下发布数据,然后使用UserDAO类将记录保存到数据库:

/**
 * Populating Domain Model from input, and saving to database
 */

/** Instantiate User Domain Model, and populate it from input */
$user = new User();
$user->setName($_POST['name']);

/** Creating a new database record from User Domain Model */
$userdao = new UserDAO($pdo);
$userdao->insert($user);
Run Code Online (Sandbox Code Playgroud)

这是我在需要获取数据时预期与数据库交互的方式,在这种情况下是多个用户记录:

/**
 * Fetching data from database to populate User Domain Models in an array
 */

/** Instantiate new …
Run Code Online (Sandbox Code Playgroud)

php dao model

12
推荐指数
1
解决办法
4244
查看次数