jdbc

Connection对象,代表与数据源进行的唯一会话。
connection = DriverManager.getConnection(url,"user","password");
1.close(),  关闭该数据库连接
2. commit(), 提交所有更改内容并释放该Connection对象锁定的资源
3. createStatement(), 基于本Connection对象,创建Statement对象
4. getAutoCommit(),  获取当前是否是自动提交模式
5. getMetaData(), 获取本连接相关的数据库元数据
6. isClosed(), 返回当前连接对象是否已经被关闭
7. preparedStatement(), 基于本连接对象,创建PreparedStatement对象
8. rollback(), 取消本轮事务中前面已经提交的更改
9. setAutoCommmit(), 设置是否自动提交

Statement
Statement 是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。Statement对象,用于执行不带参数的简单SQL语句。

在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象。
因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成的。
如果存在某个语句的打开的当前 ResultSet 对象,则 Statement 接口中的所有执行方法都会隐式关闭它。

Statement 对象用于将 SQL 语句发送到数据库中。
实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL 语句的包容器:
    Statement、PreparedStatement(它从 Statement 继承而来)和 CallableStatement(它从 PreparedStatement 继承而来)。
它们都专用于发送特定类型的 SQL 语句:
    Statement 对象用于执行不带参数的简单 SQL 语句;
    PreparedStatement 对象用于执行带或不带 IN 参数的预编译 SQL 语句;
    CallableStatement 对象用于执行对数据库已存在的存储过程的调用。    
    
Statement 接口提供了执行语句和获取结果的基本方法;
PreparedStatement 接口添加了处理 IN 参数的方法;
而 CallableStatement 添加了处理 OUT 参数的方法。

Statement pre=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

通用格式为:Statement stmt=con.createStatement(int type,int concurrency);
我们在访问数据库的时候,在读取返回结果的时候,可能要前后移动指针,比如我们先计算有多少条信息,这是我们就需要把指针移到最后来计算,
然后再把指针移到最前面,逐条读取,有时我们只需要逐条读取就可以了。
还有就是有只我们只需要读取数据,为了不破坏数据,我们可采用只读模式,有时我们需要望数据库里添加记录,这是我们就要采用可更新数据库的模式。
下面我们就对其参数进行说明:

参数 int type

ResultSet.TYPE_FORWORD_ONLY 结果集的游标只能向下滚动。

ResultSet.TYPE_SCROLL_INSENSITIVE 结果集的游标可以上下移动,当数据库变化时,当前结果集不变。

ResultSet.TYPE_SCROLL_SENSITIVE 返回可滚动的结果集,当数据库变化时,当前结果集同步改变。

参数 int concurrency

ResultSet.CONCUR_READ_ONLY 不能用结果集更新数据库中的表。

ResultSet.CONCUR_UPDATETABLE 能用结果集更新数据库中的表。

查询语句

ResultSet re=stmt.executeUpdate(SQL语句);用来更新数据库信息或插入数据
ResultSet re=stmt.executeQuery(SQL语句);用来查询数据库信息
当我们使用ResultSet re=stmt.executeQuery(SQL语句)查询后,我们可以使用下列方法获得信息:
public boolean previous() 将游标向上移动,该方法返回boolean型数据,当移到结果集第一行之前时,返回false。
public void beforeFirst 将游标移动到结果集的初始位置,即在第一行之前。
public void afterLast() 将游标移到结果集最后一行之后。
public void first() 将游标移到结果集的第一行。
public void last() 将游标移到结果集的最后一行。
public boolean isAfterLast() 判断游标是否在最后一行之后。
public boolean isBeforeFirst() 判断游标是否在第一行之前。
public boolean ifFirst() 判断游标是否指向结果集的第一行。
public boolean isLast() 判断游标是否指向结果集的最后一行。
public int getRow() 得到当前游标所指向行的行号,行号从1开始,如果结果集没有行,返回0。
public boolean absolute(int row) 将游标移到参数row指定的行号。
如果row取负值,就是倒数的行数,absolute(-1)表示移到最后一行,absolute(-2)表示移到倒数第2行。当移动到第一行前面或最后一行的后面时,该方法返回false


不带参数使用默认值:
createStatement()
=createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY)
这样取得的Statement其执行SQL后得到的ResultSet,将只能使用next()方法逐笔取得查询结果。
您可以在建立Statement物件时指定resultSetType,
可指定的参数有 ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE与 ResultSet.TYPE_SCROLL_SENSITIVE,
在不指定的情况下,预设是第一个,也就是只能使用next()来逐笔取得资料,指定第二个或第三个,则可以使用ResultSet的afterLast()、previous()、absolute()、relative()等方法。

ResultSet是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,
但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等。

原文地址:https://www.cnblogs.com/0914lx/p/7243607.html