JDBC的传统连接弊端
一、传统连接弊端
1.传统的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载到内存中,再验证ip地址,用户名和密码(0.05s~1s)。需要数据库连接的时候,就像数据库要求一个,频繁的进行数据库连接操作将占有很多的系统资源,容易造成服务器崩溃。
2.每一次数据库连接,使用完后都要断开,假如程序出现异常而没能关闭,将会导致数据库内存泄漏,将导致重启数据库。
3.传统获取连接的方式,不能控制创建的连接数量,假如连接过多可能导致内存泄漏,MySql崩溃。
4.解决传统开发中的数据库连接问题,可以采用数据库连接池技术。
package com.jun.jdbc.datasource;import com.jun.jdbc.utils.JDBCUtils;
import org.junit.Test;import java.sql.Connection;public class ConQuestion {//连接mysql 5000次@Testpublic void testCon(){long start = System.currentTimeMillis();for (int i = 0; i <5000 ; i++) {//传统的jdbc方式,得到连接Connection connection = JDBCUtils.getConnection();//得到PreparedStement,发送sql//.....//关闭JDBCUtils.close(null,null,connection);}long end =System.currentTimeMillis();System.out.println("传统方式耗时="+(end - start));//传统方式耗时=23970}
}
JDBC的传统连接弊端相关推荐
- 使用JDBC把Java连接到数据库
大家好,我是贺贺,专注于Java后端.数据结构和算法的学习. 为什么JDBC慢慢变陌生了 在Java开发过程中,与数据库打交道是难免的,但是,Java具体是怎么操作数据库的呢,随着Spring时代的来 ...
- 项目案例模板之jdbc两种连接方式
项目案例模板之jdbc两种连接方式 第一种连接方式 JDBCUtils.java package jdbc;import org.junit.jupiter.api.Test;import jav ...
- 数据库驱动和JDBC、DBCP-C3P0连接池
目录 数据库驱动 第一个JDBC程序 statement对象详解 SQL注入问题 PreparedStatement对象 JDBC操作事务 DBCP-C3P0连接池 DBCP C3P0 C3P0与DB ...
- 【翻译自mos文章】对于JDBC thin client连接,ORA-28040 and SQLNET.ALLOWED_LOGON_VERSION_CLIENT
对于JDBC thin client连接,ORA-28040 and SQLNET.ALLOWED_LOGON_VERSION_CLIENT的问题 来源于: ORA-28040 and SQLNET. ...
- JDBC二:连接方式
JDBC连接的方式 引入 五种方式之间是渐进迭代关系,前4种连接方式有助于理解jdbc连接的实质,实际开发中采用最后一种方式 一.方式一 通过第三方API中的实现类进行数据库连接 @Testpubli ...
- jdbc mysql select_java连接mysql数据库并使用jdbc进行查询详解
public Connection getCon() { //数据库连接名称 String username="root"; //数据库连接密码 String password=& ...
- JDBC:使用连接池管理连接
2019独角兽企业重金招聘Python工程师标准>>> 一.数据库连接池 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显 ...
- DOMINO的JDBC和ODBC连接方法
利用ODBC实现Domino和关系数据库的互操作 Lotus Domino是当今办公自动化系统的主流开发平台之一,Domino自带一个非关系型数据库–文档型数据库,而目前大部分企业的信息都储存在 ...
- Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
概述 如何获取本地数据连接 示例从DBCP数据源中获取Oracle的本地连接对象 相关接口操作 LobCreator LobHandler 插入LOB类型的数据 以块数据的方式读取LOB数据 以流数据 ...
最新文章
- LINUX下SVN命令大全
- Centos运行级别和开机过程
- 第一次写KMP的体会
- python多线程_【python多线程02】各种线程锁
- 定义一个不能被拷贝的类
- 避免后台脚本重复启动机制
- 几分钟内学习 Clojure
- eclipse无法添加Tomcat7
- IPHONE 开发 7 -- Object C 02 字符串NSString 与 char* ,字符串的遍历,字符串的比较,截取与大小写改变,搜索字符串与替换字符串...
- 怎样查找html概念,HTML一般概念_html
- angular 创建服务器_使用D3和Angular创建通用的可视化
- 软件开发过程中最重要的是人?还是领导者?
- 用MP3或WAV制作人声铃声的简单教程
- java-家庭作业4
- 神经网络相关的概念和术语
- js修改div标签中的内容
- 3.17 让你的小红书笔记排名更靠前的六个方法【玩赚小红书】
- 怎样看待Android的发展前景?以及Android开发的职业规划
- 蟠桃会(递推逆序求解)
- pycharm 破解方法