public function initialize(PDO $pdo, ReflectionMethod $method, HermitAnnote $annote)
 {
     $meta = HermitDatabaseMetaFactory::get($pdo);
     $table = $annote->getTable();
     $info = $meta->getTableInfo($table);
     $columns = $info->getColumns();
     $insert = 'INSERT INTO';
     $insert .= ' ';
     $insert .= $table;
     $insert .= ' (';
     $insert .= join(', ', $columns);
     $insert .= ') VALUES (';
     $begin = false;
     foreach ($columns as $column) {
         $begin = true;
         $insert .= '/*' . $column . '*/';
         $insert .= '"' . $column . '"';
         $insert .= ',';
     }
     if ($begin) {
         $insert = substr($insert, 0, -1);
     }
     $insert .= ')';
     $this->insert = $insert;
 }
 public function initialize(PDO $pdo, ReflectionMethod $method, HermitAnnote $annote)
 {
     $meta = HermitDatabaseMetaFactory::get($pdo);
     $table = $annote->getTable();
     $info = $meta->getTableInfo($table);
     $primaryKeys = $info->getPrimaryKeys();
     $sql = 'DELETE';
     $sql .= ' ';
     $sql .= 'FROM';
     $sql .= ' ';
     $sql .= $table;
     $sql .= ' ';
     $sql .= 'WHERE';
     $sql .= ' ';
     $begin = false;
     foreach ($primaryKeys as $pk) {
         $begin = true;
         $sql .= ' ';
         $sql .= $pk . '=';
         $sql .= ' ';
         $sql .= '/*' . $pk . '*/';
         $sql .= '"' . $pk . '"';
         $sql .= ' ';
         $sql .= 'AND';
     }
     if ($begin) {
         $sql = substr($sql, 0, -3);
     }
     $this->sql = $sql;
 }
 public function build(PDO $pdo, array $inputParameters)
 {
     self::checkProcedureParameter($this->method);
     $procedureName = $this->annote->getProcedure($this->method);
     $meta = HermitDatabaseMetaFactory::get($pdo);
     $info = $meta->getProcedureInfo($procedureName);
     $dbms = HermitDatabaseMetaFactory::getDbms($pdo);
     $parameter = null;
     if (isset(self::$procedureParameters[$dbms])) {
         $className = self::$procedureParameters[$dbms];
         $parameter = new $className($info, $dbms);
     } else {
         $parameter = new HermitProcedureParameter($info, $dbms);
     }
     $parameter->setInputParameters($inputParameters);
     $parameter->setTargetClass($this->targetClass);
     $parameter->setTargetMethod($this->method);
     $sql = self::preparedSql($parameter, $this->sqlCreator->createSql());
     $logger = HermitLoggerManager::getLogger();
     if ($logger->isDebugEnabled()) {
         $logger->debug('{%s} preparedSql: "%s"', __CLASS__, $sql);
     }
     $statement = $pdo->prepare($sql);
     return new HermitDefaultStatement($parameter, $statement);
 }
 public function initialize(PDO $pdo, ReflectionMethod $method, HermitAnnote $annote)
 {
     $procedureName = $annote->getProcedure($method);
     $dbMeta = HermitDatabaseMetaFactory::get($pdo);
     $info = $dbMeta->getProcedureInfo($procedureName);
     $this->setupSql = self::generateSetupSql($info);
     $this->sql = self::generateCallSql($info);
 }
 public function initialize(PDO $pdo, ReflectionMethod $method, HermitAnnote $annote)
 {
     $meta = HermitDatabaseMetaFactory::get($pdo);
     $table = $annote->getTable();
     $info = $meta->getTableInfo($table);
     $columns = $info->getColumns();
     $select = 'SELECT';
     $select .= ' ';
     $select .= join(', ', $columns);
     $select .= ' ';
     $select .= 'FROM';
     $select .= ' ';
     $select .= $table;
     $this->select = $select;
 }