Ecology9-OA开发基础之类库操作(后端)
### Ecology9-OA开发基础之类库操作(后端) #### 一、背景介绍 在现代企业信息化建设过程中,办公自动化系统(OA系统)是不可或缺的一部分。泛微OA系统作为国内领先的OA解决方案提供商之一,其产品广泛应用于各类企事业单位。本文将详细介绍在泛微OA系统后端开发中涉及到的一系列类库操作,特别是与数据库交互相关的操作,帮助开发者更好地理解和掌握这些技术点。 #### 二、数据库操作——RecordSet RecordSet是泛微OA系统中用于数据库操作的一个核心类,它提供了一系列的方法来实现对数据库的操作,包括增删改查等基本功能。 ##### 特点: - **不带事务**:默认情况下,RecordSet类进行的数据库操作是不包含事务管理的,这意味着每次执行的SQL语句都是独立的,不会作为一个整体进行管理。 - **参数未预编译**:在使用RecordSet类执行SQL语句时,参数通常是直接插入到SQL字符串中的,这种方式可能会导致SQL注入等安全问题。 - **通过连接池操作数据库**:为了提高性能,RecordSet类通常会利用数据库连接池来获取数据库连接,这样可以避免频繁地创建和销毁数据库连接,从而提高系统的响应速度。 - **异常处理**:RecordSet类执行SQL语句时如果出现错误,并不会抛出异常,而是将错误信息记录到日志文件中。开发者需要定期检查日志文件来了解系统的运行状态。 ##### 示例代码: ```java RecordSet rs = new RecordSet(); // 新增数据 rs.execute("insert into test_xizhilang(name, age) values('1', '12')"); // 修改数据 rs.execute("update test_xizhilang set name='张三' where id=1"); // 删除数据 rs.execute("delete from test_xizhilang where id=1"); // 查询数据 rs.execute("select * from hrmresource"); while (rs.next()) { String id = rs.getString("id"); String loginid = rs.getString("loginid"); String lastname = rs.getString("lastname"); System.out.println("loginid==" + loginid + "; lastname=" + lastname); } ``` #### 三、预编译SQL语句 预编译SQL语句是一种提高数据库操作安全性的方式。使用预编译SQL语句可以有效防止SQL注入攻击。 ##### 特点: - **安全性高**:预编译SQL语句可以有效防止SQL注入攻击。 - **不会抛出异常**:RecordSet类执行预编译SQL语句时如果出现错误,也不会抛出异常,而是记录到日志文件中。 ##### 示例代码: ```java 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"); ``` #### 四、存储过程调用 在泛微OA系统中,可以通过RecordSet类来调用数据库存储过程。 ##### 特点: - **分隔符**:调用存储过程时,多个参数之间需要用特定的分隔符进行分割。 - **固定参数**:泛微API要求调用存储过程必须带上固定的参数。 - **不会抛出异常**:执行存储过程时如果出现错误,同样不会抛出异常,而是记录到日志文件中。 ##### 示例代码: ```java RecordSet rs = new RecordSet(); char flag = Util.getSeparator(); String ProcPara = "王五" + flag + "18"; rs.executeProc("存储过程的名称", ProcPara); if (rs.next()) { System.out.println("接收的参数=" + rs.getString(1)); } ``` #### 五、事务处理——RecordSetTrans RecordSetTrans类提供了事务处理的功能,使得数据库操作能够支持原子性操作。 ##### 特点: - **事务管理**:RecordSetTrans类支持开启事务、提交事务以及回滚事务,确保一系列数据库操作要么全部成功,要么全部失败。 - **不会抛出异常**:即使在事务处理过程中发生错误,RecordSetTrans类也不会抛出异常,而是记录到日志文件中。 ##### 示例代码: ```java 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(); // 回滚事务 } System.out.println("方法执行完毕"); ``` #### 六、第三方数据库操作——RecordSetDataSource 除了操作OA系统本身的数据库之外,RecordSetDataSource类还可以用来操作第三方数据库。 ##### 特点: - **直接操作第三方数据库**:RecordSetDataSource类可以直接连接并操作第三方数据库。 - **不含事务管理**:RecordSetDataSource类进行的数据库操作不包含事务管理。 #### 七、总结 通过对以上知识点的学习,我们不仅了解了泛微OA系统后端开发中常用的数据库操作类库,还掌握了如何进行安全性和效率更高的数据库操作。希望这些内容能够帮助你在实际工作中更加高效地完成任务。
剩余12页未读,继续阅读
- 粉丝: 38
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助