论数据库访问组件的选择--火地晋大作读后感

简介: 前言 火地晋做了一件有意义的事情。把这些ORM对比了一下(http://www.cnblogs.com/yelaiju/p/3209506.html)。 这里要讨论一下我们用一个什么样的策略来选择数据库访问组件。

前言

火地晋做了一件有意义的事情。把这些ORM对比了一下(http://www.cnblogs.com/yelaiju/p/3209506.html)。

这里要讨论一下我们用一个什么样的策略来选择数据库访问组件。通常有如下几种情况来选择:

1. 基于过去的经验

   比如过去用过某某ORM,在将来的项目中继续用的话经验和熟练度就会比较高。这是建立在对该ORM的信任基础之上的。

2. 别人介绍或者在网上自己发现的,然后再试用也不错

  这种情况也挺普遍的。业界同事介绍某某ORM不错,或者在网络上发现一个数据库访问框架不错。再经过试用,发现还不错。就在项目中采用。

选择原则

  上述这两种情况中都有试用或者使用的经历,在试用和使用过程中我们考察什么呢, 主要是这些:

1. 便利性

  调用是否方便。是否易用。团队是否容易采用。

2. 性能

  该ORM或者数据库访问框架是否提供足够好的数据库访问性能。

3. 多线程情况下有否限制

  多线程情况是程序中一个很普遍的现象,该ORM或者框架是否在多线程情况下有限制。这是一个必须通过的考察项目,如果不能通过的话,最好不要选用该ORM或者框架。

4. 事务处理是否足够完备

  单个数据库的事务处理是否支持,分布式数据库事务是否支持。支持的数据库事务协调器是哪些。分布式数据库事务不是必须的。不需要分布式事务的情况下,某些ORM或者框架不支持分布式事务是允许的。但是单个数据库的事务处理是必须要支持的。不然该ORM或者框架是不能选择的。

5. 安全性

  对于防止SQL 注入有没有提供措施。这是必须的。

6. 可扩展性

  当ORM或者框架现有功能不足以满足项目要求,比如ORM产生的SQL不够优化,怎么办?有没有扩展的方法来解决。这个不是必须的,但是有的话更好。

7. 可维护性

 可维护性指的是该ORM或者框架有没有人持续提供升级,维护;如果一个框架用的人手少,然后维护它的人很久都不出维护版本,我们估计就很难选择这样的框架了。然后就是我们本身可否看到其源码,了解其本身是如何运作的。我们从而可以写出更配合的代码来。如果看不到源吗,这方面就会减分。

 

结论

  我们可以选择的ORM或者框架很多。每个ORM或者框架在这几个方面的得分是不一样的。我们其实没有那么多时间去使用那么多的ORM或者框架。只有从知道的几个当中选一个。在所有ORM之外,我们其实还有一个ado.net的选择, ado.net的方式,其性能可以做到最好,但是其便利性不如那些ORM,还有可维护性也不是足够好。所有这些选项都经过我们的考察,才能选中合适项目的数据库访问框架或者技术。

  这里的建议是我们还是尽量用那些使用面比较广的,开源的,经常更新的ORM或者框架。像那些不开源的,更新没保障的,品质没保障的ORM或者框架,最好还是别用。当然了,你要用的话,后果自付。只有在极端要求性能的情况下或者是当你有办法提高ado.net的便利性和可维护性的情况下,才去选择ado.net。

 

 

目录
相关文章
|
5月前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与最佳实践
在微服务架构中,数据库访问的效率直接影响到系统的性能和可扩展性。本文探讨了优化微服务架构中数据库访问的策略与最佳实践,包括数据分片、缓存策略、异步处理和服务间通信优化。通过具体的技术方案和实例分析,提供了一系列实用的建议,以帮助开发团队提升微服务系统的响应速度和稳定性。
|
2月前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
95 11
|
3月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
85 3
|
3月前
|
SQL Java 数据库连接
打破瓶颈:利用Java连接池技术提升数据库访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,避免了频繁的连接建立和断开,显著提升了数据库访问效率。常见的连接池库包括HikariCP、C3P0和DBCP,它们提供了丰富的配置选项和强大的功能,帮助优化应用性能。
121 2
|
5月前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与实践
随着微服务架构的普及,如何高效管理和优化数据库访问成为了关键挑战。本文探讨了在微服务环境中优化数据库访问的策略,包括数据库分片、缓存机制、异步处理等技术手段。通过深入分析实际案例和最佳实践,本文旨在为开发者提供实际可行的解决方案,以提升系统性能和可扩展性。
|
5月前
|
SQL NoSQL Java
彻底革新你的数据库操作体验!Micronaut数据访问技巧让你瞬间爱上代码编写!
【9月更文挑战第10天】Java开发者们一直在寻找简化应用程序与数据库交互的方法。Micronaut作为一个现代框架,提供了多种工具和特性来提升数据访问效率。本文介绍如何使用Micronaut简化数据库操作,并提供具体示例代码。Micronaut支持JPA/Hibernate、SQL及NoSQL(如MongoDB),简化配置并无缝集成。通过定义带有`@Repository`注解的接口,可以实现Spring Data风格的命名查询。
106 6
|
6月前
|
SQL JavaScript 前端开发
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
这篇文章详细介绍了如何在Vue.js中使用分页组件展示从数据库查询出来的数据,包括前端Vue页面的表格和分页组件代码,以及后端SpringBoot的控制层和SQL查询语句。
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
|
5月前
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
454 6
|
5月前
|
SQL 关系型数据库 分布式数据库
PolarDB Proxy配置与优化:提升数据库访问效率
【9月更文挑战第6天】PolarDB是阿里云推出的高性能分布式关系型数据库,PolarDB Proxy作为其关键组件,位于客户端与PolarDB集群间,负责SQL请求的解析与转发,并支持连接池管理、SQL过滤及路由规则等功能。本文详细介绍了PolarDB Proxy的配置方法,包括连接池、负载均衡和SQL过滤设置,并探讨了监控调优、缓存及网络优化策略,以帮助提升数据库访问效率。
100 1
|
6月前
|
开发者 UED Java
Play Framework惊天秘密:如何让异常处理优雅得像芭蕾舞?
【8月更文挑战第31天】在Web应用开发中,异常处理至关重要,直接影响应用稳定性和用户体验。Play Framework作为轻量级Java Web框架,提供了基于Scala偏函数的灵活异常处理机制。通过实现`HttpErrorHandler`接口可定义全局异常逻辑,而在控制器中使用try-catch块则能捕获特定异常。定义自定义异常类也有助于表示特定错误情况。最佳实践包括保持处理一致性、提供有用错误信息、记录日志及分类处理异常。掌握这些技巧,能使Play应用更健壮可靠。
80 1

热门文章

最新文章