zoukankan      html  css  js  c++  java
  • NC 数据库操作

    一、后台数据库操作方法(private端):

    1.以下为后台查询方法

    BaseDAO dao = new BaseDAO();//只能在private端使用

    String querySql="select * from demo_quotation where dr = 0";//完整正确的sql语句

    Object result1 = dao.executeQuery("select vbillcode from demo_quotation where pk_salequotation='某个主键'", new ColumnProcessor());//查询语句只能返回一行一列结果

    List<Object[]> result2 = (List<Object[]>) dao.executeQuery(querySql, new ArrayListProcessor());//查询语句可以返回多行多列

    //for(Object[] obj : result2){ obj[0]...obj[n]}

    Map<String, Object> result3 = (Map<String, Object>) dao.executeQuery("select * from demo_quotation where pk_salequotation='某个主键'", new MapProcessor());//查询语句只返回一行结果

    List<Map<String,String>> result4 = (List<Map<String, String>>) dao.executeQuery(querySql, new MapListProcessor());//查询语句可以返回多行结果

    //for(Map<String,String> map : result4){map.get("字段名")}

    QuotationHVO result5 = (QuotationHVO) dao.executeQuery("select * from

    demo_quotation where pk_salequotation='某个主键'", new BeanProcessor(QuotationHVO.class));//查询语句只返回一个VO

    List<QuotationHVO> result6 = (List<QuotationHVO>) dao.executeQuery(querySql,new BeanListProcessor(QuotationHVO.class));//查询语句返回多个VO

    Set<String> result =

    (Set<String>) dao.executeQuery(sql, new BaseProcessor() {

    private static final long serialVersionUID = 1L;

    @Override

    public Object processResultSet(ResultSet rs) throws SQLException {

    Set<String> result = new HashSet<String>();

    String cproductid = null;

    while (rs.next()) {

    cproductid = rs.getString("cproductid");

    result.add(cproductid);

    }

    return result;

    }

    });

    return result;

    }

    2.以下为新增更新删除方法(手写sql)

    dao.executeUpdate("sql");

    二、前台数据库操作方法(client端):

    IUAPQueryBS bs = NCLocator.getInstance().lookup(IUAPQueryBS.class);

    bs.executeQuery(sql, processor);//processor跟第一点的basedao用法一致

    三、

    //后台通过主表主键查询aggvo

    BillQuery<AggPromoPolicyVO> query = new BillQuery<>(AggPromoPolicyVO.class);

    query .query(keys);

    //前台通过主表主键查询aggvo

    HYPubBO_Client.queryBillVOByPrimaryKey(class, hids)

    //或者前后台都能用

    IBillQueryService billQuery = NCLocator.getInstance().lookup(IBillQueryService.class);

    以下例子可以防SQL注入(前后台都有个SQLParameter 参数能使用)

    StringBuilder sql = new StringBuilder();

    sql.append("select * from esoc_dispatchrecgoods ")

    .append(" where dispatchnoteid=?").append(" and dr=?");

    SQLParameter param = new SQLParameter();

    param.addParam(pk_dispatchnoteid);

    param.addParam(0);

    List<DispatchRecGoodsVO> drgvoList = (List<DispatchRecGoodsVO>) dao

    .executeQuery(sql.toString(), param, new BeanListProcessor(

    DispatchRecGoodsVO.class))


     用友前台CURD操作
    前台提供两个主要接口进行CURD操作:
    IVOPersistence  该接口只支持前台增删改操作
    IUAPQueryBS   该接口主要支持前台的查询操作
    有了这两个接口,就省去了写后台接口的步骤,但是具体的操作还是要视情况而定。 

    作者:冬瓜茶饮料
    出处:http://www.cnblogs.com/dongguacha/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    机器学习笔记(二)---- 线性回归
    机器学习笔记(一)----基本概念
    ZZ:SDNLAB技术分享(一):ODL的SFC入门和Demo
    zz:NETCONF协议详解
    技术谈 | SDN 和 NFV 之间的爱与恨
    华为云内容审核—性能更加狂野,价格更加腼腆
    【并发技术01】传统线程技术中创建线程的两种方式
    【开发者portal在线开发插件系列五】命令的响应,即命令结果的上报(mid的使用)
    【并发技术16】线程同步工具Exchanger的使用
    什么是API文档?--斯科特·马文
  • 原文地址:https://www.cnblogs.com/dongguacha/p/9115495.html
Copyright © 2011-2022 走看看