社区
Java SE
帖子详情
讨论一下类设计中数据库链接的使用问题!
Tonglu
2005-08-31 11:05:33
大家在程序的设计中一般什么情况下用传入的链接,什么情况直接去链接池里取空闲的链接?
有没有什么心得?或者有什么麻烦?
欢迎大家来讨论。
...全文
324
26
打赏
收藏
讨论一下类设计中数据库链接的使用问题!
大家在程序的设计中一般什么情况下用传入的链接,什么情况直接去链接池里取空闲的链接? 有没有什么心得?或者有什么麻烦? 欢迎大家来讨论。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Tonglu
2005-09-04
打赏
举报
回复
谢谢楼上各位的帮助,结帖先!
Tonglu
2005-09-04
打赏
举报
回复
搞定了,也看了hibernate中的事务处理(幸好找一位仁兄flysnow的例子,看的非常明白,在此特意感谢),如果以后做的话看来真要用hibernate了,毕竟接触的项目在数据库关系上还是比较复杂地。
这次偶偷懒了,把工程中和服务器的SDK换成了J2EE的SDK就全搞定了也不用下什么JTA包了,爽呀。
mxlmwl
2005-09-04
打赏
举报
回复
呵呵,要是还搞不定,就给俺发消息吧,偶不经常看贴的。:)
mxlmwl
2005-09-04
打赏
举报
回复
建议你看看hibernate的事务处理机制
http://dev.csdn.net/article/56/56778.shtm
还有,不是推荐你用apache的commons-dbutils了吗,参考一下它的实现也可以啊,或者直接引用这个包就可以了,把相关部分交给它去做就可以了,你不需要考虑具体的技术实际细节。
你既然采用JTA来进行事务处理,那么jta.jar这个包你引用了么?
Tonglu
2005-09-03
打赏
举报
回复
楼上“wanchao2001(如果可以重来,我还是选择程序员)”兄弟,建议以后回帖时先看帖。这样回答问题即自己宝贵的浪费了时间又赚不到分
Tonglu
2005-09-03
打赏
举报
回复
解释:是不让 import javax.transaction.UserTransaction 这个类,是一个interface 类不知道为什么
具体操作如下:
1、从sun下了个包
2、把打了个javax.jar包放到WEB-INF\lib里面,并在工程里引用这个JAR包
3、打开自己的文件输入 import javax.transaction.UserTransaction;
结果第三步出错,“can not be resolved”,偶晕之
Tonglu
2005-09-03
打赏
举报
回复
楼上 星哥3 帮忙搞定呀,重分酬谢呀
Tonglu
2005-09-03
打赏
举报
回复
:< 又遇到问题了,从sun上下了JTA,打了个JAR包放到工程里面,结果不让 import 从baidu上bai从google上go都没有查到相应的解决方法,为这个问题我都快死了,就为了设计一个合理的程序,楼上帮忙解决一下呀
cyicecream
2005-09-03
打赏
举报
回复
呵呵,事务的控制本来是一直如此,只不过有些程序确实写的不正规,导致后续的人进入误区。
一言难尽,楼主的学习态度不错
Roy_Sashulin
2005-09-03
打赏
举报
回复
我深得你们都没有讲到重点
wanchao2001
2005-09-02
打赏
举报
回复
我也有个事务的方法,给大家看看
//执行事务处理语句
public boolean runTrans(PreparedStatement [] pst){
boolean b=false;
try{
openConnection();
con.setAutoCommit(false);
for(int i=0;i<pst.length;i++){
pst[i].executeUpdate();
}
con.commit();
b=true;
}
catch(Exception e){
try{
con.rollback();
e.printStackTrace();
}
catch(Exception ex){
ex.printStackTrace();
}
}
finally{
try{
for(int i=0;i<pst.length;i++){
pst[i].close();
}
closeConnection();
}
catch(SQLException sqle){
sqle.printStackTrace();
}
}
return b;
}
mingr6370
2005-09-02
打赏
举报
回复
mark
Tonglu
2005-09-02
打赏
举报
回复
解释:果然带星的就是不一样,楼上 两位星哥其实我感觉所说的方法是一样的,不知道星哥们是什么意见,且看下面分解
代码先:
public int delete(int sID) {
DataBaseConnection dbc = null;
dbc = new DataBaseConnection();
dbc.getConnection();
UserTransaction transaction = sessionContext.getUserTransaction();//获得JTA事务
try {
transaction.begin(); //开始JTA事务
dbc.executeUpdate("delete from bylaw where ID=" + sID);
dbc.executeUpdate("delete from bylaw _content where ID=" + sID);
dbc.executeUpdate("delete from bylaw _affix where bylawid=" + sID);
transaction.commit(); //提交JTA事务
dbc.close();
return 1;
}
catch (Exception exc) {
try {
transaction.rollback();//JTA事务回滚
}
catch (Exception ex) {
//JTA事务回滚出错处理
ex.printStackTrace();
}
exc.printStackTrace();
dbc.close();
return -1;
}
}
这应该就是"星哥1"所说的transaction ,其实也应该是 "星哥2" 所说的"统一加事务"了
现在发现带星的果然不一样 ^_^
详见:http://dev.csdn.net/article/43/43272.shtm
这种方法的确能解决我的问题,小弟谢楼上客位先,再看两天如果楼下没有反对意见就结帖!
Tonglu
2005-09-02
打赏
举报
回复
to:mxlmwl(飞星)
嫩说的“统一加事务”很吸引人,我得先查点资料,再来参与讨论,楼上 星哥2 (晕,这年头叫星的人可真多呀:>只能加个2区分了),如果有什么资料可提供参考的话最好能共享一下,分不够可以另开帖加分,其实我觉得传来传去也不太合适。
mxlmwl
2005-09-02
打赏
举报
回复
绝对不能传连接,这么传来传去的也不好管理。
只要用一个统一的类就管理连接可以了,如果不用ORM的话,也就是不用hibernate之类的东西了,只用jdbc来实现,你可以参考apache的dbutil包。统一加事务,否则你的程序就是典型的新手上路的程序,实际运行根本不堪一击。
Tonglu
2005-09-01
打赏
举报
回复
楼上的意思是不是指一个业务开始时调用一个Tansaction对象,然后在该业务的执行过程中始终使用一个连接而通过Tansaction在各个方法中进行传递?最后业务完成后统一执行数据库操作?
raul_177
2005-09-01
打赏
举报
回复
学习,前几天写代码的时候也遇到这个问题。
loveyousomuch
2005-09-01
打赏
举报
回复
hibernate
北极猩猩
2005-09-01
打赏
举报
回复
没错,这样的话数据库相关操作可以集中在Transaction类中进行,而不会分散在程序的各处。
Tonglu
2005-08-31
打赏
举报
回复
解释:
1、方法a和方法b
2、方法a要调用方法b
现在方法b也可以直接取取链接池里的资源也可以用方法a中已经取出的链接
像这种情况对于方法b来说直接用方法a的接力链接应该要好一点,
但是如果把所有的类似于b的方法都用他的上一组传入的链接不知道合不合理?
我看大多数都是在b里面直接再取一个链接
像这种情况的话如果在a里面有多步操作需要回滚时b里因为有新的链接所以会造成阻塞
加载更多回复(6)
阿里沈询:高并发网站
中
的
数据库
设计
视频教程
高并发网站
中
的
数据库
设计
视频教程,该课程主要分为3个部分,1、
数据库
的基本组成:KV存储系统、查询优化原理、单机/多机事务概述;2、分布式存储、Key-Value的多机扩展、CAP和分布式系统的一致性;3、阿里
数据库
的...
数据库
表的
设计
流程和思考方向
数据库
设计
的基本步骤 按照规范
设计
的方法,考虑
数据库
及其应用系统开发全过程,将
数据库
设计
分为以下6个阶段 1.需求分析 2.概念结构
设计
3.逻辑结构
设计
4.物理结构
设计
5.
数据库
实施 6.
数据库
的运行和维护
数据库
设计
通常分为6个阶段1(需求分析:分析用户的需求,包括数据、功能和性能需求;2概念结构
设计
:主要采用E-R模型进行
设计
,包括画E-R图;3逻辑结构
设计
:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;4
数据库
物理
设计
:主要是为所
设计
的
数据库
选择合适的存储结构和...
数据库
原理实验三
数据库
综合
设计
实验 实验报告
实验三
数据库
系统
设计
综合实验 1、实验目的 通过实验,使学生掌握
数据库
系统
设计
和开发的一般方法,能够
设计
并实现简单的
数据库
系统。 2、实验要求 熟悉实验室实验环境,掌握实验预备知识,了解实验
中
故障排除的基本方法。实验
中
根据实验要求完成 相应的任务,并独立完成实验报告。 3、实验内容
设计
的
数据库
系统可从以下题目
中
选择,但不限定于以下题目,可自由选择。要求独立完成下列系统所需的
数据库
的需求分析、概念结构
设计
、逻辑结构
设计
、...
数据库
系统
设计
综合实验
数据库
系统
设计
综合实验 实验目的 通过实验,使学生掌握
数据库
系统
设计
和开发的一般方法,能够
设计
并实现简单的
数据库
系统。 实验要求 熟悉实验室实验环境,掌握实验预备知识,了解实验
中
故障排除的基本方法。实验
中
根据实验要求完成相应的任务,并独立完成实验报告。 实验内容
设计
的
数据库
系统可从以下题目
中
选择,但不限定于以下题目,可自由选择。 需提供系统简要的需求分析,给出大体的功能介绍;完成
数据库
的概念结构
设计
,建议用PowerDesigner画出系统的逻辑结构图或物理结构图(也可以
使用
其他工具);任选自己熟悉的数据
如何
设计
一个
数据库
前言 我们知道,软件工程是为了解决软件危机的,它是采用工程的概念、原理、 技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 在软件开发的过程
中
,
数据库
设计
是非常重要的,它需要根据需求分析设抽象出E-R图,逻辑结构
设计
,
数据库
选型,物理
设计
,实施及运维。下面就聊聊那些年
数据库
设计
的那些事。 软件工程 在
问题
定义和可行性分析都做好的前提下,就可以进入需求分析阶段了,通常来讲,一般都有产品部,需求分析往往都是由产品经理和客户去沟通落地形成PRD,跟开发沟通之
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章