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操作:
IVOPersistence 该接口只支持前台增删改操作
IUAPQueryBS 该接口主要支持前台的查询操作
有了这两个接口,就省去了写后台接口的步骤,但是具体的操作还是要视情况而定。
NC 数据库操作的更多相关文章
- python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作
django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...
- 如何在高并发环境下设计出无锁的数据库操作(Java版本)
一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...
- 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~
最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...
- MySQL 系列(二) 你不知道的数据库操作
第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 本章内容: 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网 ...
- ABP创建数据库操作步骤
1 ABP创建数据库操作步骤 1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置. <add name="Default" pro ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- django数据库操作和中间件
数据库配置 django的数据库相关表配置在models.py文件中,数据库的连接相关信息配置在settings.py中 models.py相关相关参数配置 from django.db import ...
- [Android Pro] 完美Android Cursor使用例子(Android数据库操作)
reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...
- phpcms v9 中的数据库操作函数
1.查询 $this->select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='') 返回 ...
随机推荐
- bootstrapvalidator的简单校验【必填校验、长度校验、是否存在校验(remote)】
需求:输入框的"供应商编码"不能为空而且不能与数据库重复,供应商名称不能为空. 解决: 1.input如下 <input id="ssupplierNo" ...
- .htaccess: Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration
php项目 .htaccess文件配置如下: #文件缓存时间配置 <FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css)$"& ...
- PG数据库——视图
视图(View)是从一个或多个表(或视图)导出的表.视图与表(有时为与视图区别,也称表为基本表——Base Table)不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义 ...
- QTP测试.NET程序的时候,ComboBox下拉框控件选择后,运行时对象不可见解决方案
解决方法: 录制时,选择下拉框数据的时候,不要鼠标单击选择,而是要用ENTER(回车键)来选择,才能完成选择,这样录制就OK了.
- win10基础上安装linux系统,添加双系统启动项
1. 本机安装Centos7mini(注意点:进入安装界面先修改下面的内容,修改为U盘名称) 2. 配置文件/boot/grub2/grub.cfg,完成双系统启动设置. 3. 配置ip地址 nmcl ...
- MySQL创建数据库时指定编码utf8mb4和添加用户
CREATE DATABASE `wordpress` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE DATABASE `wor ...
- python类的动态属性设置
需求:根据入参,动态添加设置类的属性 实现: self.__setattr__ self.__getattribute__
- PHP入门——基本巩固
----------一.变量 ----------二.运算 ----------三.控制结构 ----------四.函数 ----------六.字符串 ----------七.数组 ------- ...
- ios模拟器命令
xcrun simctl list //显示模拟器列表 xcrun simctl boot [模拟器id] //启动模拟器
- git 创建新项目 本地仓库和远程仓库的合并
1.$ git pull origin master --allow-unrelated-histories 告诉系统允许合并不相关历史的内容 2.git branch --set-upstream ...