您的位置 首页 java

Java连接数据库技术的性能分析

Java 连接 数据库技术 的性能分析

一、 概述:

本文主要以Java连接数据库的框架和连接池的技术为主线逐步展开说明,用比对特点和案例相结合的方式分析各种技术的优劣。同时以项目开发为出发点对于各种技术的配置和代码实现进行说明,让读者感受到项目开发的魅力。

将相关格式的文件内容文本化的过程。另外针对于Excel文件内容的结构化和对象化进行实际案例分析,给出更适应 Spring 框架配置的解决方案。

二、 hibernate MyBatis 的特点比对:

特点比对

三、 数据连接池技术:

1、 常见的连接池技术:

a) DBCP;

b) Druid;

c) C3P0;

d) Tomcat-JDBC;

2、 功能对比:

功能对比

3、 测试结论:

a) 性能方面:

druid>tomcat- JDBC >dbcp>c3p0;

b) 功能方面:

druid功能最为全面, SQL 拦截等功能,统计数据较为全面,具有良好的扩展性;

c) 综合性能和扩展性等方面:

可考虑使用druid;

d) 缓存 方面:

可开启prepareStatement缓存,对性能会有大概20%的提升;

e) 实际情况方面:

实际项目druid更常用,但也有使用dbcp的情况;

四、 商业 中间件 连接池:

1、 WebLogic的连接池:

此连接池的持续运行稳定性很强,在大并发量的压力下性能也相当优秀,另外在一些异常情况下连接池里的连接也能够及时释放。连接池监控一目了然,及时到位;

2、 WebSphere的连接池:

此连接池的持续运行稳定性相当强,在大并发量的压力下性能也足够优秀,另外在一些异常情况下连接池里的连接能够及时释放,连接池监控配置有些复杂,但是配置好后各项指标一目了然并且有图形显示。简单地说就是功能强大,使用复杂;

五、 项目中的具体细节处理:

1、 获得数据库连接属性:

a) 通过文件进行配置:

i. 必须与Java代码分离,保证工程人员可自行修改;

ii. 应尽量避免修改相关配置文件后需经重启服务器才能生效的情况;

b) 通过中间件服务器进行配置:

应尽量降低工程人员配置难度,并提供说明文档或使用手册;

2、 获得数据库连接实例:

a) 应尽量使用框架配置的方式;

b) 如需自行开发,应尽量使用工厂模式或单例模式,以保障实例不会被重复创建;

3、 封装和执行SQL语句:

i. 应提供多种方式的执行方法,比如批处理、存储过程与函数等等;

ii. 应提供增删改的批量处理方式(建议使用Batch模式,此模式主要使用代码控制批次内的执行语句数量);

iii. 应尽量封装自定义的动态SQL标签,简化SQL开发,提高代码运行效率;

4、 提供分页查询方式:

a) 数组分页;

b) SQL分页:尽量避免使用此种分页查询方式;

c) 拦截器分页;

d) RowBounds分页;

5、 处理异常:

针对程序运行时异常和业务逻辑异常等情况应分别进行处理,同时释放相关资源;

六、 各种技术的处理方式:

1、 JDBC:

a) 说明:

利用properties.properties配置文件形式配置数据库连接属性,使用java.util.Properties读入相关信息;

b) 示例代码:

JdbcFactory

2、 C3P0:

a) 说明:

利用com.mchange.v2.c3p0.ComboPooledDataSource获得数据库连接;

b) 示例代码:

C3P0Factory

3、 DBCP:

a) 说明:

利用org. apache .commons.dbcp.BasicDataSourceFactory获得数据库连接;

b) 示例代码:

DBCPFactory

4、 MyBatis:

a) 说明:

利用org.apache. iBatis . session .Sql SessionFactory Builder获得数据库连接;利用org.springframework. orm .ibatis.support.SqlMapClientDaoSupport执行SQL语句;

b) 示例代码:

BaseDAO

5、 Hibernate:

a) 说明:

利用org.hibernate.SessionFactory获得数据库连接;

b) 示例代码:

HibernateSessionFactory

七、 案例分析:

1、 设计说明:

考虑到支持多种连接池的技术使用场景,因此将公共逻辑提取到父类。

2、 类图

PowerDesigner类图

3、 公共类:

CommonFactory

4、 Spring配置:

a) 公共配置:

Spring公共配置

b) C3P0配置:

C3P0配置

c) DBCP配置:

DBCP配置

d) druid配置:

Druid配置

e) iBatis配置:

iBatis配置

f) Hibernate配置:

Hibernate配置

5、 连接属性配置:

a) JDBC连接属性配置:

JDBC连接属性配置

b) DBCP连接属性配置:

DBCP连接属性配置

文章来源:智云一二三科技

文章标题:Java连接数据库技术的性能分析

文章地址:https://www.zhihuclub.com/177460.shtml

关于作者: 智云科技

热门文章

网站地图