2023年6月21日发(作者:)

NC65操作数据库的前后台⽅法⼀、前台(client端)操作数据库的⽅法 IUAPQueryBS queryBS = tance().lookup(); eQuery(sql, processor);//processor

常⽤的有:MapListProcessor、BeanProcessor、BeanListProcessor、ArrayListProcessor、ColumnProcessor前台通过表头主键查询aggvoHYPubBO_illVOByPrimaryKey(class, pks);⼆、后台(private端)操作数据库的⽅法//只能在private端使⽤ BaseDAO baseDAO = new BaseDAO();

(SuperVO vo)String sql = "select * from ic_saleout_h where nvl(dr, 0) = 0";List map = (Map )eQuery("select * from er_bxzb where nvl(dr, 0) = 0 and pk_jkbx ='传⼊的报销单主键'", new MapProcessor());//查询语句返回⼀⾏结果值List> listMap = (List>) eQuery("select * from wa_data where nvl(dr, 0) = 0", new MapListProcessor());//查询语句可以返回多⾏结果GeneralOutHeadVO generalOutHeadVO = (GeneralOutHeadVO)eQuery("select * from ic_));//查询语_h h where nvl(, 0) = 0 and alhid = '传⼊的普通出库单表头主键'", new BeanProcessor(句返回⼀个VO实体List listVO = (List) eQuery("select * from ic_generalout_));//查询h h where nvl(, 0) = 0 and alhid = '传⼊的普通出库单表头主键'", new BeanListProcessor(语句可以返回多个VO,即⼀个集合VOString sqlStr = "select * from bd_material where nvl(dr, 0) = 0"Set setResult = (Set) eQuery(sqlStr, new BaseProcessor(){ private static final long serialVersionUID = 1L; @Override public Object processResultSet(ResultSet rs) throws SQLException { Set result = new HashSet(); String material_code = null; while(()){ material_code ing("code"); (material_code); } return result; }});return setResult;eUpdate("增删改的sql语句");三、前后台都可以操作数据库的⽅式IbillQueryService queryService = tance().lookup();四、防⽌sql注⼊的例⼦,使⽤SQLParameter参数,此参数前后台都有。StringBuilder sqlStr = new StringBuilder();("select * from bd_psndoc ");( where pk_psndoc = ?");(" and dr = ?");SQLParameter params = new SQLParameter();am(pk_psndoc);am(0)List psndocVO = (List) new BaseDAO().executeQuery(ng(), params, new BeanListPr五、后台通过表头主键查询aggvoBillQuery billQuery = new BillQuery();bills = (pks)当然,上⾯列举的只是NC的⼀⼩部分,还有很多没有列举出来,⼤家可以在实际开发过程中⾃⼰总结下来以备需⽤。

2023年6月21日发(作者:)

NC65操作数据库的前后台⽅法⼀、前台(client端)操作数据库的⽅法 IUAPQueryBS queryBS = tance().lookup(); eQuery(sql, processor);//processor

常⽤的有:MapListProcessor、BeanProcessor、BeanListProcessor、ArrayListProcessor、ColumnProcessor前台通过表头主键查询aggvoHYPubBO_illVOByPrimaryKey(class, pks);⼆、后台(private端)操作数据库的⽅法//只能在private端使⽤ BaseDAO baseDAO = new BaseDAO();

(SuperVO vo)String sql = "select * from ic_saleout_h where nvl(dr, 0) = 0";List map = (Map )eQuery("select * from er_bxzb where nvl(dr, 0) = 0 and pk_jkbx ='传⼊的报销单主键'", new MapProcessor());//查询语句返回⼀⾏结果值List> listMap = (List>) eQuery("select * from wa_data where nvl(dr, 0) = 0", new MapListProcessor());//查询语句可以返回多⾏结果GeneralOutHeadVO generalOutHeadVO = (GeneralOutHeadVO)eQuery("select * from ic_));//查询语_h h where nvl(, 0) = 0 and alhid = '传⼊的普通出库单表头主键'", new BeanProcessor(句返回⼀个VO实体List listVO = (List) eQuery("select * from ic_generalout_));//查询h h where nvl(, 0) = 0 and alhid = '传⼊的普通出库单表头主键'", new BeanListProcessor(语句可以返回多个VO,即⼀个集合VOString sqlStr = "select * from bd_material where nvl(dr, 0) = 0"Set setResult = (Set) eQuery(sqlStr, new BaseProcessor(){ private static final long serialVersionUID = 1L; @Override public Object processResultSet(ResultSet rs) throws SQLException { Set result = new HashSet(); String material_code = null; while(()){ material_code ing("code"); (material_code); } return result; }});return setResult;eUpdate("增删改的sql语句");三、前后台都可以操作数据库的⽅式IbillQueryService queryService = tance().lookup();四、防⽌sql注⼊的例⼦,使⽤SQLParameter参数,此参数前后台都有。StringBuilder sqlStr = new StringBuilder();("select * from bd_psndoc ");( where pk_psndoc = ?");(" and dr = ?");SQLParameter params = new SQLParameter();am(pk_psndoc);am(0)List psndocVO = (List) new BaseDAO().executeQuery(ng(), params, new BeanListPr五、后台通过表头主键查询aggvoBillQuery billQuery = new BillQuery();bills = (pks)当然,上⾯列举的只是NC的⼀⼩部分,还有很多没有列举出来,⼤家可以在实际开发过程中⾃⼰总结下来以备需⽤。