[转帖]将DAO Generator应用于PHP和MySQL_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1961 | 回复: 0   主题: [转帖]将DAO Generator应用于PHP和MySQL        下一篇 
shylone
注册用户
等级:下士
经验:199
发帖:90
精华:0
注册:2011-11-24
状态:离线
发送短消息息给shylone 加好友    发送短消息息给shylone 发消息
发表于: IP:您无权察看 2014-11-17 10:26:24 | [全部帖] [楼主帖] 楼主

    下面简要介绍各种重要的DAO类:

ConnectionFactory类:这个类与数据库密切相关。这个工厂类用于连接数据库,或者说打开一个数据库的连接。 连接数据库时,这个类要用到getConnection方法,该方法需要三个参数,分别对应于数据库名称、用户名和口令。这些参数将按照POJO的风格映射到类ConnectionProperty中。

 public
function getConnection() {
      $conn
      mysql_connect(ConnectionProperty::getHost(),
      ConnectionProperty::getUser(),
      ConnectionProperty::getPassword());
      mysql_select_db(ConnectionProperty::getDatabase());
      $conn){
            throw
            Exception(
            could not connect to database
            );
      }
      return
      $conn;
}


Connection类:这个类代表的是单个数据库连接,该连接是通过Connection构造函数引自ConnectionFactory类的。

 ConnectionFactory::getConnection();
}


这个类还负责关闭连接以及执行SQL查询。
Transaction类:这个类封装了一组对数据库进行事务性操作的函数。此外,这个类还提供了事务数组,这些事务是通过助手类ArrayList来提供的,其中ArrayList可以通过PHP数组来模拟一个集合。这些事务将使用Connection类所提供的连接。此外,Transaction类的getCurrentTransaction函数提供了对当前事务的访问能力。
QueryExecutor类:这个类为我们提供了执行SQL语句的各种函数。实际上,这些函数都实现了CRUD语法。函数execute可以执行所有的SELECT语句,而函数executeUpdate则执行UPDATE、DELETE和INSERT语句:

 static
function execute($sqlQuery){
      $transaction
      Transaction::getCurrentTransaction();
      $transaction){
            $connection
            Connection();
      }
      else
      {
            $connection
            $transaction
            ->
            getConnection();
      }
      $query
      $sqlQuery
      ->
      getQuery();
      $result
      $connection
      ->
      executeQuery($query);
      $result){
            throw
            Exception(mysql_error());
      }
      $i
      ;
      $tab
      array();
      while
      ($row
      mysql_fetch_array($result)){
            $tab[$i
            $row;
      }
      mysql_free_result($result);
      $transaction){
            $connection
            ->
            close();
      }
      return
      $tab;
}
public
static
function executeUpdate($sqlQuery){
      $transaction
      Transaction::getCurrentTransaction();
      $transaction){
            $connection
            Connection();
      }
      else
      {
            $connection
            $transaction
            ->
            getConnection();
      }
      $query
      $sqlQuery
      ->
      getQuery();
      $result
      $connection
      ->
      executeQuery($query);
      $result){
            throw
            Exception(mysql_error());
      }
      return
      mysql_affected_rows();
}


{databasename}MySqlDAO类:这是由DAO Generator创建的一个类,它提供了一组特定于某种数据库的DAO函数。生成的类位于generated/class/mysql文件夹内,并且它们的名称是由数据库名称和后缀MySqlDAO结合而成的。在本文的后面,我们将介绍如何生成和使用这个类。
  注意,类QueryExecutor和类{databasename}MySqlDAO使用了一个名为SqlQuery的助手类,它封装有表示和存储SQL语句的各种函数。

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论