泛微OAe9-后端二開常見數據庫操作

泛微OAe9-后端二開常見數據庫操作


文章目錄

    • 泛微OAe9-后端二開常見數據庫操作
      • 一、RecordSet
        • 1 RecordSet 操作OA本身的表
        • 2 RecordSet 操作OA 本身的存儲過程
      • 二、RecordSetTrans
      • 三、RecordSetDataSource
      • 四、原生 jdbc

一、RecordSet

RecordSet 適用于操作 OA 自己的庫。OA 數據庫可查看配置文件:/WEB-INF/prop/weaver.properties

RecordSet 特點:

  • 1、不帶事務,參數可以進行預編譯,安全性高。
  • 2、通過連接池操作數據庫,性能高,斷網重連。
  • 3、不會拋出異常,需要去日志文件中查看 log文件。
1 RecordSet 操作OA本身的表

代碼演示:

RecordSet rs = new RecordSet();
rs.execute("insert into test_xizhilang(name,age)values('1','12')"); //新增數據
rs.executeSql("insert into test_xizhilang(name,age)values('1','2')");
rs.execute("update test_xizhilang set name='張三' where id=1"); //修改數據
//刪除數據
rs.execute("delete test_xizhilang where id=1");
//查詢數據
rs.execute("select * from hrmresource ");
while(rs.next()){String id=rs.getString("id");//===rs.getString("id");String loginid=rs.getString("loginid");String lastname=rs.getString("lastname");
}
// 數據庫操作完成

對于預編譯,參數可以直接寫在后面,安全性高,代碼演示;

RecordSet rs = new RecordSet();
rs.executeQuery("select * from hrmresource where id=?", "49");
if(rs.next()){System.out.println(rs.getString("lastname"));
}
rs.executeUpdate("insert into test_xizhilang(name,age)values(?,?)", "11","22");

2 RecordSet 操作OA 本身的存儲過程

RecordSet 操作存儲過程特點:

  • 1、 Util.getSeparator();分隔傳個存儲過程的多個參數。
  • 2、泛微API要求OA存儲過程必須帶有固定的參數。
  • 3、不會拋出異常,需要去日志文件中查看。
RecordSet rs = new RecordSet();
char flag = Util.getSeparator();
String ProcPara = "王五" + flag + "18"; //拼接2個參數
rs.executeProc("存儲過程的名稱", ProcPara);
if(rs.next()){//接收存儲過程的返回值System.out.println("接收的參數="+rs.getString(1));
} 	

在這里插入圖片描述


二、RecordSetTrans

RecordSetTrans 也是用于操作 OA 本身的數據庫。OA 數據庫可查看配置文件:/WEB-INF/prop/weaver.properties

RecordSetTrans 特點:

  • 1、支持事物處理,支持原子性操作。也是 RecordSetTrans 最大的特點
  • 2、不會拋出異常,需要去日志文件中查看。

代碼演示:

RecordSetTrans rst = new RecordSetTrans();
try {rst.setAutoCommit(false); //開啟事務rst.executeSql("delete from test_xizhilang where id=5");rst.executeSql("delete from test_xizhilang where id=4");String s = null;s.toCharArray();rst.commit(); // 提交事務
} catch (Exception e) {e.printStackTrace();rst.rollback();  // 執行失敗,回滾數據
}

三、RecordSetDataSource

RecordSetDataSource 用于操作OA集成的第三方系統的數據庫:后端 - > 集成中心 -> 數據源設置。RecordSetDataSource也可以用于操作OA本身的數據庫,RecordSetDataSource rds = new RecordSetDataSource(),括號內不傳參默認就是OA本身的數據庫。

RecordSetDataSource特點:

  • 1、直接操作第三方數據,不支持事務;
  • 2、不會拋出異常,需要去日志文件中查看;

代碼演示:

String sql = "select id, lastname, loginid, sex from hrmresource";
RecordSetDataSource rs2 = new RecordSetDataSource("數據源名稱(建議英文)");
rs2.execute(sql);
while(rs2.next()){//下標從1開始String hehe = rs2.getString(4);System.out.println("hehe=" + hehe);
}

rs2.getString():獲取查詢的數據,有兩種方式:

  • 1、rs2.getString(“列名”):獲取指定的列。
  • 2、rs2.getString(數字):數字下標從1開始,獲取指定下標的列。如上面代碼中,rs2.getString(4) 獲取 sex 的值。

