JDBC
数据库本身是个独立运行的应用程序
撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找。
JDBC(Java DataBase Connectivity)是Java联机数据库的标准规范。
定义一组标准类与接口,应用程序需要联机数据库时调用这组标准API,标准API中接口会由数据库厂商操作,称为JDBC驱动程序。
JDBC标准分为两部分
JDBC应用程序开发者接口
JDBC驱动程序开发者接口
依操作方式可将驱动程序分为四种类型:JDBC-ODBC Bridge Driver;Native API Driver;JDBC-Net Driver;Native Protocol Driver。
Connection接口的操作对象是数据库联机代表对象,要取得Connection操作对象,可以通过DriverManager的getConnection(),除了基本的用户名称、密码之外,还必须提供JDBC URL,其定义了连接数据库时的协议、子协议、数据源识别。
取得Connection对象之后,可以使用isClosed()方法测试与数据库连接是否关闭。在操作完之后,若确定不再需要连接,则必须使用close()来关闭与数据库的连接,以释放链接是相关的必要资源。

取得Connection操作对象
“协议”在JDBC URL中总是jdbc开始,“子协议”是桥接的驱动程序、数据库产品名称或联机机制,“数据源识别”标出数据库的地址、端口号、名称、用户、密码等信息。

关闭Connection操作对象
取得Connection对象后,使用isClosed()方法测试与数据库的连接是否关闭,不再需要连接必须使用close()来关闭与数据库的连接,以释放连接时相关的必要资源,可以使用尝试自动关闭资源语法

使用Statement、ResultSet
执行SQL,必须取得java.sql.Statement,使用Connection的createStatement()建立Statement对象。
取得Statement对象后,使用executeUpdate()(在表中插入一笔数据,返回int结果,表示数据变动的笔数)、executeQuery()(用于SELECT等查询数据库的SQL,返回java.sql.ResultSet对象,代表查询结果,会是一笔一笔的数据)。
Statement或ResultSet不使用时,使用close()关掉,Statement关闭时,所关联的ResultSet也会自动关闭。

日期时间在JDBC中,并不是使用java.util.Date,这个对象可代表的日期时间格式是“年、月、日、分、秒、毫秒”,在JDBC中要表示日期,是使用java.sql.Date,其日期格式是“年、月、日”,要表示时间的话则是使用java.sql.Time,其格式时间为”时、分、秒”,java.sql.Timestamp表示“时、分、秒、微秒”的格式。
在ResultSet时,默认可以使用next()移动数据光标至下一笔数据,而后使用getXXX()方法来取得数据
在数据光标移动的API上,可以使用absolute()、afterLast()、beforeFirst()、first()、last()进行绝对位置移动,使用relative()、previous()、next()进行相对位置移动,移动成功返回true。
可使用isAfterLast()、isBeforeFirst()、isFrist()、isLast()判断当前位置。
交易的四个基本要求是原子性、一致性、隔离行为与持续性,依英文字母首字母简称为ACID。
在交易管理时,仅想要撤回某个SQL执行点,则可以设定存储点。

幻读:同一交易期间,读取到的数据笔数不一致。
批次更新
使用addBatch()方法来收集SQL,并使用executeBatch()方法将所收集的SQL传送出去。
SQL的执行顺序就是addBath()时的顺序
Blob与Clob
JDBC中提供了java.sql.Blob与java.sql.Clob两个类分别代表BLOB与CLOB数据。
通过PreparedStatement的setBlob()来设定Blob对象,读取数据时,可以通过ResultSet的getBlob()取得Blob对像。

反射与类加载器

Java真正需要某个类时才会载入对应的.class文档, java.lang.Class 的实例代表Java应用程序运行时载入的.class文档,Class类没有公开(public)构造函数,实例是由JVM自动产生,可以通过Object的getClass()方法,或者是透过.class常量取得每个对象对应的Class对象。
可以使用Class.forName()方法实现动态加载类,Class.forName()方法在找不到指定类时会抛出ClassNotFoundException异常。
Class对象加载的.class文档,取得Class对象后,就可以取得.class文档中记载的信息,每个类型都会有对应的类型,如果事先不知道类名称,可以利用Class.forName()动态加载.class文档,取得Class对象之后,利用其newInstance()方法建立类实例。
类加载指的是将类的class文件读入JVM,并为之创建一个Class对象。
JVM预定义的三种类型类加载器,当一个JVM启动的时候,开始使用如下三种类型类装入器:
启动(Bootstrap)类加载器:引导类装入器是用本地代码实现的类装入器,它负责将 /lib下面的核心类库或-Xbootclasspath选项指定的jar包加载到内存中。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。
扩展(Extension)类加载器:扩展类加载器是由Sun的ExtClassLoader(sun.misc.Launcher$ExtClassLoader)实现的。它负责将< Java_Runtime_Home >/lib/ext或者由系统变量-Djava.ext.dir指定位置中的类库加载到内存中。开发者可以直接使用标准扩展类加载器。
系统(System)类加载器:系统类加载器是由 Sun的 AppClassLoader(sun.misc.Launcher$AppClassLoader)实现的。它负责将系统类路径java -classpath或-Djava.class.path变量所指的目录下的类库加载到内存中。开发者可以直接使用系统类加载器。
Bootstrap Loader、Extended Loader与System Loader在程序启动后,就无法再改变它们的搜索路径。如果在程序运行过程中,打算动态决定从其他路径加载类,就要产生新的类加载器,新的类加载器建立后,父加载器会设为System Loader。

交易简介
隔离行为的支持上,JDBC可以通过Connection的getTransactionIsolation()取得数据库目前的隔离行为设定,通过setTransactionIsolation()可提示数据库设定指定的隔离行为,可设定常数是定义在Connection上,对交易不设定隔离行为TRANSACTION_NONE。

metadata简介
诠释数据的数据;JDBC,通过Connection的getMetaData()方法取得DatabasemetaData对象,通过该对象提供的方法取得数据库整体信息,Result表示查询到的数据。
git上传代码截图:

最新文章

  1. 细分java环境中的JDK、JVM、JRE
  2. Node.js-安装配置【1】-在Windows XP系统配置环境变量
  3. IOS第七天(6:UiTableView编辑模式, 拖动位置 ,滑动删除)
  4. Selenium2+python自动化23-富文本(自动发帖)
  5. js 日期时间比较
  6. Android Socket通信
  7. IOS显示九宫格列表
  8. SCOI2009windy数
  9. 深入浅出Node.js (9) - 玩转进程
  10. NGINX Load Balancing - HTTP Load Balancer
  11. python系统编码转换
  12. ospf精确宣告地址
  13. 【Revit API】梁的净高分析
  14. Tensorflow之训练MNIST(1)
  15. JTAG Level Translation
  16. C的格式化输入输出
  17. wepy中如何使用stylus等样式预处理器
  18. LeetCode312. Burst Balloons
  19. poj 1659 Frogs' Neighborhood( 青蛙的邻居)
  20. Kubernetes 1.5.3 部署

热门文章

  1. xcode import pod 文件不提示
  2. SharePoint 2010 究竟需要占用多少服务器资源?
  3. java,eclipse中如何添加httpclient.jar
  4. Suggestion: use tools:overrideLibrary=&quot;android.support.v17.leanback&quot; to force usage
  5. JavaScript 获取 当前日期和三十天以前日期
  6. 浏览器中使用calc不识别
  7. kinectV2平面检测
  8. unity简单例子
  9. windows 平台使用 VS2017 编译 libevent 源码
  10. ID3和C4.5、CART