必威体育Betway必威体育官网
当前位置:首页 > IT技术

javajdbc中的Statement到底是什么,怎么理解,还有其他一些jdbc的概念

时间:2019-06-18 17:44:14来源:IT技术作者:seo实验室小编阅读:74次「手机版」
 

statement

javajdbc中的statement到底是什么,怎么理解

查了些资料

首先,一个连接数据库的,就有一个Connection,然后这个Connection有很多Statement,如果要与请求一次数据库,就要有一个Statement。

还有一个很重要的一个概念,transaction(事务)

因为JDBC默认把auto-commit打开了

所以在connection和statement之间还有一层transaction

一个connection可以进行多个transaction,每个transaction包含多条statement

如果auto-commit打开的话,每个statement都是一个transaction

其次,我们还要要注意关闭的主要是connection,因为它占用底层资源,比如socket

一般来说不建议每次CRUD都建立新的connection,因为非常耗时。但也不建议使用单例,因为一般来说connection不应该在多个线程之间共享(好像JDBC标准规定connection是线程安全的,不过效率会下降,而且具体数据库实现不一定保证线程安全性)。

所以基本上,每个线程应该使用独立的connection,但在该线程之内,该connection是共享的。最简单的做法是为每个新进程创建一个connection,并把引用存放在Threadlocal变量中,然后在进程结束时关闭connection。好一点的做法是使用连接池。有很多第三方Library。或者使用Java EE server提供的连接池。

实际中直接操作JDBC的机会越来越少了,即使不是有ORM框架(比如hibernate),很多项目也都离不开Spring了,spring提供了一整套JDBC优化方案,非常方便。

另外我们为什么要关闭连接(关闭Connection和Statement)

说个形象点的吧 数据库好比一大杯饮料 只给你提供了5根吸管 5个人分别得到一个吸管(getConnection) 然后含着不放(也就是不执行.close())那么第六个人怎么访问数据库呢 为什么双12不好付账 就是因为淘宝这数据库提供的连接有线 被人占用着 你要等到他关闭才能连上

-----------------不登高山,不知天之大;不临深谷,不知地之厚也。-------------- 荀况

相关阅读

prepareStatement的用法和解释

1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程2.使用 Statement 对象。在对数据库只执行一次

PreparedStatement setDate() 和setTimestamp

java.util.Date utilDate=new Date(); java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());

原生JDBC连接数据库

目录 JDBC概述 概述 原理 JDBC入门案例 API详解 java.sql.DriverManager类 java.sql.Connection接口 java.sql.PreparedStatemen

关于jdbc批量操作(addBatch, executeBatch)的测试【转

由于项目上有大批量数据插入和更新的操作,所以使用了jdbc的批量操作功能。在此之前参考了很多文章包括jdbc的手册(https://www.tut

statement 、prepareStatement的用法和解释

转自:http://blog.csdn.net/QH_JAVA/article/details/48245945

分享到:

栏目导航

推荐阅读

热门阅读