數據源名稱,建議英文,不要用中文。

在這里插入圖片描述


四、原生 jdbc

操作OA本身的數據庫,事務操作有 RecordSetTrans,如果要操作第三方系統的庫,也需要事務操作,可采用原生 jdbc 的方法。

weaver.interfaces.datasource.DataSource ds = (weaver.interfaces.datasource.DataSource) 
StaticObj.getServiceByFullname(("datasource.數據源名稱"), weaver.interfaces.datasource.DataSource.class);
java.sql.Connection conn = ds.getConnection();

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/87544.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/87544.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/87544.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【數據分析八:hypothesis testing】假設檢驗

本節我們講述假設檢驗和抽樣方法 有關假設檢驗的詳細內容,可以參考我以往的博客 概率論與數理統計總復習_概率論與數理統計復習-CSDN博客文章瀏覽閱讀1.5k次,點贊33次,收藏23次。中科大使用的教輔《概率論和數理統計》,帶大家復…

AI免費工具:promptpilot、今天學點啥、中英文翻譯

promptpilot 激發模型潛能,輕松優化 Prompt https://promptpilot.volcengine.com/startup 今天學點啥 https://metaso.cn/study 能生成網頁和語音播報 中英文翻譯 沉浸式翻譯,瀏覽器插件,ai翻譯

計算機網絡學習筆記:TCP三報文握手、四報文揮手

文章目錄 前言一、TCP三報文握手二、TCP四報文揮手三、TCP保活計時器 前言 TCP通信,通常需要經歷三個階段:三報文握手->發送,接收數據->四報文揮手。 一、TCP三報文握手 三報文握手處于TCP的連接建立階段,主要解決了以下的…

kafka部署和基本操作

一、部署kafka 解壓 tar xzvf kafka_2.12-3.9.1.tgz tar -zxf kafka_2.12-3.9.1.tgz 1.修改config/server.properties # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # …

Bootstrap 5學習教程,從入門到精通,Bootstrap 5 導航語法知識點及案例代碼(17)

Bootstrap 5 導航語法知識點及案例代碼 Bootstrap 5 提供了強大的導航組件,幫助開發者快速構建響應式且美觀的導航欄。 一、Bootstrap 5 導航組件概述 Bootstrap 5 提供了多種導航組件,主要包括: 導航欄(Navbar)&am…

清除 docker 無用的 鏡像/容器

清除 docker 無用的 鏡像/容器 刪除 <none> 的 docker 鏡像 使用以下命令刪除所有 的 Docker 鏡像&#xff08;即懸空鏡像 / dangling images&#xff09;&#xff1a; docker image prune -f這會自動刪除所有沒有 tag 的鏡像&#xff08;&#xff09;&#xff0c;不會…

使用Charles抓包工具提升API調試與性能優化效率

在軟件開發過程中&#xff0c;網絡請求調試和性能優化往往成為開發者遇到的挑戰&#xff0c;尤其是在進行API接口調試時。開發者需要確保網絡請求的正確性、響應時間以及系統的整體性能。然而&#xff0c;傳統的調試方法常常無法提供足夠的細節來深入分析問題&#xff0c;進而影…

如何協調各項目關鍵節點的沖突與依賴

在多項目并行的環境下&#xff0c;關鍵節點間的沖突與依賴是導致項目延期、資源浪費和溝通誤解的主要根源。要高效協調此類問題&#xff0c;企業應重點從建立透明的進度依賴圖、使用項目管理工具對齊節點、推動跨部門協同機制入手。其中&#xff0c;通過Gantt圖或關鍵路徑法實現…

mongodb單節點改副本集模式

前一陣將三節點的副本集改成了單節點&#xff0c;但后面業務代碼出現問題&#xff1a;無法使用事務&#xff0c;因為事務只有在副本集上能用&#xff0c;單節點無法使用&#xff0c;故需要改回副本集模式&#xff0c;而我目前僅有一臺服務器&#xff0c;所以考慮在一臺服務器上…

Android 修改了頁面的xml布局,使用了databinding,這時候編譯時需要用到apt嗎

deepseek回答&#xff1a; 在 Android 開發中使用 DataBinding 時&#xff0c;不需要顯式使用 apt&#xff08;Annotation Processing Tool&#xff09;。以下是詳細說明&#xff1a; 1. DataBinding 的編譯機制 DataBinding 是 Android Gradle 插件原生支持的功能&#xff…

