在第一个JDBC程序,首先注册了MySql的数据库驱动类,通过DriverManager获取一个Connection对象,然后使用Connection对象
创建Statement对象,Statement对象能够通过executeQuery()方法执行SQL语句。
ResultSet之前操作主要用于存储结果集,并且只能通过next()方法由前向后逐个获取结果集中的数据。但是要想获取结果集中
运行结果:
创建Statement对象,Statement对象能够通过executeQuery()方法执行SQL语句。
ResultSet之前操作主要用于存储结果集,并且只能通过next()方法由前向后逐个获取结果集中的数据。但是要想获取结果集中
的任意数据,则需要在创建Statement对象,设置两个Resultset定义的常量。
具体语句如下:
Statement st=coon.createStatement(ResultSet.TYPE_SCROLL_INSENITIVE,ResultSet.CONCUR_READ_ONLY);
//表示结果及可以滚动,并且以读的形式打开结果集。
ResultSet rs=st.excuteQuery(sql);
程序如下:
package mysql;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mysql.jdbc.Connection;
public class Ex04 {
public static void main(String args[])throws SQLException {
Connection conn=null;
Statement stmt=null;
try{
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/chapter01";
String username="root";
String password="90876";
//创建数据库与应用程序连接的Connection对象
conn=(Connection) DriverManager.getConnection(url,username,password);
String sql="select*from users";
Statement st=conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs=st.executeQuery(sql);
System.out.println("第二条数据的值为:");//将指针定位
rs.absolute(2);
System.out.println(rs.getString("name"));
System.out.println("第一条数据的值为:");
rs.beforeFirst();//将指针定位到结果集中第一行数据之前
rs.next();//指针向后滚动
System.out.println(rs.getString("name"));
System.out.println("第三条数据的值为:");
rs.afterLast();
rs.previous();//指针向后滚动
System.out.println(rs.getString("name"));
}catch(Exception e){
e.printStackTrace();
}finally{ //释放资源
if(stmt !=null){
try{
stmt.close();
}catch(SQLException e){
e.printStackTrace();
}
stmt=null;
}
if(conn !=null){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
conn=null;
}
}
}
}
运行结果:

本文介绍了一个使用Java JDBC操作数据库的示例程序,演示如何通过设置ResultSet的属性实现结果集的前后滚动,以便直接访问任意位置的数据。

3531

被折叠的 条评论
为什么被折叠?



