关于数据库连接的使用问题

问题描述

[size=xx-large]大环境是这样的,程序获取的是应用服务器(如TOMCAT)提供的数据源的数据库连接。现在的程序有个疑惑,望大家帮我解答,最好能详细说明。比如程序的登陆,需要做A,B,C,D,E5件事情,这5件事情就写了5个方法,每个方法都从数据库取数。那么现在的问题是,这5个方法,只获取一个连接,然后不断把连接作为参数传递的办法好?还是每个方法自己内部新建数据库连接好?最好给答案的时候,能给出解释,谢谢了[/size] 问题补充:wangyu1221 写道

解决方案

我先说一下,ThreadLocal的方式就像你说的,效果上来说和"作为方法参数传递下去"的效果一样,这两种方法都没有返回连接池,都需要你手动来关闭,但是用传递的方式一个是增加了程序的耦合,同时也增加了复杂度,而且放在ThreadLocal还有一个好处就是你可以用动态代理来实现自动的事务处理,也就是说关闭连接也可以做到
解决方案二:
两种办法都不好,建议1(未使用spring):使用ThreadLocal来保存Connection建议2(有使用):使用jdbcTemplate加事务管理
解决方案三:
完全可以使用数据库连接池啊,在你获取数据库连接的时候,获取到的就是池里面的连接,你完全不需要管数据库连接是如何创建如何维护如何销毁的。

时间: 2024-09-29 03:01:21

关于数据库连接的使用问题的相关文章

ef 通过DbCommandInterceptor 修改数据库连接 添加数据异常

问题描述 ef 通过DbCommandInterceptor 修改数据库连接 添加数据异常 我想实现数据库的读写分离 ef6里面加了DbCommandInterceptor的功能可是修改以后 在添加新数据的时候 抛出异常 "基础提供程序在 Commit 上失败 值不能为 null. 参数名: connection"但是数据已经成功添加那位前辈读到过这个问题呢 请指导 public class EntityCommandInterceptor: DbCommandInterceptor

javamelody+c3p0-Javamelody监控jdbc,数据库连接监控的问题

问题描述 Javamelody监控jdbc,数据库连接监控的问题 我用的数据库连接池是c3p0,javamelody么有监控到,怎么配置一下Javamelody让它监控呀!我网上查的 资料都是跟hibernate或者spring一起使用才能监控,如果就只用c3p0可以做到监控吗?哪位大神懂呀!帮帮忙了,谢谢! 解决方案 JavaMelody监控

不能连接数据库-weblogic部署web项目报:连接数据库失败,请检查系统数据库连接配置

问题描述 weblogic部署web项目报:连接数据库失败,请检查系统数据库连接配置 2C youngtop.sys.exception.YoungtopException: 系统错误:youngtop.sys.exception.YoungtopException: 数据库操作错误:errcode=17002sqlstate=08006java.sql.SQLRecoverableException: IO 错误: Software caused connection abort: socke

Python的Flask框架与数据库连接的教程

  这篇文章主要介绍了Python的Flask框架与数据库连接的教程,是Flask框架学习当中的基本知识,需要的朋友可以参考下 命令行方式运行Python脚本 在这个章节中,我们将写一些简单的数据库管理脚本.在此之前让我们来复习一下如何通过命令行方式执行Python脚本. 如果Linux 或者OS X的操作系统,需要有执行脚本的权限.例如: ? 1 chmod a+x script.py 该脚本有个指向使用解释器的命令行.再脚本赋予执行权限后就可以通过命令行执行,就像这样: like this:

一个动态生成数据库连接文件的类

我们知道,数据库连接文件(.udl)可以动态生成各种数据库连接的参数,而且它是一个文本文件.所以我们就可以动态生成,以增强程序的灵活性.但是该文件必须是UNICODE文本文件,不能是普通的ANSI文本文件.因此必须进行数据类型转换. 1.首先定义一个数据库连接结构: struct db{char Server[20];char Database[20];char UserId[20];char Password[20];}; 2.生成数据库连接文件: BOOL CUdlFile::CreateU

PHP教程.数据库连接(1)

教程|数据|数据库|数据库连接 中场一:数据库连接 前两章中集中介绍了PHP语言,现在停下来开始创建一个应用程序.在本章中将创建一个连接MySQL数据库的应用程序. 在学习过前面两章之后,你肯定已经学会了怎样处理PHP内部数据,以及怎样编写语句和函数.下一步从逻辑上讲,应该到了学习如何用SQL(结构化查询语句)处理PHP的外部数据的时候了.但是,在开始学习这部分内容前,让我们暂时中断基本原理的学习,放松一下. 让我带你一道探究PHP应用程序的开发历程.从字面意义上讲,每一个应用程序都应该是独特的

《PHP程序设计》 第五章 中场一:数据库连接

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />          第五章 中场一:数据库连接      前两章中集中介绍了PHP语言,现在停下来开始创建一个应用程序.在本章中将创建一个连接MySQL数据库的应用程序.      在学习过前面两章之后,你肯定已经学会了怎样处理PHP内部数据,以及怎样编写语句和函数.下一步从逻辑上讲,应该到了学习如何用SQL(结构化查询语句

PHP没有数据库连接池怎么破?PHP环境下使用Nginx ngx

线上运行了一套辅助系统是利用了开源的PHP改的,之前也没怎么玩过PHP,没想到这玩意儿还是有不少坑的.突然某一天一个用户做线上活动推广,然后短时间内涌进来了上万的请求,然后数据库连接耗尽,短时间内几乎拖垮了整个系统.导致系统奔溃的有多方面原因,今天主要针对PHP没有数据库连接池的原因来分析. 在PHP里,数据库连接在请求到达时建立,请求结束时释放.如果同时几千个请求到达,那就同时会建立几千个数据库连接,非常恐怖.而且PHP木有比较好的数据库连接池驱动方案,所以我们得另想办法. 解决这种问题有三种

十步搞定Servlet中的mssql2000数据库连接池

servlet|sql|数据|数据库|数据库连接 1.从aspx?FamilyID=4f8f2f01-1ed7-4c4d-8f7b-3d47969e66ae&DisplayLang=en#filelist">http://www.microsoft.com/downloads/details.aspx?FamilyID=4f8f2f01-1ed7-4c4d-8f7b-3d47969e66ae&DisplayLang=en#filelist下载"Microsoft

MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结

js|mysql|编码|汉字|解决|数据|数据库|数据库连接|问题|中文 解决这类问题的方法很多,今天在此简单的终结一下,把常碰到的问题解决方法记下来! 1,   MySQL5.0中文问题解决方案如下:     1.在dos环境下,用mysql --default-character-set=gbk -u root -p 这句话进入mysql~~     2.建数据库.表,如下:         create database admin;         use admin;