jdbc中的离线数据集入门[Java编程]
本文“jdbc中的离线数据集入门[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
假如在开辟利用的时刻没有利用任何长期层框架,而是直接利用jdbc 的api编程的话,大家最长利用的就是ResultSet接口举行数据的读取了,但是大家也会认为很不便利,因为ResultSet是在线的数据集,在读取数据的历程中不能断开数据库联接,只有读取数据完成后才能close掉相关对象.
其实java也供应了离线的数据集,那就是RowSet接口以及相关的 子接口.并且sun在jdk里面供应一个默许的实现,并且象oracle这样对比大型的数据库驱动里面也供应自己的RowSet实现.
下面以sun的默许 实现来阐明离线数据的利用吧,数据库为sql Server 2000,衔接的数据库为Northwind.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.RowSet;
import com.sun.rowset.CachedRowSetImpl;
public class RowSetDemo {
public static RowSet query(Connection connection, String sql)
throws SQLException {
//利用sun的默许RowSet实现
CachedRowSetImpl rowset = new CachedRowSetImpl();
//查询没有任何改变
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(sql);
//这里就是填充离线集
rowset.populate(rs);
//都可以关闭了,爽吧
rs.close();
statement.close();
return rowset;
}
public static void main(String[] args) throws Exception {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://127.0.0.1:1433;database=Northwind;
user=sa;password=huhuiyu";
Connection connection = DriverManager.getConnection(connectionUrl);
RowSet rs = query(connection, "select * from Customers order by CustomerID;");
//关闭衔接也没有关系了.
connection.close();
//和ResultSet利用一样.
while (rs.next()) {
System.out.print(rs.getString(1) + " : ");
System.out.println(rs.getString("CompanyName"));
}
}
}运行上面的例子就会将Customers的前两列的数据显示出来.其实RowSet还可以完成份页的功效.请看下面的办法.
public static RowSet query(Connection connection, String sql, int pageSize,
int pageNumber) throws SQLException {
CachedRowSetImpl rowset = new CachedRowSetImpl();
//如果可以转动的后果集
Statement statement = connection.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = statement.executeQuery(sql);
//设定分页大小
rowset.setPageSize(pageSize);
//计算一下开始游标位置
int skip=(pageNumber - 1) * pageSize + 1;
//可以填充了
rowset.populate(rs, skip);
rs.close();
statement.close();
return rowset;
}
public static void main(String[] args) throws Exception {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://127.0.0.1:1433;database=Northwind;
user=sa;password=huhuiyu";
Connection connection = DriverManager.getConnection(connectionUrl);
//分页查询
RowSet rs = query(connection, "select * from Customers order by CustomerID;",5,2);
//关闭衔接也没有关系了.
connection.close();
//和ResultSet利用一样.
while (rs.next()) {
System.out.print(rs.getString(1) + " : ");
System.out.println(rs.getString("CompanyName"));
}
}
假如你不利用长期层,那么利用离线数据集可以很好的办理分页和数据库衔接的问题.但愿这篇入门的教程可以帮忙到你.
以上是“jdbc中的离线数据集入门[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:Java同享类
- ·下一篇文章:jboss和hibernate配置
- ·中查找“jdbc中的离线数据集入门”更多相关内容
- ·中查找“jdbc中的离线数据集入门”更多相关内容