发布网友 发布时间:2022-04-23 01:53
共8个回答
懂视网 时间:2022-04-11 13:31
String sql = "update bd_deptdoc set dept_code =‘aaa’ where dept_code=?”; SQLParameter param = new SQLParameter(); //构造参数对象param.addParam(“bbb”); //添加参数 session.executeUpdate(sql, param);
String sql = "update bd_deptdoc set dept_code =‘aaa’ where dept_code=‘bbb’"; session.addBatch(sql); //添加需要执行的同构SQL int rows = session.executeBatch(); //执行
Null参数 param.addNullParam(java.sql.Types.INTEGER); Blob参数 param.addBlobParam (new Object()); Clob参数 param.addClobParam (new String());
对查询结果集合的操作,主要由ResultProcessor类来实现,这是一个接口 ResultProcessor包含有一个简单的方法,不同的ResultProcessor实现返回不同的结果对象。系统提供了一系列常用的默认实现。
ArrayProcessor 数组处理器,返回一个对象数组,结果集中只有一行数据,其中结果集中每一列对应数组的一个元素。
ArrayListProcessor 数组集合处理器,返回一个ArrayList集合,集合中的每一个元素是一个数组,每个数组对应结果集中的一行数据,其中结果集中每一列对应数组的一个元素。
MapProcessor HashMap处理器,返回一个HashMap, 结果集中只有一行数据,其中结果集合中每一列的列名和列值对应HashMap的一个关键字和相应的值。
MapListProcessor HashMap集合处理器,返回一个ArrayList集合,集合中的每一个元素是一个HashMap,每个HashMap对应结果集中的一行数据, 其中结果集合中每一列的列名和列值对应HashMap的一个关键字和相应的值。
BeanProcessor 值对象处理器,返回一个JavaBean,结果集中只有一行数据,该处理器能自动把结果集中的值按列的名称映射到javaBean中,如:结果集中有名称为”name”的字段,那么只要该java对象中有getName()方法就能把结果集合中”name”对应的值映射到对象中。
BeanListProcessor值对象集合处理器,返回一个ArrayList集合,集合中的每一个元素是一个javaBean,每个javaBean对应结果集合中一行数据,其中每个JavaBean中的数据映射关系和BeanProcess同理。还有ColumnProcessor ,BeanMappingListProcessor ,BeanMappingProcessor几个类
BeanListProcessor作为结果集的例子:
ArrayList list=(ArrayList) session.executeQuery(sql, param, new BeanListProcessor(TrainReqmatbillVO.class)); // TrainReqmatbillVO是一个普通vo类 int listcount = list.size(); TrainReqmatbillVO[] vos = new TrainReqmatbillVO[listcount]; for (int i = 0; i < vos.length; i++) { vos[i] = (TrainReqmatbillVO)list.get(i); }
结果集控制
在NC持久层中为了防止执行大查询后返回结果集合过多导致系统内存溢出系统默认设置了最大返回结果集行数是10万行,如果如要返回更多行数或者不限制返回行数,需要做如下设置:
在SuperDMO中设置返回行数
SuperDMO superDmo=new SuperDMO();
superDmo. setMaxRows(行数);
如果rows= -1表示不限制返回行数
在BaseDAO中设置返回行数
BaseDAO baseDao=new BaseDAO();
BaseDAO. setMaxRows(行数);
如果rows= -1表示不限制返回行数
在ResultsetProcessor中设置返回行数
BaseProcessor processor=new ArrayListProcessor();
Processor. setMaxRows(行数);
在结果集中设置返回行数
CrossDBResultset resultset=( CrossDBResultset)rs;
Resultset.setMaxRows(行数);
实例讲解
通过代码和注释来看如何通过JdbcSession访问数据库 (该实例在培训教程提供的“配套示例\示例代码”目录下压缩包nc5Xsample.ara中的工程NC_DEMO的private端nc.impl.sample.DAOPubImpl里)
//JdbcSession访问数据库的示例 private void testPersistenceManager() { int resultSize = 0; PersistenceManager sessionManager = null; try { // 开始JDBC会话 sessionManager = PersistenceManager.getInstance("design"); JdbcSession session = sessionManager.getJdbcSession(); String sql = "SELECT * FROM bd_corp WHERE unitcode = ?"; SQLParameter param = new SQLParameter(); // 构造参数对象 param.addParam("ufida"); // 添加参数 ArrayList list = (ArrayList) session.executeQuery(sql, param, new BeanListProcessor(CorpVO.class)); resultSize = list.size(); for (int i = 0; i < resultSize; i++) { CorpVO temp = (CorpVO) list.get(i); System.out.println(temp.getUnitcode()); System.out.println(temp.getUnitname()); } } catch (DbException e) { e.printStackTrace(); } finally { if (sessionManager != null) { sessionManager.release(); // 关闭和释放连接会话 } } }
通过持久层框架可以很方便的实现把内存中的对象持久化到数据库、把数据库中的关系数据加载到内存中。作为入门的一个例子,我们使用一个简单的Java Bean Person类(注意需要进行持久化的VO类必须符合Java Bean规范)
使用IVOPersistence服务组件,进行增删改操作;
IVOPersistence iVOPersistence=( IVOPersistence)NCLocator.getInstance().lookup(IVOPersistence.class.getName());
使用IUAPQueryBS服务组件,进行查询操作
// IUAPQueryBS 例子 private void testIUAPQueryBS() { try { IUAPQueryBS iUAPQueryBS = (IUAPQueryBS) NCLocator.getInstance() .lookup(IUAPQueryBS.class.getName()); String sql = "SELECT * FROM bd_corp"; SQLParameter param = new SQLParameter(); // 构造参数对象 ArrayList list = (ArrayList) iUAPQueryBS.executeQuery(sql,param, new BeanListProcessor(CorpVO.class)); int resultSize = list.size(); for (int i = 0; i < resultSize; i++) { CorpVO usrVo = (CorpVO) list.get(i); System.out.println(usrVo.getUnitcode()); System.out.println(usrVo.getUnitname()); } } catch (ComponentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (BusinessException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
使用BaseDAO工具类
// BaseDAO 例子 private void testBaseDAO() { try { BaseDAO dao = new BaseDAO(); AreaclVO vo1 = new AreaclVO(); vo1.setAreaclcode("1111"); vo1.setAreaclname("2222"); vo1.setPk_corp("1002"); dao.insertVO(vo1); } catch (DAOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //业务锁:把业务锁放在事务之外,可行原因主要有业务锁不是基于数据库和业务锁是基于Select的处理,无需事务。 public void updateAreaclVO(AreaclVO vo) { boolean islock = PKLock.getInstance().acquireLock(vo.getPrimaryKey(),null, null); if (!islock) try { throw new nc.vo.pub.BusinessException(nc.vo.bd.BDMsg.MSG_LOCKED()); } catch (BusinessException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { String[] updateFields = null; String[] fields = vo.getAttributeNames(); Vector v = new Vector(); v.add("vdef1"); if (v.size() > 0) { updateFields = new String[v.size()]; updateFields = (String[]) v.toArray(updateFields); } try { new BaseDAO().updateVO(vo, updateFields); } catch (DAOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 解锁 finally { PKLock.getInstance().releaseLock(vo.getPrimaryKey(), null, null); } }
单据的访问数据库委托类:nc.ui.trade.bsdelegate.BusinessDelegator
基本档案访问数据库的委托类:nc.ui.trade.bsdelegate.BDBusinessDelegator
(此部分内容后面章节再讲解)
NC-UAP客户化开发-4.NC数据库持久化技术
标签:oss ddn 部分 不同的 代码 持久层框架 默认 tin 技术
热心网友 时间:2022-04-11 10:39
NC系统也叫NC财务系统,NC财务系统是一个全面的预算管理平台,支持企业从销售计划→生产计划→采购计划→费用计划→投资计划→资金计划→损益计划→资产负债计划的全面预算控制。
NC系统充分考虑了用户的个性化需求,提供了多种自我配置和客户化工具,满足用户的特殊要求,从而使产品更具有弹性。
扩展资料:
在个性化应用上,NC财务系统主要提供了以下功能:业务流程可配置:用户可根据企业的实际业务流程进行相应的流程定义,使系统的处理流程适合本企业应用;应用组件可配置:用户可选择本单位所需的具体应用功能进行功能组合;用户菜单可配置:对于不同的用户来说,可根据企业的性质、习惯、管理要求等自行进行功能菜单的配置。
单据格式、报表格式自定义;提供二次开发产品和与外围产品的挂接功能:NC提供了一个以消息、邮件等技术为基础的工作流平台,来解决各个模块的用户权限、菜单定义,业务流程配置,并和办公自动化、ERP系统无缝地集成在一起。
参考资料:NC系统-百度百科
热心网友 时间:2022-04-11 11:57
NC系统是一个全面的预算管理平台,支持企业从销售计划→生产计划→采购计划→费用计划→投资计划→资金计划→损益计划→资产负债计划的全面预算控制。实现了对经营行为的事前编制、事中控制和事后分析。
NC财务系统充分考虑了用户的个性化需求,提供了多种自我配置和客户化工具,满足用户的特殊要求,从而使产品更具有弹性。
扩展资料
NC系统是一套全面的财务信息系统管理控制模型,能实现与各下属单位及项目的紧密接轨,使公司内部在财务管控上高度协同、信息畅通,成本费用的自动预警控制,能全面、及时、真实的为决策提供参考依据。
NC系统以财务管控为核心,数据完全集中,可以实时查询,便于集团业务的事前管控。实时透视下属单位的财务状况和经营成果,利用财务监控模型,强化集团的战略决策和资源配置的功能。
提供共享财务中心解决方案,提供多账簿的管理,同一经济业务自动或半自动按不同会计制度或内外报告要求进行会计描述,建立规范的财务报告体系。
参考资料
百度百科- NC系统
热心网友 时间:2022-04-11 13:32
NC系统是一套全面的财务信息系统管理控制模型,能实现与各下属单位及项目的紧密接轨,使公司内部在财务管控上高度协同、信息畅通,成本费用的自动预警控制,能全面、及时、真实的为决策提供参考依据。
NC系统,是综合利用互联网技术、云计算技术、移动应用技术等,为企业提供一个全新的支持合规化应用需求和创新需求,以及个性化配置、集成、实施、运维、管理一体化的大型管理平台。
NC系统以财务管控为核心,数据完全集中,可以实时查询,便于集团业务的事前管控。实时透视下属单位的财务状况和经营成果,利用财务监控模型,强化集团的战略决策和资源配置的功能。
扩展资料:
虽然NC系统上线后实施时间较长,前期投入时间、人力较大。但是其“协同合作,集中管理”的优点对于企业以后的发展更加有利。帮助企业更好地实现企业运营、提升管理绩效、实现长期发展目标。
随着NC系统使用时间的推移,以及业务量的不断增加,数据库的附件数据量越来越大,系统运行的效率逐渐受到影响。
为此,用友提供附件转储服务解决方案,将数据库的附件数据转移存储到客户端本地磁盘或文件服务器。同时,对于转储到“磁盘存储”下的附件数据依然可被NC系统调用查阅。最终达到对数据库瘦身,对系统减压,让系统轻装前进。
参考资料:百度百科-NC系统
热心网友 时间:2022-04-11 15:23
NC财务系统热心网友 时间:2022-04-11 17:31
用友软件旗下一款管理软件。简单可以理解为企业信息化管理系统,含财务、供应链、资金、预算、资产和报表等等。热心网友 时间:2022-04-11 19:56
NC系统指的是一个全面的预算管理平台,支持企业从销售计划→生产计划→采购计划→费用计划→投资计划→资金计划→损益计划→资产负债计划的全面预算控制。热心网友 时间:2022-04-11 22:54
就是一中办公软件系统