一、后台数据库操作方法(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   该接口主要支持前台的查询操作
有了这两个接口,就省去了写后台接口的步骤,但是具体的操作还是要视情况而定。 

NC 数据库操作的更多相关文章

  1. python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作

    django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...

  2. 如何在高并发环境下设计出无锁的数据库操作(Java版本)

    一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...

  3. 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~

    最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...

  4. MySQL 系列(二) 你不知道的数据库操作

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 本章内容: 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网 ...

  5. ABP创建数据库操作步骤

    1 ABP创建数据库操作步骤 1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置. <add name="Default" pro ...

  6. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  7. django数据库操作和中间件

    数据库配置 django的数据库相关表配置在models.py文件中,数据库的连接相关信息配置在settings.py中 models.py相关相关参数配置 from django.db import ...

  8. [Android Pro] 完美Android Cursor使用例子(Android数据库操作)

    reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...

  9. phpcms v9 中的数据库操作函数

    1.查询 $this->select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='')   返回 ...

随机推荐

  1. C++实现根据路径读取文件内容

    已知文件路径,用C++实现读取对应文件的内容,代码如下: bool LoadShaderStr(const char* szShaderPath,string& strShaderStr) { ...

  2. vscode更新后 ctrl+v、ctrl+c、ctrl+x不可以用了,而且光标变粗,已解决

    vscode更新后 ctrl+v.ctrl+c.ctrl+x不可以用了,而且光标变粗,已解决 原因是 你的vscode里面安装了 vim ,简单粗暴的方法就是直接卸载掉就可以了. 卸载vim方法:在v ...

  3. 如何安装MySQL5.5.62

    1.首先进入官网https://www.mysql.com MySQL分为社区版和商业版,社区版是免费的,这里选择社区版的. 2.此时选择一个比较简单的5.5版本 直接下载Wisndow(X86,32 ...

  4. idftp

    No FTP list parsers have been registered use IdAllFTPListParsers IdFTP1.List(LS); 中文目录乱码 2个步骤解决 use ...

  5. LNMP 支持路由重写

    server    {        listen 80;        #listen [::]:80;        server_name www.xxx.com;        index i ...

  6. json与csv的基础用与法

    json库是处理json格式的python标准库 有两个过程: 编码(encoding):将python数据类型转换为json格式的过程 解码(decoding):从json格式中解析数据得到的pyt ...

  7. SQLServer与MySQL约束/索引命名的一些差异总结

    约束是数据库完整性的保证,主要分为:主键/外键/唯一键/默认值/check等类别,约束是一个逻辑概念,表示数据的某些特性(不能为空,唯一,必须满足某些条件等等),索引是一个逻辑与物理概念的结合,逻辑上 ...

  8. S8-codelab02

    import news_cnn_model import numpy as np import os import pandas as pd import pickle import shutil i ...

  9. python学习Day6 元组、字典、集合set三类数据用法、深浅拷贝

    一.深浅拷贝 1.  值拷贝 ls1 = ls2  不开辟空间,指针跟着走.(直接将ls1中存放的地址拿过来,内存中不会开辟新的空间,所以你怎么变,我也跟着变.)(ls1内部的所有类型的值发生改变,l ...

  10. maven项目(转)

    我记得在搞懂maven之前看了几次重复的maven的教学视频.不知道是自己悟性太低还是怎么滴,就是搞不清楚,现在弄清楚了,基本上入门了.写该篇博文,就是为了帮助那些和我一样对于maven迷迷糊糊的人. ...