0

使用MVC框架并使用模型从控制器查询数据库时,最佳实践是什么?通过模型查询数据库

模型应该提供一个非常灵活的功能来允许控制器查询数据库吗?就像从控制系统这样一个电话:

User->find ([ 
    { 
     or => [ 
      {field => 'name', value => 'john', op => '~' }, 
      { 
       and => [ 
        { field => 'organization', value => 'acme', op => '~' }, 
        { field => 'city', value => 'tokyo', op => '=' } 
       ] 
      } 
     ], 
    }); 

    } 

还是应该模型有严格的API,它会导致这样的方法调用:

User->find_john_or_people_from_acme_in_tokyo(); 

什么是要去关于它的最好方法是什么? SQL是否应该遍布整个模型?或者包含在一个queryFactory函数中?你能指点我正确的方向吗?一些操作系统代码会很棒。

谢谢!

回答

0

一个好的做法是将所有与数据库相关的代码分离到单独的DAO层中。这样,您的业务逻辑代码就不依赖于您正在使用的特定数据库技术(JDBC vs. Hibernate vs. JPA等),甚至不依赖于数据是存储在数据库中还是存储在其他存储中。