从痴迷数据库SQL语句逐渐走进面向对象化(系统的核心以处理对象为主、淡化数据库概念)

简介:
每个表都是自己建立的,然后喜欢用高
性能、高超的SQL语句搞定很多复杂的商业逻辑问题,那SQL语句又长又复杂,一般人
还读不懂,但是代码很少、性能很高,其实软件公司里并不是人人都是高手,这样的
SQL语句其他人也不好仿造也没能力维护,他们也无法按你的思路搞定复杂的逻辑,很
容易变成无法入手,对项目也帮不上大忙的状态。
这几年,由于建设的信息系统也多了,往往需要在几个系统之间进行集成,例如,你
的用户表不在你的数据库里,你的角色数据在另外的XML文件里,你无法写一个SQL语
句,里面又有从角色XML数据里读取的数据又有另外一个系统或服务里读取过来的数据,
这时往往需要你的系统的健壮性更强大、更灵活、能够快速按实际需要改进。
虽然就这么小小的变化,但对于有多年积累的系统来讲,完全按照这个需求去改进,
还真不容易,我曾经花费3-4个月时间,把系统从面向数据库表,完全修改为面向对象
的理念,这个真的是一个痛苦的挣扎过程,因为需要很多环节都需要进行彻底的改变,
会有放弃改进的念头,但是我还是坚持下来,把整个系统都翻天覆地的改进了。
经过一番痛苦的改进过程,又维护了一段时间,新系统也渐渐的稳定下来了,经过这
几年的实战,现在的系统真的是有明显的改进,系统里很少见到复杂的SQL语句,都是
由很简单的语句,读取到这些对象,然后通过C#程序处理对象与对象之间的逻辑关系,
很少写超级复杂的SQL语句了,每个处理步骤都很简单,把一个复杂的过程分解成了若
干个简单的处理过程,思路也清晰,条理性也强了很多,多种数据库的移植也变得很轻
松了。
现在数据表里的任何一个表都可以删除掉,把数据放在XML文件里或者从其他数据库里
读取、甚至从其他服务程序里读取,因为系统是基于对象的核心处理,而不是基于数据
库表、SQL语句的处理思想,这样就很容易与其他系统进行整合及不依赖与某个数据库
系统了,数据也不用重复存取,减少了冗余。
每个进步都是经过反反复复的对比,推敲后才形成的,我感觉这次的改进,在编程架构
的身心高度都有明显的提高,特意写下来,分享给大家。
简单的讲:信息系统中的数据未必都在数据库里,甚至SQL语句不能读取到表,系统的
某部分数据可能在XML里,也可能在TXT文件里,若你手上有个成熟的系统,想改进,
你就能体会工作量有多大,若是没有历史包袱,那是很容易接纳这个思想。
数据库技术出身的开发人员,很容易犯跟我类似的错误,系统里到处是高超的SQL语句,
若你已犯了跟我一样的错误,要记得面向对象化了,别当老顽固哦,大型软件项目开发
时确面向对象化是比面向数据库SQL优点多多、好处多多,不得不承认啊。
按这个理念,管理系统未必就是有什么什么数据库,不是非要建立那些表,也可以从
以后的系统里读取,对已有的系统进行集成就可以了。
 
搞技术的人不能没有自己的信念、自己的追求,但是不能拒绝提高,对的有道理的应该积极接纳。
提高是点点滴滴积累的,不可能一步到位的,每天一点点进步,每年会有明显的进步。
 
 
 
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。



本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/451561,如需转载请自行联系原作者
相关文章
|
10天前
|
SQL 存储 关系型数据库
【SQL技术】不同数据库引擎 SQL 优化方案剖析
不同数据库系统(MySQL、PostgreSQL、Doris、Hive)的SQL优化策略。存储引擎特点、SQL执行流程及常见操作(如条件查询、排序、聚合函数)的优化方法。针对各数据库,索引使用、分区裁剪、谓词下推等技术,并提供了具体的SQL示例。通用的SQL调优技巧,如避免使用`COUNT(DISTINCT)`、减少小文件问题、慎重使用`SELECT *`等。通过合理选择和应用这些优化策略,可以显著提升数据库查询性能和系统稳定性。
64 9
|
29天前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
96 6
|
1月前
|
SQL Java 数据库连接
如何在 Java 代码中使用 JSqlParser 解析复杂的 SQL 语句?
大家好,我是 V 哥。JSqlParser 是一个用于解析 SQL 语句的 Java 库,可将 SQL 解析为 Java 对象树,支持多种 SQL 类型(如 `SELECT`、`INSERT` 等)。它适用于 SQL 分析、修改、生成和验证等场景。通过 Maven 或 Gradle 安装后,可以方便地在 Java 代码中使用。
243 11
|
2月前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
95 11
|
2月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
2月前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
3月前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
53 2
|
3月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
4月前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
4月前
|
SQL 存储 监控
串口调试助手连接SQL数据库的技巧与方法
串口调试助手是电子工程师和软件开发人员常用的工具,它能够帮助用户进行串口通信的调试和数据分析

热门文章

最新文章