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");
}
}
分享到:
相关推荐
如果需要更新结果集,可以使用`ResultSet.CONCUR_UPDATABLE`。 接下来,执行SQL查询并获取结果集: ```java String sql = "SELECT * FROM my_table"; ResultSet rs = stmt.executeQuery(sql); ``` 现在,rs是一个...
- **可滚动可更新结果集**:允许程序在结果集中向前/向后滚动,并对结果进行修改。 - **批处理**:允许一次性提交多个SQL命令,减少网络通信,提高效率。 - **事务**:确保数据库操作的一致性和完整性,可以回滚...
滚动窗口回归的基本思想是,随着时间的推移,用一个固定大小的窗口滑过数据集,每次窗口移动时都会建立一个新的回归模型。这可以用于分析系数如何随时间变化,从而揭示潜在的周期性模式或趋势。在轧棉机的场景中,...
最直接的方法是在创建`Session`时指定查询结果集为可滚动类型(scrollable)。这可以通过在Hibernate配置文件中设置`hibernate.connection.autocommit`属性为`false`,并在查询前手动设置事务,然后通过`Session`的`...
这包括建立连接、执行SQL查询、获取结果集以及关闭连接。 2. SQL查询:编写SQL语句来获取需要滚动的信息,可能涉及到SELECT、JOIN、WHERE等操作,以满足不同需求。 3. PHP数组处理:将查询结果转换为PHP数组,便于...
8. **调试技巧**:使用示波器检查信号波形,逻辑分析仪检查数据流,以及使用如Keil uVision等IDE进行代码调试都是开发过程中必不可少的步骤。 9. **毕业论文撰写**:毕业论文通常需要包含项目背景、系统设计、硬件...
"结果截图"可能包含了模型在训练和验证集上的性能指标,如准确率、精度、召回率和F1分数。 5. **模型保存与复用**:在"models_save"目录下,训练好的模型将被保存,以便后续使用或部署。这通常使用pickle或其他序列...
滚动游标是一种特殊的游标类型,允许用户在结果集上向前或向后移动,甚至跳转到特定位置。 #### 什么是滚动游标? 滚动游标是ESQL/C中一种重要的数据库操作工具,用于处理结果集。与普通的只进游标不同,滚动游标...
本文档《常用滚动轴承CAD及三维图库构建.pdf》详细阐述了在CAD系统中创建集设计与绘图功能于一体的滚动轴承系统,以及开发了适用于常用滚动轴承的三维参数化图形库的全过程。该系统通过自动化设计,实现了参数化绘图...
- 创建可更新结果集时,需要指定并发性类型,如 `ResultSet.CONCUR_UPDATABLE`,并配合 `ResultSet.TYPE_SCROLL_INSENSITIVE` 或 `ResultSet.TYPE_SCROLL_SENSITIVE` 使用。 - 更新结果集中的数据通常涉及 `update...
在深入本章节之前,我们先来了解Java数据库编程的基本概念和知识点,本章节主要涉及Java数据库连接(JDBC)的高级特性,包括通用SQL客户端的创建、SQL语句的批处理执行、可滚动和可更新结果集的处理、使用RowSet简化...
在Android开发中,创建一个可滚动的多选抽签应用是一项常见的需求,这通常涉及到UI设计、事件处理以及数据管理等多个方面。这个"Android例子源码多选滚动抽签小例子"提供了一个实用的示例,帮助开发者了解如何实现...
- `rs.updateXXX(int column, XXX data)` 和 `rs.updateXXX(String columnName, String data)`:用于更新结果集当前行中的特定列,`XXX`表示数据类型(如int、double、String、Date等)。 - `rs.updateRow()`:将...
- `rs.updateRow()`:更新结果集中的当前行,并将更改同步到数据库。 使用这些方法,开发者可以在ResultSet对象中进行数据的读取、定位、插入、删除和更新,实现灵活的数据操作。注意,不是所有ResultSet都支持...
- 更新表格内容,显示查询结果。 #### 补充示例代码 提供的部分代码展示了如何创建一个简单的`JTable`并进行基本的操作,如添加数据、删除数据等。这段代码有助于理解如何在实际项目中使用这些组件。 #### 总结 ...
3. **执行SQL获取可滚动结果集**:同样构造SQL语句,但这次使用可滚动的Statement对象执行。 4. **定位游标并显示数据**:通过`rs.absolute(p)`方法将游标定位到当前页面的第一条记录,然后按需遍历并显示结果。 在...
滚动预测是一种常用的时间序列分析方法,它通过逐步增加新的观察数据来更新模型预测,从而提高预测的准确性。在这个例子中,我们关注的是大蒜价格的时间序列预测,使用了自回归积分滑动平均模型(ARIMA)。ARIMA模型...
- 预编译的可滚动记录集:创建`PreparedStatement`时同样指定这些属性,使预编译的SQL返回可滚动的结果集。 5. **批量更新** - `Statement`批量更新:通过调用`addBatch()`添加多个SQL语句,然后调用`...
5. **更新列表框**:将过滤后的结果重新填充到MFCComboBox的列表框部分。你可以使用AddString或InsertString函数添加匹配项。 6. **处理选择**:当用户从列表中选择一个项时,可以触发相应的事件处理函数,例如...