初篇——目录(JDBC)

Posted 若浮若沉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初篇——目录(JDBC)相关的知识,希望对你有一定的参考价值。

目录                                                             

综述                                                            

JDBC全称为Java database connectivity,作用是通过Java程序与数据库进行交互,交互过程有三个阶段。

建立连接:java程序与数据库建立连接的方式有两种。  

      第一种方式通过驱动类(Driver或DriverManager)来建立连接。驱动方式只能建立物理连接,这种方式创建的Connection对象在执行完SQL语句之后无法被复用,每次请求数据库都需要重新建立连接,创建Connection对象。

     第二种方式是通过数据源(DataSource)的方式来建立连接。

     数据源方式根据数据源的种类决定其建立连接的类型。数据源种类有三种DataSource,PooledDataSource,XADataSource。

     DataSource建立的连接为普通连接,创建Connection对象。

     PooledDataSource建立的连接支持连接池,,每次请求数据库时,都从连接池中获取Connection对象,请求完成之后,Connection对象被连接池回收。

     XADataSource建立的连接支持分布式应用,支持分布式事务,一般分布式应用都支持连接池。

     无论哪种方式,建立连接都需要先加载驱动类,java通过接口Driver来表示驱动类,每种类型的数据库都有自己的实现类,例如Oracle数据库的OracleDriver。

执行SQL:执行SQL语句的对象有三种类型

      Statement用来执行整段SQL语句,SQL语句中没有参数,每次运行都需要重新编译SQL语句。

      PreparedStament继承自statement,SQL语句会预先编译,所以在创建PreparedStatement时,SQL是必要参数。SQL语句可以包含参数占位符”?”,可以根据”?”的位置和其对应的数据类型来传参。它一般用来执行结构不变,而参数值变化的SQL语句。因为有预编译,所以效率比Statement要高。

      CallableStatement用来调用数据库中的存储过程,它需要处理如何给存储过程传参,如何接收存储过程的返回值。

SQL的执行过程与事务相关。事务是一组SQL语句执行的序列。事务具有四个特性:

原子性:SQL语句集合执行要么全部成功,要么全部失败。

隔离性:事务彼此之间是无感知的,事务是彼此独立存在的。

      一致性:事务执行前后数据保持一致的状态,例如A给B汇款,A账户减少了,B账户对应增加。如果A账户减少了,而B账户没有增加,那么数据就处于不一致的状态。

持久性:事务对数据库操作的修改是永久性的。

       处理结果集:将SQL返回的结果集映射为Java对象。数据库中每个表与一个或者多个java类对应,表的列与java类中的属性相对应(数据类型需要兼容),每一条记录都对应java类的一个实例。在结果集映射的过程中,最关键的是java数据类型与数据库数据类型之间的映射关系。。

      结果集可以指定同步方式,遍历方式,关闭方式。

      同步方式:结果集与数据库是否同步,亦即结果集的改变同步到数据库当中,数据库的改变同步到结果集当中。ResultSet.CONCUR_UPDATABLE表示结果集时可更新的,这种方式会同步。ResultSet.CONCUR_READONLY表示结果集是只读的,默认的类型为只读类型

      遍历方式:结果集支持的遍历类型,ResultSet.TYPE_FORWARD_ONLY表示只能从头到尾遍历。ResultSet.TYPE_SCROLL_SENSITIVE表示遍历顺序可以该变,也可以重复遍历(在一次遍历操作中多次遍历相同数据,类似于视频倒退,重播等操作)。ResultSet.TYPE_SCROLL_INSENSITIVE表示数据库的改变不会同步到结果集当中。

      关闭方式:结果集是否随事务提交而关闭,ResultSet.CLOSE_CURSORS_AT_COMMIT 表示会随事务提交而关闭,这种方式是默认方式。ResultSet.HOLD_CUSORS_OVER_COMMIT表示结果集不随事务的提交而关闭。

至此整个交互过程结束,交互结束完成之后需要释放资源,也就是关闭Connection,statement,resultSet等对象。

参考资料                                                    

     在线文档

       Getting Started with the JDBC API 

                                     http://docs.oracle.com/javase/1.5.0/docs/guide/jdbc/getstart/GettingStartedTOC.fm.html

     API:

       JDK 1.8 java.sql,javax.sql包等       http://docs.oracle.com/javase/8/docs/api/

    

以上是关于初篇——目录(JDBC)的主要内容,如果未能解决你的问题,请参考以下文章

C++入门,初篇

C++入门,初篇

C++入门,初篇

❤️爬虫必备->Scrapy框架从黑铁到王者❤️初篇——万字博文详解(建议收藏)

❤️爬虫必备->Selenium从黑铁到王者❤️初篇——万字博文详解

❤️爬虫必备->Selenium从黑铁到王者❤️初篇——万字博文详解(建议收藏)