• 数据库程序接口——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/

        

  • 相关阅读:
    模拟数据生成器mock.js入门
    node 常用依赖包
    xss 防范
    tree shaking sideEffects
    创建临时目录tmppromise
    node 防抖或拒绝服务 连接池
    node使用es module
    node child_process 子进程
    node 递归读取目录recursivereaddir
    毫秒时间转换
  • 原文地址:https://www.cnblogs.com/rain144576/p/6884196.html
Copyright © 2020-2023  润新知