酷玩网站6与360N5S哪个好一点

数据库连接池到底有什么用?一个静态的Connection对象不也可以让多个线程共享吗?-Java/Web开发-java-电脑编程网数据库连接池到底有什么用?一个静态的Connection对象不也可以让多个线程共享吗?-Java/Web开发作者:java2000_net 和相关&&我就想不明白为什么 连接池 里面要用缓存一定数量的Connection对象,用一个静态的Connection对象不也可以多线程共享吗?我实在看不出这样会有什么问题,谁能说一下这个问题?public class ConnectionProvider {//a static variable of type Connectionprivate static Connection INSTANCE = initializeConnection();private static Connection initializeConnection() {String driver = &org.gjt.mm..Driver&;String db_url = &jdbc:://127.0.0.1/mydata&;String username = &root&;String password = &root&;Connection conn =try {Class.forName(driver);conn = DriverManager.getConnection(db_url, username, password);System.out.println(conn.getCatalog());} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}System.out.println(conn + &--Connection initialized.&);}//after the initialization work's been done, this method returns the SAME Connection object when requestedpublic static Connection getConnection() {return INSTANCE;}}---------------------------------------------------------以下创建了100个线程,获得同一个Connection对象,并执行一个插入的操作public class Test {public static void main(String args[]) {for(int i = 0; i & 1000; i++) {new MyThread().start();}}}class MyThread extends Thread{public void run() {Connection conn = getConnection();try {//sleep for one second so that other threads have chances to run and obtain the SAME Connection object& Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}doSomethingWithDB(conn);}private Connection getConnection() {return ConnectionProvider.getConnection();}private void doSomethingWithDB(Connection conn) {String sql = &INSERT INTO test(id, content) VALUES(null, ?)&;try {PreparedStatement pstm = conn.prepareStatement(sql);pstm.setString(1, Thread.currentThread().getName());int flag = pstm.executeUpdate();if(flag == 1)System.out.println(Thread.currentThread().getName() + &: Data inserted successfully!&);} catch (SQLException e) {e.printStackTrace();}}}------回答---------------其他回答(7分)---------我觉得连接池就是为了解决资源的频繁分配和释放所造成的问题。为解决这些问题,采用连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量?使用情况,为系统开发?测试及性能调整提供依据。楼主那种做法虽说也实现了,但是从效率上和智能上,都不是太理想,你必须要自己关闭Connection连接,所以,是属于人工的,而数据库连接池是属于智能的!说的不对的地方,请指教!------其他回答(7分)---------我要是一直拿着连接,不释放呢?------其他回答(6分)---------那事务你怎么处理!这样就存在读【脏数据】问题!所以必须分开连接相关资料:|||||||数据库连接池到底有什么用?一个静态的Connection对象不也可以让多个线程共享吗?-Java/Web开发来源网络,如有侵权请告知,即处理!编程Tags:                &                    &&&&自己写的数据库连接池 JAVA 可支持同时连多个数据库
自己写的数据库连接池 JAVA 可支持同时连多个数据库
很棒的数据库多连接池程序,对每个连接可以配置一个连接池,可以对问题连接定时处理,已经在生产上使用,同时支持连接多个数据库,增加修改都支持配置,,所以配置都放置在缓存中,定期刷新。
是用JAVA写的,已经上线的东东,已经经过压力测试 可放心使用。如果压力大时,可适当增加每个连接池的可用数,在DBConfig中配置。
其中init是读取参数,db中连接池的核心程序,config中为配置文件。
若举报审核通过,可奖励20下载分
被举报人:
lishuo210111
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
开发技术下载排行Java中数据库连接池大家一般都用哪一个?
o &nbsp,&nbsp
用DBCP?C3P0?还是有其他的连接池比较好用
DDConnectionBroker
关于伯乐小组
这里有好的话题,有启发的回复和值得信任的圈子。
新浪微博:
推荐微信号
(加好友请注明来意)
- 好的话题、有启发的回复、值得信赖的圈子
- 分享和发现有价值的内容与观点
- 为IT单身男女服务的征婚传播平台
- 优秀的工具资源导航
- 翻译传播优秀的外文文章
- 国内外的精选博客文章
- UI,网页,交互和用户体验
- 专注iOS技术分享
- 专注Android技术分享
- JavaScript, HTML5, CSS
- 专注Java技术分享
- 专注Python技术分享
& 2016 伯乐在线

我要回帖

更多关于 酷玩网站 的文章

 

随机推荐