`

Trail: JDBC(TM) Database Access(3)

 
阅读更多

java.sql,javax.sql,javax.naming包

 

 默认TYPE_FORWARD_ONLY:结果集只能向前滚动,只能调用next(),不能重定位游标

TYPE_SCROLL_INSENSITIVE,TYPE_SCROLL_SENSITIVE:可以重定位游标

TYPE_SCROLL_INSENSITIVE:底层修改不会反映到结果集

TYPE_SCROLL_SENSITIVE:会实时显示真实数据

 

默认CONCUR_READ_ONLY:不能更新到底层,只是读取

CONCUR_UPDATABLE:可以更新,可以写入

 

 

stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,//可滚动,实时显示
                   ResultSet.CONCUR_UPDATABLE);//可写入
        ResultSet uprs = stmt.executeQuery(
            "SELECT * FROM " + dbName + ".COFFEES");

        while (uprs.next()) {
            float f = uprs.getFloat("PRICE");
            uprs.updateFloat( "PRICE", f * percentage);//设置某列
            uprs.updateRow();//提交
        }

 

 stmt = con.createStatement(
            ResultSet.TYPE_SCROLL_SENSITIVE
            ResultSet.CONCUR_UPDATABLE);

        ResultSet uprs = stmt.executeQuery(
            "SELECT * FROM " + dbName +
            ".COFFEES");

        uprs.moveToInsertRow();//准备插入
        uprs.updateString("COF_NAME", coffeeName);
        uprs.updateInt("SUP_ID", supplierID);
        uprs.updateFloat("PRICE", price);
        uprs.updateInt("SALES", sales);
        uprs.updateInt("TOTAL", total);

        uprs.insertRow();//提交
        uprs.beforeFirst();//游标不能再指向这里

 

 

RowSet对象都是JavaBean组件

如果数据库不支持游标滚动,也不支持实时更新,可以用RowSet替代

RowSet有保持连接的和离线的两种

 

 

public void createProcedureGetSupplierOfCoffee()
    throws SQLException {

    String createProcedure = null;

    // ...

    createProcedure =
        "create procedure GET_SUPPLIER_OF_COFFEE(" +
        "IN coffeeName varchar(32), " +//in
        "OUT supplierName varchar(40)) " +//out
        "begin " +
            "select SUPPLIERS.SUP_NAME into " +
            "supplierName " +
            "from SUPPLIERS, COFFEES " +
            "where SUPPLIERS.SUP_ID = " +
            "COFFEES.SUP_ID " +
            "and coffeeName = COFFEES.COF_NAME; " +
            "select supplierName; " +
        "end";
    // ...
}

 

createProcedure =
        "create procedure RAISE_PRICE(" +
        "IN coffeeName varchar(32), " +
        "IN maximumPercentage float, " +
        "INOUT newPrice numeric(10,2)) " +//inout
        "begin " +
        "main: BEGIN " +
            "declare maximumNewPrice " +
                "numeric(10,2); " +
            "declare oldPrice numeric(10,2); " +
            "select COFFEES.PRICE into oldPrice " +
...

 

cs = this.con.prepareCall("{call GET_SUPPLIER_OF_COFFEE(?, ?)}");
cs.setString(1, coffeeNameArg);
cs.registerOutParameter(2, Types.VARCHAR);
cs.executeQuery();

String supplierName = cs.getString(2);

 

cs = this.con.prepareCall("{call RAISE_PRICE(?,?,?)}");
cs.setString(1, coffeeNameArg);
cs.setFloat(2, maximumPercentageArg);
cs.registerOutParameter(3, Types.NUMERIC);
cs.setFloat(3, newPriceArg);

cs.execute();

Because the parameter newPrice (the third parameter in the procedure

 

 

分享到:
评论

相关推荐

    vsce-sourcetrail:VS Code Extension使编辑器与Sourcetrail同步-Source code editor

    VS代码的Sourcetrail扩展 此扩展使VS Code可以与进行通信 链接 项目主页,新闻: 说明文件: 下载,评论: 代码,问题: 特征 插件设置 通过上下文菜单将VS Code中的位置发送到Sourcetrail 显示插件是否连接...

    proton_trail:Godot引擎的3D Trail附加组件

    ProtonTrail-Godot的3D Trail插件 概述 Godot Engine的3D Trail自​​定义节点 在运行时生成 可调分辨率 它只是一个网格,因此您可以在其上应用自己的材料 如何使用 将存储addons到您的addons文件夹 转到Project ...

    technoutlarsh-trail:现在不行

    3. **社区支持**:React和Angular拥有庞大的社区,提供丰富的资源和解决方案,但较小的框架可能更新更快,风险也相对较高。 4. **性能**:React通过虚拟DOM提高了性能,而Vue.js则有优秀的性能优化策略。 5. **生态...

    Trail:Scala平台的路由库

    Trail 是一个专为 Scala 平台设计的轻量级路由库,主要应用于 Web 开发领域。它提供了简洁、高效的 API,使得开发者能够方便地构建和管理应用的路由规则。Trail 的设计目标是零依赖,这意味着它不依赖任何外部库,这...

    sequelize-paper-trail:Sequelize插件,用于跟踪模型实例的修订历史记录

    续篇论文集 想要的帮助:请尝试sequelize-paper-trail@3.0.0-rc.6并给 :...const sequelize = new Sequelize ( 'database' , 'username' , 'password' ) ; 然后添加Sequelize Paper Trail很简单: const PaperTrail =

    trail:Trail 是一个协作的实时任务管理环境

    Trail 是一个协作的实时任务管理环境。 堆 Trail 的客户端使用 AngularJS 构建,使用 Firebase 作为持久性服务。 Trail 还使用 NodeJS 服务器来存储附加(外围)数据。 服务 Firebase:用于获得实时用户体验。 所有...

    vim-sourcetrail:用于与Sourcetrail通信的Vim插件

    vim-sourcetrail Vim插件可将光标位置与同步。 安装 使用您选择的插件管理器。 git clone https://github.com/CoatiSoftware/vim-sourcetrail ~/.vim/bundle/vim-sourcetrail 将Plugin 'CoatiSoftware/vim-source...

    trail:审核跟踪日志服务

    Trail是一种模块化且灵活的审核跟踪日志服务。 特征 作为独立服务器运行或扩展现有服务 具有灵活架构的Postgres后端 REST和GraphQL接口 支持Fastify和Hapi框架 文献资料 完整文档可在或docs/文件夹中找到。 执照 ...

    matlabauc代码-Trail:踪迹

    Matlab的耳语鼻咽癌 这是一个matlab演示,展示了如何计算源自6种特征选择方法和7种分类器的42种交叉组合的诊断性能(区分局部复发与炎症)。 引文: [1]杜东阳,吕文兵等。 用于从治疗后鼻咽18F-FDG ...

    Paper-Trail:OSU Hackathon 2021年Spring

    "Paper-Trail: OSU Hackathon 2021年Spring"是一个编程竞赛项目,可能由俄亥俄州立大学(OSU)的学生在2021年春季黑客马拉松活动中创建。项目名称“纸足迹”暗示它可能关注的是数据跟踪、环境保护或信息记录方面的...

    trail:这是一个用于跟踪的存储库 - 一种跟踪日志的新方法

    这是一个用于跟踪的存储库 - 一...启动 Trail 的步骤: cd kibana/样品 节点服务器.js 转到浏览器并启动: 笔记: 确保 elastic-search 在 localhost:9200 上运行 在elastic-search中保留一些数据以便能够开始查询

    D3-trail:D3 的路径布局

    D3 步道布局 这是用于在 D3 中创建路径的布局函数,其中(与原生 d3.svg.line() 元素不同)您需要将特定的美学应用到行的每个元素。 演示 最初的用例是具有衰减不透明度的轨迹来表示运动:这是一个示例图像: (即将...

    ML-model-deployment-trail:通过在heroku上部署来测试Web API

    3. **配置应用**:在Heroku应用中配置必要的环境变量,例如数据库连接字符串、API密钥等。这些变量可以通过`heroku config:set`命令添加。 4. **代码推送**:使用Git将你的项目代码推送到Heroku。首先,你需要在...

    trail:将Laravel命名路由导出到JavaScript的另一种尝试

    踪迹该软件包将公开一个@trail刀片指令,您可以将其包含在主刀片或布局文件中。 此刀片指令公开了一个Trail JavaScript对象,该对象包含config和应用程序具有的命名路由的集合。 如果您知道我的意思,该指令还公开了...

    yii-audittrail:AuditTrail Yii Extension的分支

    审计足迹这基本上是对在上进行的先前扩展的修改。 我基本上已经清理了一些代码,并对此扩展中捆绑的行为做了一些补充。安装扩展安装方法已更改。 由于以下原因,我无需安装模块: 它仅为审核日志窗口小部件提供了...

    paper_trail:跟踪对Rails模型的更改

    PaperTrail 跟踪模型的更改,以进行审核或版本控制。 查看模型在其生命周期的任何阶段的样子,将其还原为任何版本,或在销毁模型后将其还原。 文献资料 版 文献资料 未发行 11.1.0 10.3.1 ... > = 3

    eulerian-trail:Hierholzer算法的实现,以在图中查找欧拉轨迹

    $ npm install --save eulerian-trail 用法 var eulerianTrail = require ( 'eulerian-trail' ) ; eulerianTrail ( { edges : [ [ 0 , 1 ] , [ 1 , 2 ] , [ 2 , 3 ] , [ 3 , 6 ] , [ 6 , 7 ] , [ 7 , 10 ] ,...

    Washington_Trail:该存储库适用于我们的Digital Humanities 1030课程

    在我们的“Digital Humanities 1030”课程中,有一个名为“Washington_Trail”的项目,它提供了一种独特的方式来探索历史,特别是美国国父乔治·华盛顿年轻时的一段重要旅程。通过这个项目,我们可以深入研究华盛顿...

    paper_trail:使用Ecto跟踪并记录数据库中的所有更改。 恢复到历史记录中的任何时间

    为了恢复到历史中的某个版本,你可以使用`PaperTrail.revert/3`函数。这个函数接受模型实例、目标版本号以及可选的事务选项,它会将模型回滚到指定版本的状态。 ```elixir def revert_to_version(model, version_...

    blockchain-audit-trail::magnifying_glass_tilted_left:演示应用程序展示了针对以太坊区块链进行验证的审计跟踪

    区块链审计追踪 该存储库包含一个分支,在其顶部构建了概念验证的区块链审计跟踪实现。 该区块链审计追踪是我在阿姆斯特丹大学验证审计追踪数据的学士论文的一...Web3j是此审计跟踪与智能合约之间的集成,Web3j是用于与

Global site tag (gtag.js) - Google Analytics