JDBC

JDBC将连接访问数据标准换了,但是sql语句并没有涉及到,所以说所有的数据库扩展还是可以使用的。在使用标准SQL语句的语法时,JDBC可以在修改少量代码就可以而修改数据库的主机端口甚至数据库提供商。下面讲述一下JDBC的应用。
1)载入JDBC驱动
    如果要载入驱动,只需在Class.forName方法的参数中指定数据库驱动程序的类名。这样就可以自动创建驱动实例,并注册到JDBC驱动管理器中。
2)定义连接URL
    在JDBC中,连接URL指定服务器的主机名,端口以及希望与之建立连接的数据库名。
3)建立连接
    有了URL、用户名和密码,就可以建立到数据库的网络连接。建立之后就可以执行数据库操作,直到关闭连接。
4)创建Statement对象
    建立Statement对象才能向数据库发送命令。(自类的对象也可以)
5)执行查询和更新
    有了Statement对象后,就可以使用execute,executeQuery,executeUpdate或executeBatch方法发送SQL语句到数据库。
6)结果处理
    数据库查询执行完毕之后,返回一个ResultSet。这是一个虚拟在内存中的表,使用next将指针向下移动,使用各种getXXX方法读取行和列的值。
7)关闭连接
    数据库操作完后关闭数据连接释放资源。

建立连接的过程中,一个可选的部分是使用getMetaData方法查找数据库的相关信息。这个方法返回DatabaseMetaData对象该对象拥有相对的方法,可以得出数据库自身的名称和版本或者驱动程序的版本和名称。

执行命令:Statement/PreparededStatement
execute 执行SQL语句,如果第一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在任何结果,则返回 false
executeQuery 执行SQL查询并在SesultSet中返回数据,ResultSet可能为空但是不会为null。
executeUpdate 用于Update,insert,delete 命令,返回受影响行数。
executeBatch 将一组命令作为一个单元执行,返回一个数组,其中存储每个命令的更新计数。addBatch可以向批量执行的命令组添加命令。
setQueryTimeout 执行驱动程序在抛出SQLException之前,等待处理结果的等待时间。
getMaxRows/setMaxRows 确定ResultSet可能容纳的最大行数。超出部分不会警告直接丢弃。
    
ResultSet的一些方法
next/previous 向下向上移动游标
relative/absolutely relative移动指定的行数,或正或负。absolutely移动到指定的行,如果值为负,将从最后一行向前移动指定行数的绝对值
wasNull 检查getXXX读到的是否为SQL的NULL值,
findCloumn 返回给定列名称的列索引
getRow 返回当前列的行号,从1开始

通过CallableStatement可以执行数据库中的存储过程或函数,
原文地址:https://www.cnblogs.com/SXLBlog/p/1622961.html