初篇——目录(JDBC)

Posted 若浮若沉

tags:

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

综述                                                                      

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

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

      第一种方式通过驱动类(DriverManager)来建立连接。驱动方式只能建立普通连接,普通连接的方式创建的Connection对象在执行完SQL语句之后无法被复用,每次交互都要重新创建connection对象。

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

      数据源方式可以创建连接池,这种方式可以复用Connection对象,在交互完成之后,调用Connection对象的close方法,该Connection对象又可以被重新分配。

数据源方式还可以创建分布式应用的Connection对象,一般分布式应用的Connection对象都支持连接池。

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

执行SQL:SQL分为三种类型

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

      PreparedStament继承自statement,SQL语句中有参数占位符”?”,可以根据”?”的位置和其对应的类型来添加参数,它一般用来执行SQL结构不变,而参数值变化的SQL语句。多次运行只需要编译一次,所以效率比Statement要高。

CallableStatement用来调用数据库中的存储过程,它需要提供额外的方法来处理如何给存储过程提供参数,如果处理存储过程的返回值。

SQL的执行过程与事务相关。事务是一组执行的SQL语句集合。事务具有以下几个特性:

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

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

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

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

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

结果集可以是只读的(readonly),也可以是可更新的(updateable),也可以是可滚动的(scrollable)。

只读结果集:结果集不可以被修改。

可更新结果集:结果集的改变在数据库和程序中保持同步。

可滚动结果集:遍历结果集时可以从前到后遍历,也可以遍历过程中重新遍历已经遍历过的数据。

至此整个交互过程结束,交互结束完成之后需要释放资源,也就是关闭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从黑铁到王者❤️初篇——万字博文详解(建议收藏)