用PHP现实J2ee持久化访问模式-DAO
通过“用户”来举例:
< ?php
#模型
class Member
{
private $uid;
private $username;
private $password;
public function setUid($_uid)
{
$this->uid = $_uid;
}
public function getUid()
{
return $this->uid;
}
public function setUsername($_username)
{
$this->username = $_username;
}
public function getUsername()
{
return $this->username;
}
public function setPassword($_password)
{
$this->password = $_password;
}
public function getPassword()
{
return $this->password;
}
}
#DAO
class MemberDAO
{
#基本变量
public $dbhost;
public $dbuser;
public $dbpassword;
public $dbname;
//构造函数为连接数据库
public function __construct($_dbhost,$_dbuser,$_dbpassword,$_dbname)
{
$this->dbhost=$_dbhost;
$this->dbuser=$_dbuser;
$this->dbpassword=$_dbpassword;
$this->dbname=$_dbname;
$this->conn= mysql_connect($this->dbhost,$this->dbuser,$this->dbpassword) or die(’连接数据库失败!’);
mysql_select_db($this->dbname);
}
//查询用户
public function getMember($_uid=”)
{
$members = array();
//如果参数uid为空,则查询全部
if(empty($_uid))
{
$res=mysql_query(”select * From members”);
}
else
{
$res=mysql_query(”select * From members WHERE uid = $uid”);
}
while($rows=mysql_fetch_assoc($res))
{
$member = new Member();
$member->setUid($row['uid']);
$member->setUsername($row['username']);
$member->setPassword($row['password']);
//追加到成员列表,如果不考虑查询多个用户则可不必这么麻烦
array_push($members,$member);
}
return $members;
}
//添加用户
public function addMember(Member $_member)
{
$uid = $_member->getUid();
$username = $_member->getUsername();
$password = md5($_member->getPassword());
$sql = “INSERT INTO members(uid,username,password) VALUES($uid,’$username’,'$password’)”;
mysql_query($sql_str) or die(mysql_error());
}
//修改资料
public function updateMember(Member $_member);
{
$uid = $_member->getUid();
$username = $_member->getUsername();
$password = md5($_member->getPassword());
$sql = “UPDATE members SET username=’$username’,password=’$password’ WHERE uid = $uid limit 1″;
mysql_query($sql_str) or die(mysql_error());
}
//删除用户………..
//其他操作用户的方法,不一一列举了
}
下面开始使用DAO
include ‘member.php’;
include ‘memberDAO.php’;
#创建DAO
$memberDAO = new memberDAO(’localhost’,'root’,'159753′,’test’);
#创建一个用户
$member = $new Member();
$member->setUid(911);
$member->setUsername(’tester’);
$member->setPassword(’321′);
#test 1
#添加到数据库
$memberDAO->addMember($member);
#test 2
#修改这个用户的密码
$member->setPassword(’123′);
$memberDAO->updateMember($member);
#test 3
#得到所有用户的列表
$members = $memberDAO->getMember();
#显示,这里假如不使用任何模版,只是测试显示数据,如果使用smrty模版引擎,更加方便,直接把$members传过去
foreach($members as $TmpMember)
{
echo ‘Uid:’.$TmpMember->getUid().’
‘;
echo ‘Username:’.$TmpMember->getUsername().’
‘;
echo ‘Password:’.$TmpMember->getPassword().’
‘;
}
?>
注意,示例代码仅供参考测试用,并不能直接使用在生产用途中。
推荐阅读:J2ee中DAO设计模式