当前位置: 首页 > news >正文

泛微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();

相关文章:

  • 【JeecgBoot AIGC】AI工作流配置与流程节点全解析
  • Flink On Yarn HA 重启次数
  • PHP 生成当月日期
  • 软件项目管理(第4版)部分课后题答案
  • JS红宝书笔记 - 8.1 理解对象
  • ARINC653分区调度算法的研究与改进
  • 若依配置knife4j
  • vue 实现dot-dropdown
  • django调用 paramiko powershell 获取cpu 个数
  • io.net 携手 Walrus,为 AI 和机器学习应用提供去中心化存储与计算能力
  • 网工_STP生成树协议
  • 基于React+Express的个人账单管理系统
  • 在 linux 中实现开机自动启动 Docker 并自动运行特定镜像的容器
  • Netty实战:从核心组件到多协议实现(超详细注释,udp,tcp,websocket,http完整demo)
  • 开源大型语言模型的文本记忆新突破!
  • 腾讯云轻量级服务器Ubuntu系统与可视化界面
  • 人机融合智能 | 人智交互语境下的设计新模态
  • 【C++详解】STL-vector使用底层剖析和实现
  • 解锁身心密码:从“心”拥抱健康生活
  • MOS管和比较器
  • 点点 网站建设/沧州网站优化
  • 国外网站设计师/品牌网络seo方案外包
  • 一家做特卖的网站叫什么时候/南宁网站推广排名
  • 电商数据平台/百度关键词优化平台
  • 哈尔滨最新情况/信息如何优化上百度首页公司
  • 丹东新区建设发展集团网站/网站建设技术外包