`
Luob.
  • 浏览: 1590380 次
  • 来自: 上海
社区版块
存档分类
最新评论

可滚动 ,可更新的 结果集

    博客分类:
  • JDBC
阅读更多
package com.enhance.jdbc;

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Properties;

public class ResutSetTest {

	private String driver;
	private String url;
	private String user;
	private String pass;
	private Connection conn;
	private ResultSet rs;
	private PreparedStatement pstmt;
	public void initParam(String paramFile) throws Exception{
		Properties prop=new Properties();
		prop.load(new FileInputStream(paramFile));
		driver=prop.getProperty("driver");
		url=prop.getProperty("url");
		user=prop.getProperty("user");
		pass=prop.getProperty("pass");
	}
	//ResultSetType:控制ResulSet的类型
	//ResultSet.TYPE_FORWARD_ONLY  :控制指针只能向前移动  (jdk1.4的默认值)
	//ResultSet.TYPE_SCROLL_INSENSITIVE :指针可以自由移动,但底层数据改变不会影响ResultSet的内容
	//ResultSet.TYPE_SCROLL_SENSITIVE :指针可以自由移动,而且 底层数据改变会影响ResultSet的内容
	
	//ResultSetConcurrency:控制ResultSet的并发类型
	//ResultSet.CONCUR_READ_ONLY :指示ResultSet是只读的并发模式 (默认)
	//ResultSet.CONCUR_UPDATABLE :指示ResultSet是可更新的并发模式
	public void query(String sql) throws Exception{
		
		try{
			Class.forName(driver);
			conn=DriverManager.getConnection(url,user,pass);
			
			Statement stmt=conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
			
			//加入参数设定 后 ,得到一个可自由滚动 和 可以修改  pstmt
			pstmt=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
			//ResultSet.TYPE_FORWARD_ONLY
			//ResultSet.TYPE_SCROLL_INSENSITIVE
			//ResultSet.TYPE_SCROLL_SENSITIVE
			
			rs=pstmt.executeQuery();
			
			//定位到最后
			rs.last();
			int rowCount=rs.getRow();
			ResultSetMetaData rsmd=rs.getMetaData();
			int columnCount=rsmd.getColumnCount();
			for (int j = rowCount; j >0; j--) {
				rs.absolute(j); //跳到指定的行
				for(int i=0;i<columnCount;i++){
					System.out.print(rsmd.getColumnName(i+1)+"---\t--"+rsmd.getColumnType(i+1)+"---\t--"+rs.getString(i+1)+"\t----|-");
				}
				//进行修改 
				rs.updateString(2, "飞天猪"+j);
				rs.updateRow(); //提交修改
				
				System.out.println();
			}
		}finally{
			if(rs!=null)
				rs.close();
			if(pstmt!=null)
				pstmt.close();
			if(conn!=null)
				conn.close();
		}
		
	}
	
	public static void main(String[] args) throws Exception{
		ResutSetTest rst=new ResutSetTest();
		rst.initParam("src/mysql.ini");
		rst.query("select * from my_test");
		
	}
	
	
}

分享到:
评论

相关推荐

    JAVA100例之实例55 可滚动结果集

    如果需要更新结果集,可以使用`ResultSet.CONCUR_UPDATABLE`。 接下来,执行SQL查询并获取结果集: ```java String sql = "SELECT * FROM my_table"; ResultSet rs = stmt.executeQuery(sql); ``` 现在,rs是一个...

    java数据库编程 与sql数据库怎样连接

    - **可滚动可更新结果集**:允许程序在结果集中向前/向后滚动,并对结果进行修改。 - **批处理**:允许一次性提交多个SQL命令,减少网络通信,提高效率。 - **事务**:确保数据库操作的一致性和完整性,可以回滚...

    matlab开发-滚动窗口回归轧棉机

    滚动窗口回归的基本思想是,随着时间的推移,用一个固定大小的窗口滑过数据集,每次窗口移动时都会建立一个新的回归模型。这可以用于分析系数如何随时间变化,从而揭示潜在的周期性模式或趋势。在轧棉机的场景中,...

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    最直接的方法是在创建`Session`时指定查询结果集为可滚动类型(scrollable)。这可以通过在Hibernate配置文件中设置`hibernate.connection.autocommit`属性为`false`,并在查询前手动设置事务,然后通过`Session`的`...

    PHP程序-无尽畅游提供的PHP版的站内滚动信息版&nbsp;

    这包括建立连接、执行SQL查询、获取结果集以及关闭连接。 2. SQL查询:编写SQL语句来获取需要滚动的信息,可能涉及到SELECT、JOIN、WHERE等操作,以满足不同需求。 3. PHP数组处理:将查询结果转换为PHP数组,便于...

    基于51单片机的16*16点阵滚动显示

    8. **调试技巧**:使用示波器检查信号波形,逻辑分析仪检查数据流,以及使用如Keil uVision等IDE进行代码调试都是开发过程中必不可少的步骤。 9. **毕业论文撰写**:毕业论文通常需要包含项目背景、系统设计、硬件...

    【代码分享】手把手教你:基于深度学习的滚动轴承故障诊断

    "结果截图"可能包含了模型在训练和验证集上的性能指标,如准确率、精度、召回率和F1分数。 5. **模型保存与复用**:在"models_save"目录下,训练好的模型将被保存,以便后续使用或部署。这通常使用pickle或其他序列...

    21.在ESQL/C中有效使用滚动游标.doc

    滚动游标是一种特殊的游标类型,允许用户在结果集上向前或向后移动,甚至跳转到特定位置。 #### 什么是滚动游标? 滚动游标是ESQL/C中一种重要的数据库操作工具,用于处理结果集。与普通的只进游标不同,滚动游标...

    常用滚动轴承CAD及三维图库构建.pdf

    本文档《常用滚动轴承CAD及三维图库构建.pdf》详细阐述了在CAD系统中创建集设计与绘图功能于一体的滚动轴承系统,以及开发了适用于常用滚动轴承的三维参数化图形库的全过程。该系统通过自动化设计,实现了参数化绘图...

    JDBCJDBC高级应用

    - 创建可更新结果集时,需要指定并发性类型,如 `ResultSet.CONCUR_UPDATABLE`,并配合 `ResultSet.TYPE_SCROLL_INSENSITIVE` 或 `ResultSet.TYPE_SCROLL_SENSITIVE` 使用。 - 更新结果集中的数据通常涉及 `update...

    java语言程序设计Bonus chapter38

    在深入本章节之前,我们先来了解Java数据库编程的基本概念和知识点,本章节主要涉及Java数据库连接(JDBC)的高级特性,包括通用SQL客户端的创建、SQL语句的批处理执行、可滚动和可更新结果集的处理、使用RowSet简化...

    Android例子源码多选滚动抽签小例子

    在Android开发中,创建一个可滚动的多选抽签应用是一项常见的需求,这通常涉及到UI设计、事件处理以及数据管理等多个方面。这个"Android例子源码多选滚动抽签小例子"提供了一个实用的示例,帮助开发者了解如何实现...

    javaResultSet常用方法.pdf

    - `rs.updateXXX(int column, XXX data)` 和 `rs.updateXXX(String columnName, String data)`:用于更新结果集当前行中的特定列,`XXX`表示数据类型(如int、double、String、Date等)。 - `rs.updateRow()`:将...

    ResultSet常用方法

    - `rs.updateRow()`:更新结果集中的当前行,并将更改同步到数据库。 使用这些方法,开发者可以在ResultSet对象中进行数据的读取、定位、插入、删除和更新,实现灵活的数据操作。注意,不是所有ResultSet都支持...

    Java数据库查询结果的输出

    - 更新表格内容,显示查询结果。 #### 补充示例代码 提供的部分代码展示了如何创建一个简单的`JTable`并进行基本的操作,如添加数据、删除数据等。这段代码有助于理解如何在实际项目中使用这些组件。 #### 总结 ...

    实验4 附加_分页显示1

    3. **执行SQL获取可滚动结果集**:同样构造SQL语句,但这次使用可滚动的Statement对象执行。 4. **定位游标并显示数据**:通过`rs.absolute(p)`方法将游标定位到当前页面的第一条记录,然后按需遍历并显示结果。 在...

    滚动预测1

    滚动预测是一种常用的时间序列分析方法,它通过逐步增加新的观察数据来更新模型预测,从而提高预测的准确性。在这个例子中,我们关注的是大蒜价格的时间序列预测,使用了自回归积分滑动平均模型(ARIMA)。ARIMA模型...

    JAVA数据库编程技巧

    - 预编译的可滚动记录集:创建`PreparedStatement`时同样指定这些属性,使预编译的SQL返回可滚动的结果集。 5. **批量更新** - `Statement`批量更新:通过调用`addBatch()`添加多个SQL语句,然后调用`...

    查询数据集

    5. **更新列表框**:将过滤后的结果重新填充到MFCComboBox的列表框部分。你可以使用AddString或InsertString函数添加匹配项。 6. **处理选择**:当用户从列表中选择一个项时,可以触发相应的事件处理函数,例如...

Global site tag (gtag.js) - Google Analytics