1.使用框架操作数据库的几个需求
-
性能
- ORM(Object-Relational Mapper)
用操作类的方式操作数据库 - 支持多种数据库
- 支持多种第三方插件
- ORM(Object-Relational Mapper)
-
Doctrine简介
- 06年成立项目
- 代码开源,开发过程透明
- 良好的架构
- 可以独立使用
- 也能结合框架使用
- 功能强大,速度快
-
为何选择Doctrine
- 一些历史原因
- 获得Symfony的第三方bundle的支持
-
Symfony2可不可以使用别的数据库操作软件
- Propel
- Zend DB
- 其他的(不推荐)
5.代码操作数据库demo
取得对象
$user=$em->getRepository('User')->find(array('id'=>1))
findOneBy()获取一条
$user->setName('name');修改name字段值为name
实例化数据库
$em->presist($user);
对比生成Updata语句
$em->flush
一对多
foreach($user->getAddressBooks() as $addressBook){
$addressBooks->getName()
}
6.Doctrine2的基本概念
-
实体对象-entitiy
1. 字段
2. 关系 -
对象操作集合-Repository
-
Proxy Class
-
DQL数据库查寻语言
1. $query=$em->createQuery( select u fromDataBundle:User p where u.name=:name )->setParameter('name','scourgen') 2. $query2=$em->getRepository('User')->createQueryBuilder('U') ->where('u.name = :name') ->setParameter('name','scourgen') ->getQuery();
7.事件监听机制
8.进行数据库设计
- 实际数据库关系和主要字段
- 配置Symfony2数据库连接
- 配置Entity
- 生成get/set/repository
- 生成真实数据库