封装数据库操作类(优化)|学习笔记

简介: 快速学习封装数据库操作类(优化)

开发者学堂课程【PHP 进阶教程-由浅入深掌握面向对象开发-第一阶段封装数据库操作类(优化)】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/711/detail/12683


封装数据库操作类(优化)

 

内容介绍:

一、优化业务类操作简介

二、优化业务类操作代码详解及测试

三、确定类的控制简介

四、确定类的控制详解

 

一、优化业务类操作简介

用户在使用 SQL 类的时候,必须要进行第一步实例化、然后连接认证[调用  connect() ]和实现字符集置( 调用charset() ),才能完成真正的初始化。对于用户而言,这两步是必须做的,但好像又是累赘,用户并不了解这俩步的原因

用户使用 SQL 类希望实例化时就可完成初始化操作,然后就可做业务。

用户实例化 SQL 类就可以直接进行相应的业务处理:所以可以将连接认证、字符集设置在初始化方法中实现(在构造方法中调用激活),用户操作时会比较方便。

原因:因为构造方法会在实例化时,对象自动创建自动调用,所以该方法相当于已经运行,完成后用户之后的操作才有价值

 

二、优化业务类操作代码详解及测试

1.代码

#实现初始化数据库操作

public function _ construct(array $arr = []){

//先进行属性初始化后再进行调用初始化和字符集设置

#初始化:确保用户传入了数据,否则使用默认值

$this->host = $info['host'] ?? 'localhost';

$this->port = $info['port'] ?? '3306';

$this->user = $infg['user'] ?? 'root';

$this->pass = $info['pass'] ?? 'root';

$this->dbname = $info['dbname'] ?? 'db_2';

$this->charset = $info['charset'] ?? 'utf8';

#调用初始化和字符集设置

if(!$this->connect()) return;

$this->charset();

//charset()与 connect() 连接有关,connect() 可能操作结果不正确,而之后需要继续调用,只有连接资源的保证才可使 charset()方法得以运行,所以需要进行判定;如果执行失败返回结果 false ,则 return 打断当前执行,但 return 对构造方法无用,因为对象调用构造方法时,不需要返回值,对象并不会拿取返回值,所以 return 的作用只是打断当前执行(虽然 return 是返回值,但是此处无意义)

}

}

2.测试:

(1)代码:

#接上述代码(类外测试)

$s1 = new SqL();         #使用默认数据库信息

$db =array(

'host' => ' 192.168.0.1',

‘user ' => 'admin”,

‘pass’=>’admin ' ,

‘dbname' => ' T aobao '

);

$s2 = new SqL ($db) ;#使用外部数据库信息

/*$s1- >connect();

$s1->charset();*/

$res = $s1->read_all(‘desc t_40');

#$res = $s1->write("insert  into  t_40  values(null, 'name ','男',18,'classname ')");

echo $s1->errno,$s1->error ;

#echo $s1-> insert_ id();

Var_dump($res) #观察有哪些字段

(2)解析

将下述俩行代码注释:

/*$s1- >connect();

$s1->charset();*/

停止查看 insert

#$res = $s1->write("insert  into  t_40  values(null, 'name ','男',18,'classname ')");

执行观察效果;发现效果相同,说明可以操作

image.png

但是对于用户而言,只是新建了一个对象(new SqL($db)),就可以直接使用$s1->read_all(),所以上述内容在做业务。

用户需要直接做自己的业务,因为初始化完成紧接着就是做业务。

 

三、确定类的控制简介

在学习完内容之后,发现类中有的在外部无用,有的在外部有用,但使用的都是 public,所以需要确定类的控制。

确定类的控制:不需要外部访问的私有,需要外部访问的公有,重要的数据私有化并增加公有的操作方法进行安全控制。

做起来较为复杂,因为那些类需要控制,都应进行业务规范,或者说需要开发人员有足够的经验是否需要公开或私有


四、确定类的代码讲解

#数据库初始化资源私有:不需要外部访问

private $host;

private $port;

private $user;

private $pass;

private $dbname ;

private $charset;

//属性需要私有化,因为都是内部使用,外部不用

private $link;

//连接资源仅限内部跨方法使用

Public $errno;

Public $error;

//需要外部使用,因为外部访问

private function connect(){}

private function charset(){}

//连接认证和字符集设置已经内部(构造方法)调用,完全自由化,不需要外部使用

private function check($sql){}

//SQL 检查属于内部(write(),read(),inset()做支撑)调用,不需要公有

因为在学习的过程中一直测试,无论是增删改查都可完成,所以测试结束之后将测试所写代码删除。SQL 类封装结束。

以后要使用引入该文件,实例化对象,按照所要的数据进行个性化的定制,就可以连接自己的数据库操作了。

然后讲的就是增删改查,受影响的行数,记录,对应的自增长 id。

相关文章
|
3月前
|
存储 缓存 监控
数据库优化技术:提升性能与效率的关键策略
【10月更文挑战第15天】数据库优化技术:提升性能与效率的关键策略
120 8
|
2天前
|
缓存 NoSQL JavaScript
Vue.js应用结合Redis数据库:实践与优化
将Vue.js应用与Redis结合,可以实现高效的数据管理和快速响应的用户体验。通过合理的实践步骤和优化策略,可以充分发挥两者的优势,提高应用的性能和可靠性。希望本文能为您在实际开发中提供有价值的参考。
23 11
|
2天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
27 0
|
1月前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
74 11
|
2月前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
2月前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
2月前
|
存储 NoSQL 分布式数据库
微服务架构下的数据库设计与优化策略####
本文深入探讨了在微服务架构下,如何进行高效的数据库设计与优化,以确保系统的可扩展性、低延迟与高并发处理能力。不同于传统单一数据库模式,微服务架构要求更细粒度的服务划分,这对数据库设计提出了新的挑战。本文将从数据库分片、复制、事务管理及性能调优等方面阐述最佳实践,旨在为开发者提供一套系统性的解决方案框架。 ####
|
2月前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
63 4
|
2月前
|
SQL druid 数据库
如何进行数据库连接池的参数优化?
数据库连接池参数优化包括:1) 确定合适的初始连接数,考虑数据库规模和应用需求;2) 调整最大连接数,依据并发量和资源状况;3) 设置最小空闲连接数,平衡资源利用和响应速度;4) 优化连接超时时间,确保系统响应和资源利用合理;5) 配置连接有效性检测,定期检查连接状态;6) 调整空闲连接回收时间,适应访问模式并配合数据库超时设置。
|
2月前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
61 7

热门文章

最新文章