include_dao.php
<?php
//include all DAO files
require_once('class/sql/Connection.class.php');
require_once('class/sql/ConnectionFactory.class.php');
require_once('class/sql/ConnectionProperty.class.php');
require_once('class/sql/QueryExecutor.class.php');
require_once('class/sql/Transaction.class.php');
require_once('class/sql/SqlQuery.class.php');
require_once('class/core/ArrayList.class.php');
require_once('class/dao/DAOFactory.class.php');
require_once('class/dao/TesttableDAO.class.php');
require_once('class/dto/Testtable.class.php');
require_once('class/mysql/TesttableMySqlDAO.class.php');
require_once('class/dao/UserDAO.class.php');
require_once('class/dto/User.class.php');
require_once('class/mysql/UserMySqlDAO.class.php');
?>
User.class.php
<?php
class User{
var $id; //object id
var $userid;
var $password;
}
?>
UserDAO.class.php
<?php
// interface of user dao
interface UserDAO{
public function load($id);
public function queryAll();
public function queryAllOrderBy($orderColumn);
public function delete($id);
public function insert($user);
public function update($user);
public function clean();
public function queryByPassword($value);
public function queryByUserid($value);
public function deleteByPassword($value);
public function deleteByUserid($value);
}
?>
UserMySqlDAO.class.php
<?php
// class that operate on table 'user' from mysql follow by userdao interface
class UserMySqlDAO implements UserDAO{
public function load($id){
$sql = 'SELECT * FROM user WHERE id = ?';
$sqlQuery = new SqlQuery($sql);
$sqlQuery->setNumber($id);
return $this->getRow($sqlQuery);
}
public function queryAll(){
$sql = 'SELECT * FROM user';
$sqlQuery = new SqlQuery($sql);
return $this->getList($sqlQuery);
}
public function queryAllOrderBy($orderColumn){
$sql = 'SELECT * FROM user ORDER BY '.$orderColumn;
$sqlQuery = new SqlQuery($sql);
return $this->getList($sqlQuery);
}
public function delete($id){
$sql = 'DELETE FROM user WHERE id = ?';
$sqlQuery = new SqlQuery($sql);
$sqlQuery->setNumber($id);
return $this->executeUpdate($sqlQuery);
}
public function insert($user){
$sql = 'INSERT INTO user (password, userid) VALUES (?, ?)';
$sqlQuery = new SqlQuery($sql);
$sqlQuery->set($user->password);
$sqlQuery->set($user->userid);
$id = $this->executeInsert($sqlQuery);
$user->id = $id;
return $id;
}
public function update($user){
$sql = 'UPDATE user SET password = ?, userid = ? WHERE id = ?';
$sqlQuery = new SqlQuery($sql);
$sqlQuery->set($user->password);
$sqlQuery->set($user->userid);
$sqlQuery->setNumber($user->id);
return $this->executeUpdate($sqlQuery);
}
public function clean(){
$sql = 'TRUNCATE TABLE user';
$sqlQuery = new SqlQuery($sql);
return $this->executeUpdate($sqlQuery);
}
public function queryByPassword($value){
$sql = 'SELECT * FROM user WHERE password = ?';
$sqlQuery = new SqlQuery($sql);
$sqlQuery->set($value);
return $this->getList($sqlQuery);
}
public function queryByUserid($value){
$sql = 'SELECT * FROM user WHERE userid = ?';
$sqlQuery = new SqlQuery($sql);
$sqlQuery->set($value);
return $this->getList($sqlQuery);
}
public function deleteByPassword($value){
$sql = 'DELETE FROM user WHERE password = ?';
$sqlQuery = new SqlQuery($sql);
$sqlQuery->set($value);
return $this->executeUpdate($sqlQuery);
}
public function deleteByUserid($value){
$sql = 'DELETE FROM user WHERE userid = ?';
$sqlQuery = new SqlQuery($sql);
$sqlQuery->set($value);
return $this->executeUpdate($sqlQuery);
}
protected function readRow($row){
$user = new User();
$user->id = $row['id'];
$user->password = $row['password'];
$user->userid = $row['userid'];
return $user;
}
protected function getList($sqlQuery){
$tab = QueryExecutor::execute($sqlQuery);
$ret = array();
for($i=0;$i<count($tab);$i++){
$ret[$i] = $this->readRow($tab[$i]);
}
return $ret;
}
protected function getRow($sqlQuery){
$tab = QueryExecutor::execute($sqlQuery);
return $this->readRow($tab[0]);
}
protected function execute($sqlQuery){
return QueryExecutor::execute($sqlQuery);
}
protected function executeUpdate($sqlQuery){
return QueryExecutor::executeUpdate($sqlQuery);
}
protected function executeInsert($sqlQuery){
return QueryExecutor::executeInsert($sqlQuery);
}
}
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
testuser.php
<?php
require_once("include_dao.php");
$userdao = new UserMysqlDAO();
$user = new User();
$user->userid = "000218212";
$user->password="cdeaff";
$oid = $userdao->insert($user); //insert user object to mysql db and return object id
$usr1 = $userdao->load($oid); //get a user by object id
echo $usr1->id." ".$usr1->userid." ".$usr1->password; //display userid and password
?>