NC65操作数据库的前后台方法

355 篇文章 103 订阅

一、前台(client端)操作数据库的方法

 IUAPQueryBS queryBS = NCLocator.getInstance().lookup(IUAPQueryBS.class);
 queryBS.exceuteQuery(sql, processor);//processor 常用的有:MapListProcessor、BeanProcessor、BeanListProcessor、ArrayListProcessor、ColumnProcessor

前台通过表头主键查询aggvo

HYPubBO_Client.queryBillVOByPrimaryKey(class, pks);

二、后台(private端)操作数据库的方法

//只能在private端使用
 BaseDAO baseDAO = new BaseDAO();
 
 HYPubBO.insert(SuperVO vo)
String sql = "select * from ic_saleout_h where nvl(dr, 0) = 0";
List<Object[]) list = (List<Object[]) baseDAO.executeQuery(sql, new ArrayListProcessor());//查询语句可以返回多行多列

Object result = baseDAO.executeQuery("select h.vbillcode from ic_generalin_h h where nvl(h.dr, 0) = 0 and h.cgeneralhid = '传入的主键值' ", new ColumnProcessor());//查询得到一行一列的值

Map<String, Object> map = (Map<String, Object> )baseDAO.executeQuery("select * from er_bxzb where nvl(dr, 0) = 0 and pk_jkbx ='传入的报销单主键'", new MapProcessor());//查询语句返回一行结果值

List<Map<String, String>> listMap = (List<Map<String, String>>) baseDAO.executeQuery("select * from wa_data where nvl(dr, 0) = 0", new MapListProcessor());//查询语句可以返回多行结果

nc.vo.ic.m4i.entity.GeneralOutHeadVO generalOutHeadVO = (nc.vo.ic.m4i.entity.GeneralOutHeadVO)baseDAO.executeQuery("select * from ic_generalout_h h where nvl(h.dr, 0) = 0 and h.cgeneralhid  = '传入的普通出库单表头主键'", new BeanProcessor(nc.vo.ic.m4i.entity.GeneralOutHeadVO.class));//查询语句返回一个VO实体

List<nc.vo.ic.m4i.entity.GeneralOutHeadVO> listVO = (List<nc.vo.ic.m4i.entity.GeneralOutHeadVO>) baseDAO.executeQuery("select * from ic_generalout_h h where nvl(h.dr, 0) = 0 and h.cgeneralhid  = '传入的普通出库单表头主键'", new BeanListProcessor(nc.vo.ic.m4i.entity.GeneralOutHeadVO.class));//查询语句可以返回多个VO,即一个集合VO

String sqlStr = "select * from bd_material where nvl(dr, 0) = 0"
Set<String> setResult = (Set<String>) baseDAO.executeQuery(sqlStr, new BaseProcessor(){
	private static final long serialVersionUID = 1L;
	@Override
	public Object processResultSet(ResultSet rs) throws SQLException {
		Set<String> result = new HashSet<String>();
		String material_code = null;
		while(rs.next()){
			material_code rs.getString("code");
			result.add(material_code);
		}
		return result;
	}
});
return setResult;

baseDAO.executeUpdate("增删改的sql语句");

三、前后台都可以操作数据库的方式

IbillQueryService queryService = NCLocator.getInstance().lookup(IBillQueryService.class);

四、防止sql注入的例子,使用SQLParameter参数,此参数前后台都有。

StringBuilder sqlStr = new StringBuilder();
sqlStr.append("select * from bd_psndoc ");
sqlStr.append( where pk_psndoc = ?");
sqlStr.append(" and dr = ?");

SQLParameter params = new SQLParameter();
params.addParam(pk_psndoc);
params.addParam(0)

List<nc.vo.hi.psndoc.PsndocVO> psndocVO = (List<nc.vo.hi.psndoc.PsndocVO>) new BaseDAO().executeQuery(sqlStr.toString(), params, new BeanListProcessor(nc.vo.hi.psndoc.PsndocVO));

五、后台通过表头主键查询aggvo

BillQuery<EvaObjectVO> billQuery = new BillQuery<EvaObjectVO>(EvaObjectVO.class);
bills = billQuery.query(pks)

当然,上面列举的只是NC的一小部分,还有很多没有列举出来,大家可以在实际开发过程中自己总结下来以备需用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值