初篇——目录(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)的主要内容,如果未能解决你的问题,请参考以下文章
❤️爬虫必备->Scrapy框架从黑铁到王者❤️初篇——万字博文详解(建议收藏)