服務器如何從http升級到https(nginx)

1.證書申請 可以到阿里云或者華為云去申請證書&#xff0c;申請完下載證書是個壓縮包&#xff0c;然后解壓 可以到到幾個文件夾&#xff0c;找到 .Nginx 文件夾打開 會有兩個文件&#xff0c;將這兩個文件上傳至nginx/conf/cert文件夾下&#xff08;cert需要手…

6.19_JAVA_微服務

1、跑后端的時候要把數據庫跑起來&#xff0c;否則會報錯。 2、predicate斷言&#xff1a; 預言&#xff1a;predict 3、gateway&#xff1a;出路口 4、API&#xff1a;List.of("a", "b", "c");把abc編程一個集合。 5、 6、shortcutFieldOrd…

Linux 基礎命令:`ls`、`cd`、`du` 快速入門

在 Linux 系統中&#xff0c;ls、cd 和 du 是日常操作中最常用的三個命令。掌握它們能大幅提升文件管理效率。 1. ls&#xff1a;查看目錄內容 用途&#xff1a;列出當前或指定目錄下的文件和子目錄。 常用命令&#xff1a; ls -l # 詳細列表&#xff08;權限、大…

408第一季 - 數據結構 - 散列表

散列表 概念 散列表本身就是為了查找 原始人思想 散列表思想 6%5 是 1 1%5 也是1 沖突 沖突怎么辦&#xff1f; 線性探測法 就往后找&#xff0c;1跑到索引為2 然后查找&#xff0c;可以發現&#xff0c;只要沒沖突就只用查找1次 然后你想找10的話&#xff0c;發現索引為0…

Spring Boot 集成 Elasticsearch(含 ElasticsearchRestTemplate 示例)

Elasticsearch 是一個基于 Lucene 的分布式搜索服務器&#xff0c;具有高效的全文檢索能力。在現代應用中&#xff0c;尤其是需要強大搜索功能的系統中&#xff0c;Elasticsearch 被廣泛使用。 Spring Boot 提供了對 Elasticsearch 的集成支持&#xff0c;使得開發者可以輕松地…

CMake實踐:指定gcc版本編譯和交叉編譯

目錄 1.指定gcc版本編譯 1.1.通過CMake參數來實現 1.2.使用 RPATH/RUNPATH 直接指定庫路徑 1.3.使用符號鏈接和 LD_LIBRARY_PATH 1.4.使用 wrapper 腳本封裝 LD_LIBRARY_PATH 2.交叉編譯 2.1.基本用法 2.2.工具鏈文件關鍵配置 2.3.多平臺工具鏈示例 2.4.注意事項 2.…

詳解鴻蒙Next倉頡開發語言中的全屏模式

大家好&#xff0c;今天跟大家分享一下倉頡開發語言中的全屏模式。 和ArkTS一樣&#xff0c;倉頡的新建項目默認是非全屏模式的&#xff0c;如果你的應用顏色比較豐富&#xff0c;就會發現屏幕上方和底部的留白&#xff0c;這是應用自動避讓了屏幕上方攝像頭區域和底部的導航條…

LoRA 淺析

1. 核心思想 LoRA 是一種參數高效的微調方法&#xff0c;旨在減少微調大型語言模型 (LLMs) 所需的計算資源和存儲空間。其核心思想是&#xff1a; 凍結預訓練模型權重&#xff1a; 在微調過程中&#xff0c;保持預訓練 LLM 的原始權重不變。引入低秩矩陣&#xff1a; 對于 LL…

軟件范式正在經歷第三次革命

核心主題&#xff1a;軟件范式正在經歷第三次根本性革命&#xff08;軟件3.0&#xff09;&#xff0c;其核心是“智能體”&#xff08;Agent&#xff09;&#xff0c;未來十年將是“智能體的十年”。 邏輯模塊解析&#xff1a; 軟件的三次重生革命 軟件1.0&#xff1a; 傳統編…

JavaScript 變量與運算符全面解析:從基礎到高級應用

昨天學長說可以放緩一下學習進度,剛好最近期末復習也不是很緊張,所以來重新復習一下js的一些知識點。 一&#xff1a;變量 &#xff08;1&#xff09;變量聲明 來簡單看一下變量的一些知識點。首先是變量聲明&#xff1a;變量聲明盡量使用數組字母下劃線 來舉幾個例子&#x…