前台

1.HYPubBO_Client类
该类是对实例对象VO进行相关操作,里面的方法都是公共静态方法,所以调用的话就用类引用相关的方法即可。

public class HYPubBO_Client {private static IUifService service = (IUifService) NCLocator.getInstance().lookup(IUifService.class.getName());/*** @return Returns the service.*/public static IUifService getService() throws UifException {return service;}/*** @param billVo* @throws UifException*/public static void checkConsistence(AggregatedValueObject billVo) throws UifException {getService().checkConsistence(billVo);}/*** @param billVo* @return* @throws UifException*/public static ArrayList commitBill(AggregatedValueObject billVo) throws UifException {return getService().commitBill(billVo);}/*** @param vo* @throws UifException*/public static void delete(SuperVO vo) throws UifException {getService().delete(vo);}/*** @param billVo* @param userObj* @return* @throws UifException*/public static AggregatedValueObject deleteBD(AggregatedValueObject billVo,Object userObj) throws UifException {return getService().deleteBD(billVo, userObj);}/*** @param billVo* @return* @throws UifException*/public static AggregatedValueObject deleteBill(AggregatedValueObject billVo)throws UifException {return getService().deleteBill(billVo);}/*** @param c* @param where* @throws UifException*/public static void deleteByWhereClause(Class c, String where)throws UifException {getService().deleteByWhereClause(c, where);}/*** @param tablename* @param fieldname* @param strwhere* @return* @throws java.rmi.UifException*/public static Object findColValue(String tablename, String fieldname,String strwhere) throws UifException {return getService().findColValue(tablename, fieldname, strwhere);}/*** @param billtype* @param pk_corp* @param vo* @param intNum* @return* @throws java.rmi.UifException*/public static String[] getBatchBillNo(String billtype, String pk_corp,BillCodeObjValueVO vo, int intNum) throws UifException {return getService().getBatchBillNo(billtype, pk_corp, vo, intNum);}/*** @param billtype* @param pk_corp* @param custBillCode* @param vo* @return* @throws java.rmi.UifException*/public static String getBillNo(String billtype, String pk_corp,String custBillCode, BillCodeObjValueVO vo) throws UifException {return getService().getBillNo(billtype, pk_corp, custBillCode, vo);}/*** @param vo* @return* @throws UifException*/public static String insert(SuperVO vo) throws UifException {return getService().insert(vo);}/*** @param vo* @return* @throws UifException*/public static String[] insertAry(SuperVO[] vo) throws UifException {return getService().insertAry(vo);}/*** @param voClass* @return* @throws UifException*/public static SuperVO[] queryAll(Class voClass) throws UifException {return getService().queryAll(voClass);}/*** @param strBillType* @param c* @param key* @param strWhere* @return* @throws UifException*/public static CircularlyAccessibleValueObject[] queryAllBodyData(String strBillType, Class c, String key, String strWhere)throws UifException {return getService().queryAllBodyData(strBillType, c, key, strWhere);}/*** @param billFinderClassName* @param id* @param type* @return* @throws UifException*/public static LightBillVO queryBillGraph(String billFinderClassName, String id,String type) throws UifException {return getService().queryBillGraph(billFinderClassName, id, type);}/*** @param billFinderClassName* @param id* @param type* @return* @throws UifException*/public static LightBillVO queryBillGraph(String billFinderClassName,String id, String type, LinkQueryType queryType) throws UifException {return getService().queryBillGraph(billFinderClassName, id, type, queryType);}/*** @param userObj* @param strWhere* @return* @throws UifException*/public static AggregatedValueObject[] queryBillVOByCondition(Object userObj,String strWhere) throws UifException {return getService().queryBillVOByCondition(userObj, strWhere);}/*** @param userObj* @param parentPK* @return* @throws UifException*/public static AggregatedValueObject queryBillVOByPrimaryKey(Object userObj,String parentPK) throws UifException {return getService().queryBillVOByPrimaryKey(userObj, parentPK);}/*** @param voClass* @param strWhere* @return* @throws UifException*/public static SuperVO[] queryByCondition(Class voClass, String strWhere)throws UifException {return getService().queryByCondition(voClass, strWhere);}/*** @param voClass* @param pk* @return* @throws UifException*/public static SuperVO queryByPrimaryKey(Class voClass, String pk)throws UifException {return getService().queryByPrimaryKey(voClass, pk);}/*** @param billVo * @param userObj* @return* @throws UifException*/public static AggregatedValueObject saveBD(AggregatedValueObject billVo,Object userObj) throws UifException {return getService().saveBD(billVo, userObj);}/*** @param billVos* @param userObj* @return* @throws UifException*/public static AggregatedValueObject[] saveBDs(AggregatedValueObject[] billVos,Object userObj) throws UifException {return getService().saveBDs(billVos, userObj);}/*** @param billVo* @return* @throws UifException*/public static AggregatedValueObject saveBill(AggregatedValueObject billVo)throws UifException {return getService().saveBill(billVo);}/*** @param billVo* @return* @throws UifException*/public static AggregatedValueObject setBillTs(AggregatedValueObject billVo)throws UifException {return getService().setBillTs(billVo);}/*** @param vo* @throws UifException*/public static void update(SuperVO vo) throws UifException {getService().update(vo);}/*** @param vo* @throws UifException*/public static void updateAry(SuperVO[] vo) throws UifException {getService().updateAry(vo);}
}

2.IUAPQueryBS接口 API :只能做数据查询
使用方式,如:

IUAPQueryBS queryBS = (IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
String sql = "select * from bd_psndoc where nvl(dr, 0) = 0"
queryBS.executeQuery(sql, BeanProcessor.class);//ArrayListProcessor,ArrayProcessor,BeanProcessor,BeanListProcessor, ColumnProcessor,ColumnListProcessor,MapProcessor,MapListProcessor

IUAPQueryBS接口的具体方法

public interface IUAPQueryBS {abstract public Collection retrieveByCorp(Class c, String pkCorp,String[] selectedFields) throws BusinessException;abstract public Collection retrieveByCorp(Class c, String pkCorp)throws BusinessException;abstract public Object retrieveByPK(Class className, String pk)throws BusinessException;abstract public Object retrieveByPK(Class className, String pk,String[] selectedFields) throws BusinessException;public Collection retrieveByClause(Class className, String condition,String[] fields) throws BusinessException;/*** @since 5.5* @param className* @param condition* @param fields* @param param* @return* @throws BusinessException*/public Collection retrieveByClause(Class className, String condition,String[] fields, SQLParameter param) throws BusinessException;public Collection retrieve(SuperVO vo, boolean isAnd, String[] fields)throws BusinessException;public Collection retrieve(SuperVO vo, boolean isAnd)throws BusinessException;/*** 查询VO对应表所有数据* * @param className* @return* @throws DbException*/public Collection retrieveAll(Class className) throws BusinessException;/*** 根据条件查询VO对应表数据* * @param className* @param condition* @return* @throws DbException*/public Collection retrieveByClause(Class className, String condition)throws BusinessException;/*** 执行一个有参数SQL查询* * @param sql*            查询的SQL语句* @param parameter*            查询参数* @param processor*            结果集处理器* @return* @throws BusinessException*             查询出错则抛出异常*/public Object executeQuery(String sql, SQLParameter parameter,ResultSetProcessor processor) throws BusinessException;/*** 执行一个无参数的SQL查询* * @param sql*            查询的SQL语句* @param processor*            结果集处理器* @return* @throws BusinessException*             查询出错则抛出异常*/public Object executeQuery(String sql, ResultSetProcessor processor)throws BusinessException;/*** 根据值对象的属性值为条件查询对应数据* * @param vo*            值对象* @param meta*            数据映射信息* @return* @throws DbException*             如果查询出错则抛出DbException*/public abstract Collection retrieve(Object vo, IMappingMeta meta)throws BusinessException;/*** 根据数据映射信息查询对应的所有数据* * @param className*            对象名* @param meta*            数据映射信息* @return* @throws DbException*             如果查询出错则抛出DbException*/public abstract Collection retrieveAll(Class className, IMappingMeta meta)throws BusinessException;public abstract Collection retrieveByClause(Class className,IMappingMeta meta, String condition, String[] fields)throws BusinessException;public abstract Collection retrieveByClause(Class className,IMappingMeta meta, String condition, String[] fields,SQLParameter param) throws BusinessException;public abstract Collection retrieveByClause(Class className,IMappingMeta meta, String condition) throws BusinessException;
}

3.IVOPersistence接口API :只能做增 删 改操作

IVOPersistence voPer = (IVOPersistence) NCLocator.getInstance().lookup(IVOPersistence.class.getName())

后台

1.BaseDAO
后台是使用BaseDAO类来进行数据库的相关操作的,而BaseDAO类是实现了IVOPersistence,和IUAPQueryBS两个接口,所以操作方法也基本和IVOPersistence, IUAPQueryBS一样。

final public class BaseDAO implements IVOPersistence, IUAPQueryBS {private String dataSource = null;int maxRows = -1;boolean addTimestamp = true;/*** 默认构造函数,将使用当前数据源*/public BaseDAO() {}/*** 有参构造函数,将使用指定数据源* * @param dataSource*            数据源名称*/public BaseDAO(String dataSource) {super();this.dataSource = dataSource;}/*** 根据SQL 执行数据库查询,并返回ResultSetProcessor处理后的对象 (非 Javadoc)* * @param sql*            查询的SQL* @param processor*            结果集处理器*/public Object executeQuery(String sql, ResultSetProcessor processor)throws DAOException {PersistenceManager manager = null;Object value = null;try {manager = createPersistenceManager(dataSource);JdbcSession session = manager.getJdbcSession();value = session.executeQuery(sql, processor);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return value;}/*** 根据指定SQL 执行有参数的数据库查询,并返回ResultSetProcessor处理后的对象* * @param sql*            查询的SQL* @param parameter*            查询参数* @param processor*            结果集处理器*/public Object executeQuery(String sql, SQLParameter parameter,ResultSetProcessor processor) throws DAOException {PersistenceManager manager = null;Object value = null;try {manager = createPersistenceManager(dataSource);;JdbcSession session = manager.getJdbcSession();value = session.executeQuery(sql, parameter, processor);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return value;}/*** 根据指定SQL 执行有参数的数据库更新操作* * @param sql*            更新的sql* @param parameter*            更新参数* @return* @throws DAOException*             更新发生错误抛出DAOException*/public int executeUpdate(String sql, SQLParameter parameter)throws DAOException {PersistenceManager manager = null;int value;try {manager = createPersistenceManager(dataSource);JdbcSession session = manager.getJdbcSession();value = session.executeUpdate(sql, parameter);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return value;}/*** 根据指定SQL 执行无参数的数据库更新操作* * @param sql*            更新的sql* @return* @throws DAOException*             更新发生错误抛出DAOException*/public int executeUpdate(String sql) throws DAOException {PersistenceManager manager = null;int value;try {manager = createPersistenceManager(dataSource);JdbcSession session = manager.getJdbcSession();value = session.executeUpdate(sql);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return value;}/*** 根据VO类名查询该VO对应表的所有数据* * @param className*            SuperVo类名* * @return* @throws DAOException*             发生错误抛出DAOException*/public Collection retrieveAll(Class className) throws DAOException {PersistenceManager manager = null;Collection values = null;try {manager = createPersistenceManager(dataSource);values = manager.retrieveAll(className);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return values;}/*** 根据VO类名和where条件返回vo集合* * @param className*            Vo类名称* @param condition*            查询条件* @return 返回Vo集合* @throws DAOException*             发生错误抛出DAOException*/public Collection retrieveByClause(Class className, String condition)throws DAOException {PersistenceManager manager = null;Collection values = null;try {manager = createPersistenceManager(dataSource);values = manager.retrieveByClause(className, condition);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return values;}public Collection retrieveByClause(Class className, String condition,SQLParameter params) throws DAOException {return retrieveByClause(className, condition, (String[]) null, params);}/*** 根据条件和排序返回Vo集合* * @param className*            VO类名* @param condition*            查询条件* @param orderBy*            排序条件* @return 返回Vo集合* @throws DAOException*             发生错误抛出DAOException*/public Collection retrieveByClause(Class className, String condition,String orderBy) throws DAOException {return retrieveByClause(className, appendOrderBy(condition, orderBy),(String[]) null, null);}public Collection retrieveByClause(Class className, String condition,String orderBy, SQLParameter params) throws DAOException {return retrieveByClause(className, appendOrderBy(condition, orderBy),(String[]) null, params);}/*** 根据VO类名和where条件返回指定列的vo集合* * @param className*            类名称* @param condition*            查询条件* @param fields*            指定的字段名* */public Collection retrieveByClause(Class className, String condition,String[] fields) throws DAOException {return retrieveByClause(className, condition, fields, null);}public Collection retrieveByClause(Class className, String condition,String[] fields, SQLParameter params) throws DAOException {PersistenceManager manager = null;Collection values = null;try {manager = createPersistenceManager(dataSource);values = manager.retrieveByClause(className, condition, fields,params);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return values;}/*** 根据VO类名和where条件及排序条件返回指定列的vo集合* * @param className*            类名* @param condition*            查询条件* @param orderBy*            排序条件* @param fields*            指定列* @return* @throws DAOException*/public Collection retrieveByClause(Class className, String condition,String orderBy, String[] fields) throws DAOException {return retrieveByClause(className, appendOrderBy(condition, orderBy),fields);}public Collection retrieveByClause(Class className, String condition,String orderBy, String[] fields, SQLParameter params)throws DAOException {return retrieveByClause(className, appendOrderBy(condition, orderBy),fields, params);}private String appendOrderBy(String condition, String orderBy) {StringBuffer clause = new StringBuffer();if (condition != null)clause.append(condition);if (orderBy != null && condition == null)clause.append("ORDER BY ").append(orderBy);if (orderBy != null && condition != null) {clause.append(" ORDER BY ").append(orderBy);}return clause.toString();}/*** 通过where条件查询所有满足条件的vo数组。 支持多表 创建日期:(2002-6-12)* * @param c*            Class* @param strWhere*            String* @return SuperVO[]* @throws Exception*             异常说明。*/@SuppressWarnings("unchecked")public Object[] retrieveByClause(Class c, SqlSupportVO[] sqlvos,String fromStr, String strWhere, String strOrderBy)throws DAOException {if (sqlvos == null || sqlvos.length == 0)throw new NullPointerException("Sqlvos is null;");if (fromStr == null)throw new NullPointerException("fromStr is null;");String[][] fields = new String[2][sqlvos.length];MappingMeta meta = new MappingMeta("", "");for (int i = 0; i < sqlvos.length; i++) {fields[0][i] = sqlvos[i].getSqlSelectField();fields[1][i] = sqlvos[i].getVoAttributeName();meta.addMapping(sqlvos[i].getVoAttributeName(),sqlvos[i].getSqlSelectField());}PersistenceManager manager = null;try {manager = createPersistenceManager(this.dataSource);JdbcSession session = manager.getJdbcSession();StringBuffer sql = new StringBuffer("SELECT ");for (int i = 0; i < fields[0].length; i++) {sql.append(fields[0][i]);if (i != fields[0].length - 1)sql.append(",");}sql.append(" FROM ").append(fromStr);// create where sentenceif (strWhere != null && strWhere.trim().length() != 0) {sql.append(" WHERE ").append(strWhere);}// create order by sentenceif (strOrderBy != null && strOrderBy.trim().length() != 0) {sql.append(" ORDER BY ").append(strOrderBy);}BaseProcessor processor = new BeanMappingListProcessor(c, meta);List result = (List) session.executeQuery(sql.toString(), processor);return result.toArray((Object[]) Array.newInstance(c, 0));} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据VO中的属性值作为匹配条件从数据库中查询该VO对应的表的数据* * @param vo*            要查询的VO对象* @param isAnd*            指定匹配条件的逻辑(true代表&&,flase代表||)* @return* @throws DAOException*             如果查询出错抛出DAOException*/public Collection retrieve(SuperVO vo, boolean isAnd) throws DAOException {PersistenceManager manager = null;Collection values = null;try {manager = createPersistenceManager(dataSource);values = manager.retrieve(vo, isAnd);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return values;}public Collection retrieveOrderBy(SuperVO vo, boolean isAnd,String[] orderbyFields) throws DAOException {return retrieve(vo, isAnd, null, orderbyFields);}public Collection retrieve(SuperVO vo, boolean isAnd, String[] fields,String[] orderbyFields) throws DAOException {PersistenceManager manager = null;Collection values = null;try {manager = createPersistenceManager(dataSource);values = manager.retrieve(vo, isAnd, fields, orderbyFields);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return values;}/*** 根据指定VO的值以及逻辑条件返回指定字段的VO集合* * @param vo*            条件VO* @param isAnd*            逻辑条件,true代表与运算false代表或运算* * */public Collection retrieve(SuperVO vo, boolean isAnd, String[] fields)throws DAOException {PersistenceManager manager = null;Collection values = null;try {manager = createPersistenceManager(dataSource);values = manager.retrieve(vo, isAnd, fields);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return values;}/*** 根据公司名和指定字段返回VO集合* * @param className*            VO类名* @param pkCorp*            公司主键* @param selectedFields*            查询字段* */public Collection retrieveByCorp(Class className, String pkCorp,String[] selectedFields) throws DAOException {PersistenceManager manager = null;Collection values = null;try {manager = createPersistenceManager(dataSource);values = manager.retrieveByCorp(className, pkCorp, selectedFields);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return values;}/*** 根据公司PK返回指定VO集合* * @param className*            VO名称* @param 公司PK* */public Collection retrieveByCorp(Class className, String pkCorp)throws DAOException {PersistenceManager manager = null;Collection values = null;try {manager = createPersistenceManager(dataSource);values = manager.retrieveByCorp(className, pkCorp);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return values;}/*** 根据PK查询指定VO* * @param VO类名* @param pk*            主键* */public Object retrieveByPK(Class className, String pk) throws DAOException {PersistenceManager manager = null;Object values = null;try {manager = createPersistenceManager(dataSource);values = manager.retrieveByPK(className, pk);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return values;}/*** 根据主键返回指定列的VO对象*/public Object retrieveByPK(Class className, String pk,String[] selectedFields) throws DAOException {PersistenceManager manager = null;Object values = null;try {manager = createPersistenceManager(dataSource);values = manager.retrieveByPK(className, pk, selectedFields);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return values;}/*** 插入一个VO对象,如果该VO的主键值非空则插入VO的原有主键* * @param vo* @return* @throws DAOException*/public String insertVOWithPK(SuperVO vo) throws DAOException {PersistenceManager manager = null;String pk = null;try {manager = createPersistenceManager(dataSource);;pk = manager.insertWithPK(vo);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return pk;}/*** 插入一个VO对象* * @param vo*            SuperVO对象* */public String insertVO(SuperVO vo) throws DAOException {PersistenceManager manager = null;String pk = null;try {manager = createPersistenceManager(dataSource);;pk = manager.insert(vo);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return pk;}/*** 插入一个VO数组如果该VO的主键值非空则插入VO的原有主键* * @param vo* @return* @throws DAOException*/public String[] insertVOArrayWithPK(SuperVO[] vo) throws DAOException {PersistenceManager manager = null;String pk[] = null;try {manager = createPersistenceManager(dataSource);;pk = manager.insertWithPK(vo);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return pk;}/*** 插入VO数组* * @param vo*            VO数组*/public String[] insertVOArray(SuperVO[] vo) throws DAOException {PersistenceManager manager = null;String pk[] = null;try {manager = createPersistenceManager(dataSource);;pk = manager.insert(vo);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return pk;}/*** 插入VO集合* * @param vos*            VO集合*/public String[] insertVOList(List vos) throws DAOException {PersistenceManager manager = null;String pk[] = null;try {manager = createPersistenceManager(dataSource);;pk = manager.insert(vos);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}return pk;}/*** 根据IMappingMeta插入一个VO对象,该VO的主键值非空则插入VO的原有主键* * @param vo*            VO对象* @param meta*            IMappingMeta* @return* @throws DAOException*/public String insertObjectWithPK(Object vo, IMappingMeta meta)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);;return manager.insertObjectWithPK(vo, meta);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据IMappingMeta插入一个VO对象* * @param vo*            VO对象* @param meta*            IMappingMeta*/public String insertObject(Object vo, IMappingMeta meta)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);;return manager.insertObject(vo, meta);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据IMappingMeta插入VO对象集合,该VO的主键值非空则插入VO的原有主键* * @param vo*            VO对象集合* @param meta*            IMappingMeta* @return* @throws DAOException*/public String[] insertObjectWithPK(Object[] vo, IMappingMeta meta)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);;return manager.insertObjectWithPK(vo, meta);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据IMappingMeta插入VO对象集合* * @param vo*            VO对象集合* @param meta*            IMappingMeta* @return* @throws DAOException*/public String[] insertObject(Object[] vo, IMappingMeta meta)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.insertObject(vo, meta);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据VO对象更新数据库* * @param vo*            VO对象*/public int updateVO(SuperVO vo) throws DAOException {return updateVOArray(new SuperVO[] { vo });}/*** 根据VO对象中指定列更新数据库* * @param vos*            VO对象* @param fieldNames*            指定列* @throws DAOException*/public void updateVO(SuperVO vo, String[] fieldNames) throws DAOException {updateVOArray(new SuperVO[] { vo }, fieldNames);}/*** 根据VO对象数组更新数据库* * @param vo*            VO对象*/public int updateVOArray(SuperVO[] vos) throws DAOException {return updateVOArray(vos, null);}/*** 根据VO对象数组中指定列更新数据库* * @param vos*            VO对象* @param fieldNames*            指定列*/public int updateVOArray(SuperVO[] vos, String[] fieldNames)throws DAOException {return updateVOArray(vos, fieldNames, null, null);}/*** 根据VO对象集合更新数据库* * @paramvos VO对象集合*/public void updateVOList(List vos) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);manager.update(vos);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据VO对象和MappingMeta信息更新数据库* * @param vo*            VO对象* @param meta*            MappingMeta信息*/public int updateObject(Object vo, IMappingMeta meta) throws DAOException {return updateObject(vo, meta, null);}public int updateObject(Object[] vos, IMappingMeta meta)throws DAOException {return updateObject(vos, meta, null);}/*** 在数据库中删除一组VO对象。* * @param SuperVO*            [] vos* @throws Exception*             异常说明。*/public UpdateResultVO execUpdateByVoState(SuperVO[] vos,String[] selectedFields) throws DAOException {ArrayList<SuperVO> listInsert = new ArrayList<SuperVO>();ArrayList<SuperVO> listUpdate = new ArrayList<SuperVO>();ArrayList<SuperVO> listDelete = new ArrayList<SuperVO>();for (int i = 0; i < vos.length; i++) {int status = vos[i].getStatus();if (status == nc.vo.pub.VOStatus.NEW)listInsert.add(vos[i]);else if (status == nc.vo.pub.VOStatus.UPDATED)listUpdate.add(vos[i]);else if (status == nc.vo.pub.VOStatus.DELETED)listDelete.add(vos[i]);}UpdateResultVO rsVO = new UpdateResultVO();if (listInsert.size() > 0) {rsVO.setPks(insertVOArray((SuperVO[]) listInsert.toArray(new SuperVO[listInsert.size()])));}if (listUpdate.size() > 0) {updateVOArray((SuperVO[]) listUpdate.toArray(new SuperVO[listUpdate.size()]), selectedFields);}if (listDelete.size() > 0) {deleteVOArray((SuperVO[]) listDelete.toArray(new SuperVO[listDelete.size()]));}return rsVO;}/*** 在数据库中删除一组VO对象。* * @param SuperVO*            [] vos* @throws Exception*             异常说明。*/public UpdateResultVO execUpdateByVoState(SuperVO[] vos)throws DAOException {return execUpdateByVoState(vos, null);}/*** 在数据库中删除一个VO对象。* * @param vo*            VO对象* @throws DAOException*             如果删除出错抛出DAOException*/public void deleteVO(SuperVO vo) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);manager.delete(vo);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 在数据库中删除一组VO对象。* * @param vos*            VO数组对象* @throws DAOException*             如果删除出错抛出DAOException*/public void deleteVOArray(SuperVO[] vos) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);manager.delete(vos);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 在数据库中根据类名和PK数组删除一组VO对象集合* * @param className*            要删除的VO类名* @param pks*            PK数组* @throws DAOException*             如果删除出错抛出DAOException*/public void deleteByPKs(Class className, String[] pks) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);manager.deleteByPKs(className, pks);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 在数据库中根据类名和条件删除数据* * @param className*            VO类名* @param wherestr*            条件* @throws DAOException*             如果删除出错抛出DAOException*/public void deleteByClause(Class className, String wherestr)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);manager.deleteByClause(className, wherestr);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}public void deleteByClause(Class className, String wherestr,SQLParameter params) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);manager.deleteByClause(className, wherestr, params);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 在数据库中根据类名和PK删除一个VO对象集合* * @param className*            VO类名* @param pk*            PK值* @throws DAOException*             如果删除出错抛出DAOException*/public void deleteByPK(Class className, String pk) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);manager.deleteByPK(className, pk);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 在数据库中删除一组VO对象集合* * @param vos*            VO对象集合* @throws DAOException*             如果删除出错抛出DAOException*/public void deleteVOList(List vos) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);manager.delete(vos);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据VO中的属性值和IMappingMeta删除指定数据* * @param vo*            vo对象* @param meta*            IMappingMeta* */public void deleteObject(Object vo, IMappingMeta meta) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);manager.deleteObject(vo, meta);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据VO数组中的属性值和IMappingMeta删除指定数据* * @param vo*            vo数组* @param meta*            IMappingMeta*/public void deleteObject(Object[] vos, IMappingMeta meta)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);manager.deleteObject(vos, meta);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据VO数组中的属性值和IMappingMeta删除指定数据* * @param vo*            vo数组* @param meta*            IMappingMeta* @param dealNull*            是否处理空字段* @throws DAOException*/public void deleteObject(Object[] vos, IMappingMeta meta, boolean dealNull)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);manager.deleteObject(vos, meta, dealNull);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据IMappingMeta返回VO数组集合* * @param vo*            vo对象* @param meta*            IMappingMeta*/public Collection retrieve(Object vo, IMappingMeta meta)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.retrieve(vo, meta);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据IMappingMeta返回指定Class的VO对象集合* * @param className*            类名称* @param meta*            IMappingMeta*/public Collection retrieveAll(Class className, IMappingMeta meta)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.retrieveAll(className, meta);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据IMappingMeta和查询条件返回指定Class的VO对象集合* * @param className*            类名称* @param condition*            查询条件* @param meta*            IMappingMeta*/public Collection retrieveByClause(Class className, IMappingMeta meta,String condition) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.retrieveByClause(className, meta, condition);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}public Collection retrieveByClause(Class className, IMappingMeta meta,String condition, SQLParameter params) throws DAOException {return retrieveByClause(className, meta, condition, (String[]) null,params);}public Collection retrieveByClause(Class className, IMappingMeta meta,String condition, String[] fields, SQLParameter params)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.retrieveByClause(className, meta, condition, fields,params);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据条件和 IMappingMeta查询返回指定列的VO集合* * @param className*            类名* @param meta*            IMappingMeta* @param condition*            指定条件* @param fields*            查询列*/public Collection retrieveByClause(Class className, IMappingMeta meta,String condition, String[] fields) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.retrieveByClause(className, meta, condition, fields);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据IMappingMeta和传入条件删除数据* * @param meta* @param wherestr* @return* @throws DAOException*/public int deleteByClause(IMappingMeta meta, String wherestr)throws DAOException {return deleteByClause(meta, wherestr, null);}public int deleteByClause(IMappingMeta meta, String wherestr,SQLParameter params) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.deleteByClause(meta, wherestr, params);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据PK和IMappingMeta删除指定数据* * @param meta*            IMappingMeta* @param pk*            主键* @return* @throws DAOException*/public int deleteByPK(IMappingMeta meta, String pk) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.deleteByPK(meta, pk);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据IMappingMeta和公司pk返回指定列的VO集合* * @param c*            VO类名称* @param meta*            IMappingMeta* @param pkCorp*            公司PK* @param selectedFields*            指定字段数组* @return* @throws DAOException*/public Collection retrieveByCorp(Class c, IMappingMeta meta, String pkCorp,String[] selectedFields) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.retrieveByCorp(c, meta, pkCorp, selectedFields);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据公司PK和IMappingMeta返回对应VO集合* * @param c*            VO类* @param meta*            IMappingMeta* @param pkCorp*            公司PK* @return* @throws DAOException*/public Collection retrieveByCorp(Class c, IMappingMeta meta, String pkCorp)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.retrieveByCorp(c, meta, pkCorp);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据IMappingMeta和pk返回指定字段对应的VO对象* * @param className*            VO类名* @param meta*            IMappingMeta* @param pk*            主键* @return* @throws DAOException*/public Object retrieveByPK(Class className, IMappingMeta meta, String pk,String[] selectedFields) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.retrieveByPK(className, meta, pk, selectedFields);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据IMappingMeta和pk返回对应的VO对象* * @param className*            VO类名* @param meta*            IMappingMeta* @param pk*            主键* @return* @throws DAOException*/public Object retrieveByPK(Class className, IMappingMeta meta, String pk)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.retrieveByPK(className, meta, pk);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据 IMappingMeta和条件更新VO对象对应的数据库* * @param vos*            VO对象* @param meta*            IMappingMeta* @param whereClause*            条件语句* @return* @throws DAOException*/public int updateObject(Object vo, IMappingMeta meta, String whereClause)throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.updateObject(vo, meta, whereClause);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 根据 IMappingMeta和条件更新VO对象数组对应的数据库* * @param vos*            VO对象* @param meta*            IMappingMeta* @param whereClause*            条件语句* @return* @throws DAOException*/public int updateObject(Object[] vos, IMappingMeta meta, String whereClause)throws DAOException {return updateObject(vos, meta, whereClause, null);}/*** 根据 IMappingMeta和条件更新VO对象数组对应的数据库* * @param vos*            VO对象* @param meta*            IMappingMeta* @param whereClause*            条件语句* @return* @throws DAOException*/public int updateObject(Object[] vos, IMappingMeta meta,String whereClause, SQLParameter param) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.updateObject(vos, meta, whereClause, param);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}/*** 获得数据源类型* * @param key*            nc.vo.pub.oid.OID* @throws java.sql.SQLException*             异常说明。*/public int getDBType() {return DataSourceCenter.getInstance().getDatabaseType(dataSource);}/*** 返回数据库相关的表名* * @param dbType*            int* @param tableName*            java.lang.String* @return java.lang.String* @since :V1.00*/protected String getTableName(int dbType, String tableName) {String strTn = tableName;switch (dbType) {case DBConsts.POSTGRESQL:case DBConsts.ALCEDO:strTn = tableName.toLowerCase();break;case DBConsts.ORACLE:case DBConsts.OSCAR:case DBConsts.DB2:// ORACLE需将表名大写strTn = tableName.toUpperCase();break;}return strTn;}/*** 判断数据表是否存在* * @param tableName*            数据表名称* @return* @throws DAOException*             出错抛出DAOException*/public boolean isTableExisted(String tableName) throws DAOException {if (tableName == null)throw new NullPointerException("TableName is null!");PersistenceManager manager = null;ResultSet rs = null;try {manager = createPersistenceManager(dataSource);int dbType = manager.getDBType();DatabaseMetaData dbmd = manager.getMetaData();if (dbType == DBConsts.ORACLE || dbType == DBConsts.OSCAR|| dbType == DBConsts.DB2 || dbType == DBConsts.POSTGRESQL|| dbType == DBConsts.ALCEDO || dbType == DBConsts.GBASE) {rs = dbmd.getTables(manager.getCatalog(), manager.getSchema(),getTableName(dbType, tableName),new String[] { "TABLE" });} else {rs = dbmd.getTables(null, null,getTableName(dbType, tableName),new String[] { "TABLE" });}while (rs.next()) {return true;}return false;} catch (Exception e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {DBUtil.closeRs(rs);if (manager != null)manager.release();}}public int getMaxRows() {return maxRows;}public void setMaxRows(int maxRows) {this.maxRows = maxRows;}/*** Modified by cch , add this method 根据PK和IMappingMeta删除指定数据* * @param meta*            IMappingMeta* @param pk*            主键* @return* @throws DAOException*/public int deleteByPKs(IMappingMeta meta, String[] pks) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.deleteByPKs(meta, pks);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}public void setAddTimeStamp(boolean addTimeStamp) {this.addTimestamp = addTimeStamp;}public boolean getAddTimeStamp() {return addTimestamp;}private PersistenceManager createPersistenceManager(String ds)throws DbException {PersistenceManager manager = PersistenceManager.getInstance(ds);manager.setMaxRows(maxRows);manager.setAddTimeStamp(addTimestamp);return manager;}public int updateVOArray(final SuperVO[] vos, String[] fieldNames,String whereClause, SQLParameter param) throws DAOException {PersistenceManager manager = null;try {manager = createPersistenceManager(dataSource);return manager.update(vos, fieldNames, whereClause, param);} catch (DbException e) {Logger.error(e.getMessage(), e);throw new DAOException(e.getMessage());} finally {if (manager != null)manager.release();}}
}

其他数据库操作类,如
1.nc.impl.am.db.DBAccessUtil(资产管理数据库持久化操作。(非元数据))
2.nc.jdbc.framework.PersistenceManager (对象持久化管理器抽象类)

他人封装的接口和实现类:
1)、BaseDaoUtil后台实现接口:IPrivateUtilMaintain

package nc.itf.feikai;import java.util.List;
import java.util.Map;import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.BusinessException;
import nc.vo.uap.pf.PfProcessBatchRetObject;/**   * @Description BaseDaoUtil后台实现接口* @author 王晓旭* @date 2019年5月9日  */
public interface IPrivateUtilMaintain {/**   * @Description 执行单据动作(独立事务),private端使用*/ Object executeAction__RequiresNew(String actionName, String billtype, AggregatedValueObject aggVO) throws BusinessException;/**   * @Description 批量执行单据动作(独立事务),private端使用*/ PfProcessBatchRetObject executeBatch__RequiresNew(String actionName, String billtype, AggregatedValueObject[] aggVOs) throws BusinessException;/**   * @Description 获取 NC 默认数据源名称*/String getDefaultDataSource();/**   * @Description 根据SQL语句查询并返回多条结果。* @param arguments 可变参数。 查询 NC 系统数据只需传递SQL语句。查询其他系统数据,第一个参数为数据源名称,第二个参数为SQL语句。*/List<Map<String, Object>> listResult(String... arguments);/**   * @Description 根据SQL语句查询并返回单条结果。* @param arguments 可变参数。 查询 NC 系统数据只需传递SQL语句。查询其他系统数据,第一个参数为数据源名称,第二个参数为SQL语句。*/Map<String, Object> mapResult(String... arguments);/**   * @Description 根据SQL语句查询并返回单个字段多个结果。* @param arguments 可变参数。 查询 NC 系统数据只需传递SQL语句。查询其他系统数据,第一个参数为数据源名称,第二个参数为SQL语句。*/List<String> columnList(String... arguments);/**   * @Description 根据SQL语句查询并返回单个字段单个结果。* @param arguments 可变参数。 查询 NC 系统数据只需传递SQL语句。查询其他系统数据,第一个参数为数据源名称,第二个参数为SQL语句。*/String columnResult(String... arguments);/**   * @Description 根据SQL语句查询并返回VO List集合。* @param clazz 返回的VO类型* @param arguments 可变参数。 查询 NC 系统数据只需传递SQL语句。查询其他系统数据,第一个参数为数据源名称,第二个参数为SQL语句。*/<T> List<T> beanList(Class<T> clazz, String... arguments);/**   * @Description 根据SQL语句查询并返回单个VO。* @param clazz 返回的VO类型* @param arguments 可变参数。 查询 NC 系统数据只需传递SQL语句。查询其他系统数据,第一个参数为数据源名称,第二个参数为SQL语句。*/<T> T beanResult(Class<T> clazz, String... arguments);
}

2)、BaseDaoUtil后台实现类:PrivateUtilMaintainImpl

package nc.impl.feikai;import java.util.List;
import java.util.Map;import nc.bs.framework.common.InvocationInfoProxy;
import nc.itf.feikai.IPrivateUtilMaintain;
import nc.pub.feikai.BaseDaoUtil;
import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.BusinessException;
import nc.vo.uap.pf.PfProcessBatchRetObject;/**   * @Description BaseDaoUtil后台实现类* @author 王晓旭* @date 2019年5月9日  */
public class PrivateUtilMaintainImpl implements IPrivateUtilMaintain {/** 执行单据动作(独立事务)*/@Overridepublic Object executeAction__RequiresNew(String actionName, String billtype, AggregatedValueObject aggVO) throws BusinessException {return BaseDaoUtil.executeAction(actionName, billtype, aggVO);}/** 执行单据动作(独立事务)*/@Overridepublic PfProcessBatchRetObject executeBatch__RequiresNew(String actionName, String billtype, AggregatedValueObject[] aggVOs) throws BusinessException {return BaseDaoUtil.executeBatch(actionName, billtype, aggVOs);}/** 获取 NC 默认数据源名称*/@Overridepublic String getDefaultDataSource() {return InvocationInfoProxy.getInstance().getUserDataSource();}@Overridepublic List<Map<String, Object>> listResult(String... arguments) {return BaseDaoUtil.listResult(arguments);}@Overridepublic Map<String, Object> mapResult(String... arguments) {return BaseDaoUtil.mapResult(arguments);}@Overridepublic List<String> columnList(String... arguments) {return BaseDaoUtil.columnList(arguments);}@Overridepublic String columnResult(String... arguments) {return BaseDaoUtil.columnResult(arguments);}@Overridepublic <T> List<T> beanList(Class<T> clazz, String... arguments) {return BaseDaoUtil.beanList(clazz, arguments);}@Overridepublic <T> T beanResult(Class<T> clazz, String... arguments) {return BaseDaoUtil.beanResult(clazz, arguments);}}

3)、BaseDaoUtil:数据库操作工具类

package nc.pub.feikai;import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;import nc.bs.dao.BaseDAO;
import nc.bs.framework.common.NCLocator;
import nc.bsutil.mmpub.dpub.SysParamUtil;
import nc.itf.feikai.IPrivateUtilMaintain;
import nc.itf.uap.IUAPQueryBS;
import nc.itf.uap.IVOPersistence;
import nc.itf.uap.pf.IplatFormEntry;
import nc.jdbc.framework.generator.SequenceGenerator;
import nc.jdbc.framework.processor.BeanListProcessor;
import nc.jdbc.framework.processor.BeanProcessor;
import nc.jdbc.framework.processor.ColumnListProcessor;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.jdbc.framework.processor.MapListProcessor;
import nc.jdbc.framework.processor.MapProcessor;
import nc.md.data.access.NCObject;
import nc.md.persist.framework.IMDPersistenceQueryService;
import nc.pub.iufo.basedoc.OrgUtil;
import nc.ui.gl.contrastpub.Currency;
import nc.ui.pub.bill.BillCardPanel;
import nc.ui.pubapp.util.CardPanelValueUtils;
import nc.vo.org.OrgVO;
import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.BusinessException;
import nc.vo.pubapp.AppContext;
import nc.vo.uap.pf.PfProcessBatchRetObject;/**   * @Description 数据库操作工具类* @author 王晓旭* @date 2019年5月9日  */
public class BaseDaoUtil {/*** 私有构造,禁止创建实例*/private BaseDaoUtil() {throw new IllegalStateException("Utility class");}/***  client中执行增删改的数据源*/public static final IVOPersistence clientDao = NCLocator.getInstance().lookup(IVOPersistence.class);/***  client查询数据源*/public static final IUAPQueryBS query = NCLocator.getInstance().lookup(IUAPQueryBS.class);/***  NC默认数据源*/public static final BaseDAO dao = new BaseDAO();/***  BaseDaoUtil private端实现类,用于client端调用*/public static final IPrivateUtilMaintain ipu = NCLocator.getInstance().lookup(IPrivateUtilMaintain.class);/*** 数据源参数名*/private static final String DATASOURCE = "dataSource";/*** sql语句参数名*/private static final String SQL = "sql";/**   * @Description 根据SQL语句查询并返回多条结果。* @param arguments 可变参数。 查询 NC 系统数据只需传递SQL语句。查询其他系统数据,第一个参数为数据源名称,第二个参数为SQL语句。*/@SuppressWarnings("unchecked")public static List<Map<String, Object>> listResult(String... arguments) {List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();// 参数集合Map<String, String> argumentsMap = parseArguments(arguments);try {// 执行查询result = (List<Map<String, Object>>) new BaseDAO(argumentsMap.get(DATASOURCE)).executeQuery(argumentsMap.get(SQL), new MapListProcessor());} catch (Exception e) {return result;}return result;}/**   * @Description 根据SQL语句查询并返回单条结果。* @param arguments 可变参数。 查询 NC 系统数据只需传递SQL语句。查询其他系统数据,第一个参数为数据源名称,第二个参数为SQL语句。*/@SuppressWarnings("unchecked")public static Map<String, Object> mapResult(String... arguments) {Map<String, Object> result = new HashMap<String, Object>(16);// 参数集合Map<String, String> argumentsMap = parseArguments(arguments);try {// 执行查询result = (Map<String, Object>) new BaseDAO(argumentsMap.get(DATASOURCE)).executeQuery(argumentsMap.get(SQL), new MapProcessor());} catch (Exception e) {return result;}return result;}/**   * @Description 根据SQL语句查询并返回单个字段多个结果。* @param arguments 可变参数。 查询 NC 系统数据只需传递SQL语句。查询其他系统数据,第一个参数为数据源名称,第二个参数为SQL语句。*/@SuppressWarnings("unchecked")public static List<String> columnList(String... arguments) {List<String> result = new ArrayList<String>();// 参数集合Map<String, String> argumentsMap = parseArguments(arguments);try {// 执行查询result = (List<String>) new BaseDAO(argumentsMap.get(DATASOURCE)).executeQuery(argumentsMap.get(SQL), new ColumnListProcessor());} catch (Exception e) {return result;}return result;}/**   * @Description 根据SQL语句查询并返回单个字段单个结果。* @param arguments 可变参数。 查询 NC 系统数据只需传递SQL语句。查询其他系统数据,第一个参数为数据源名称,第二个参数为SQL语句。*/public static String columnResult(String... arguments) {String result = null;// 参数集合Map<String, String> argumentsMap = parseArguments(arguments);try {// 执行查询result = (String) new BaseDAO(argumentsMap.get(DATASOURCE)).executeQuery(argumentsMap.get(SQL), new ColumnProcessor());} catch (Exception e) {return result;}return result;}/**   * @Description 根据SQL语句查询并返回VO List集合。* @param clazz 返回的VO类型* @param arguments 可变参数。 查询 NC 系统数据只需传递SQL语句。查询其他系统数据,第一个参数为数据源名称,第二个参数为SQL语句。*/@SuppressWarnings("unchecked")public static <T> List<T> beanList(Class<T> clazz, String... arguments) {List<T> result = new ArrayList<T>();// 参数集合Map<String, String> argumentsMap = parseArguments(arguments);try {// 执行查询result = (List<T>) new BaseDAO(argumentsMap.get(DATASOURCE)).executeQuery(argumentsMap.get(SQL), new BeanListProcessor(clazz));} catch (Exception e) {return result;}return result;}/**   * @Description 根据SQL语句查询并返回单个VO。* @param clazz 返回的VO类型* @param arguments 可变参数。 查询 NC 系统数据只需传递SQL语句。查询其他系统数据,第一个参数为数据源名称,第二个参数为SQL语句。*/@SuppressWarnings("unchecked")public static <T> T beanResult(Class<T> clazz, String... arguments) {T result = null;// 参数集合Map<String, String> argumentsMap = parseArguments(arguments);try {// 执行查询result = (T) new BaseDAO(argumentsMap.get(DATASOURCE)).executeQuery(argumentsMap.get(SQL), new BeanProcessor(clazz));} catch (Exception e) {return result;}return result;}/*** @Description 解析参数数组转化为Map集合* @param arguments 参数数组* @return 参数Map集合*/private static Map<String, String> parseArguments(String... arguments) {// 参数Map集合Map<String, String> argumentsMap = new HashMap<String, String>(16);// 数据源名称String dataSource = null;// SQL语句String sql = null;// 解析参数数组if (1 == arguments.length) {sql = arguments[0];} else if (2 == arguments.length) {dataSource = arguments[0];sql = arguments[1];} else {throw new IllegalArgumentException("The number of arguments is wrong");}// 添加参数至  Map集合argumentsMap.put(DATASOURCE, dataSource);argumentsMap.put(SQL, sql);return argumentsMap;}/*** @Description 执行单据动作* @param actionName 单据动作名称* @param billtype 单据类型编码* @param aggVO 单据聚合VO*/ public static Object executeAction(String actionName, String billtype, AggregatedValueObject aggvo) throws BusinessException {IplatFormEntry iIplatFormEntry = (IplatFormEntry) NCLocator.getInstance().lookup(IplatFormEntry.class.getName());return iIplatFormEntry.processAction(actionName, billtype, null, aggvo, null, null);}/*** @Description 批量执行单据动作* @param actionName 单据动作名称* @param billtype 单据类型编码* @param aggVO 单据聚合VO*/ public static PfProcessBatchRetObject executeBatch(String actionName, String billtype, AggregatedValueObject[] aggvos) throws BusinessException {IplatFormEntry iIplatFormEntry = (IplatFormEntry) NCLocator.getInstance().lookup(IplatFormEntry.class.getName());return (PfProcessBatchRetObject) iIplatFormEntry.processBatch(actionName, billtype, null, aggvos, null, new HashMap<Object, Object>(16));}/*** @Description 根据主键获VO(过滤dr=1的记录)* @param pk 单据主键* @param clazz VO类型*/ @SuppressWarnings("unchecked")public static <T> T getVOByPk (String pk, Class<T> clazz) {T t = null;try {IMDPersistenceQueryService query = NCLocator.getInstance().lookup(IMDPersistenceQueryService.class);NCObject ncObj = query.queryBillOfNCObjectByPKWithDR(clazz, pk, true);if (null == ncObj) {return null;}if (AggregatedValueObject.class.isAssignableFrom(clazz)) {t = (T) ncObj.getContainmentObject();} else {t = (T) ncObj.getModelConsistObject();}} catch (Exception e) {return t;}return t;}/**   * @Description 获取 NC 客户端当前登录用户主键*/ public static String getPkUser() {return AppContext.getInstance().getPkUser();}/**   * @Description 获取 NC 客户端业务日期*/ public static String getBusiDate() {return AppContext.getInstance().getBusiDate().toString();}/*** @Description 获取 NC 集团主键*/public static String getPkGroup() {return AppContext.getInstance().getPkGroup();}/**   * @Description 获取新的系统主键*/ public static String getNCPK() {return new SequenceGenerator().generate();}/**   * @Description 获取新的随机主键*/ public static String getUUIDPK() {return UUID.randomUUID().toString().substring(0, 20);}/**   * @Description 根据币种编码获取币种主键*/ public static String getPkCurrtypeByCode(String currtypeCode) throws BusinessException {return Currency.getCurrtypePkByCode(currtypeCode);}/**   * @Description 获取卡片界面取值工具类*/ public static CardPanelValueUtils getKeyValue(BillCardPanel panel) {return new CardPanelValueUtils(panel);}/**   * @Description 根据组织编码获取组织主键*/ public static String getPkOrgByCode(String orgCode) {OrgVO vo = OrgUtil.getOrgVOByCode(orgCode);return null == vo ? null : vo.getPk_org();}/*** @Description 获取业务单元级系统参数(布尔型)* @param pk_org 组织主键* @param param 系统参数编码*/public static boolean getSysParamAsBoolean(String pk_org, String param) {return SysParamUtil.getParamValueAsBoolean(pk_org, param);}/*** @Description 获取文件大小,单位MB* @param file* @return*/public static int getFileMbSize(File file) {long bit = file.length();if(bit < 1024) {return 0;}bit = bit >> 10 >> 10 ; return ( int ) bit;}}

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

 BillQuery<AggUserVO> bq = new BillQuery<>(AggUserVO.class);bq.query(pk);

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

HYPubBO_Client.queryBillVOByPrimaryKey(AggUserVO.class, pk)

//前后台都能用

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

//获取当前数据源
InvocationInfoProxy.getInstance().getUserDataSource();

NC数据库相关操作常用API相关推荐

  1. 导学+初识MySQL+SQL语法规范+数据库相关操作+表相关操作+MySql存储引擎介绍+MySQL表的创建+测试数据类型

    一.导学 1.什么是SQL? 结构化查询语言,数据库管理系统通过SQL语言来管理数据库中的数据: 2.SQL语言组成部分 (1)DDL--数据定义语言,主要定义数据库.表.视图.索引和触发器等 (2) ...

  2. C语言面试高频问题:自己代码实现字符串相关的常用API

    参考:C语言面试高频问题:自己代码实现字符串相关的常用API 作者:图触靓 发布时间: 2020-08-08 13:31:33 网址:https://blog.csdn.net/bhbhhyg/art ...

  3. python数据库环境详解_python中MySQL数据库相关操作

    一 安装基本环境 1 简介 MySQL 基于TCP 协议之上的开发,但是网络连接后,传输的数据必须遵循MySQL的协议,封装好MySQL协议的包,就是驱动程序 MySQL 的驱动 MySQLDB 最有 ...

  4. Hive数据类型、数据库相关操作、表的相关操做、数据的导入导出

    文章目录 Hive数据类型 1.基本数据类型 2.集合数据类型 案例实操 3.类型转化 数据库的相关操作 1.创建数据库 2.查询数据库 3.修改数据库 4.删除数据库 表的相关操作 1.建表 2.管 ...

  5. Django 数据库相关操作 (六)

    前言 上篇已经介绍过模型相关操作,并创建好了数据库及相关表字段,接下来将通过以下表在Django中进行表数据的增删改查. from django.db import modelsclass Stude ...

  6. selenium—元素、浏览器、元素信息操作常用API

    目录 一.常用元素操作 二.浏览器常用API 三.元素信息操作方法 # 导包 from selenium import webdriver 一.常用元素操作 .send_keys()   # 输入 . ...

  7. mysql数据库相关操作

    1.进入mysql/bin目录下输入mysqladmin processlist; 2.启动mysql,输入show processlist; 如果有 SUPER 权限,则可以看到全部的线程,否则,只 ...

  8. stream操作常用API 示例详解

    简介 从JDK8开始,增加了一新特性Stream流式操作,Stream中提供了非常多的API供大家使用,灵活的使用这些API,可以非常的方便且优美的实现我们的代码逻辑. 流式操作主要用来处理数据(比如 ...

  9. laravel数据库相关操作

    SQL查询 配置好数据库连接后,可以使用 DB facade 运行查询.DB facade 为每种类型的查询提供了方法:select.update.insert.delete 和 statement. ...

  10. Mysql(4)——数据库相关操作

    (1)查看所有数据库 (2)创建数据库 create database 数据库名 charset=utf8 (3)使用数据库并且查看当前使用的是哪个数据库 (4)删除数据库

最新文章

  1. 控制台程序如何加图标
  2. 5分钟学会如何创建spring boot项目
  3. JavaSE 几个常见术语区别
  4. mysql数据库安全机制研究意义_MySQL数据库的安全机制
  5. 人眼分辨 PPI_扒一扒,PPI、LPI、DPI分辨率三兄弟~
  6. 2012年最佳免费网站和移动应用 PSD 界面素材揭晓
  7. SQL Server中的sysobjects” 是什么意思
  8. Django 1.8.2 文档 1
  9. $科大讯飞开放平台——语音听写接口的使用
  10. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-10.Springboot2.x用户登录拦截器开发实战...
  11. 从零开始搭建物联网平台(三)数模设计
  12. 1口百兆光纤收发器工业导轨式发送机接收机1百兆光1百兆电工业以太网光纤收发器
  13. 登记车架号/VIN码用车架号识别
  14. 第一篇自用博客:git的操作(防忘记用的hh)封面是我最爱的歌手ikura强推她的每一首歌,简直就是行走的唱片啊有木有!
  15. 【Linux】树莓派控制人体红外传感器
  16. acmev2怎么用_lua-resty-acme: ACMEv2 客户端和 Let's Encrypt 证书的自动化管理
  17. 电脑控制手机,脚本帮你实现更强大的功能
  18. 常用品牌交换机端口镜像(Port Mirroring)配置
  19. 纽约大学计算机和信息科学专业排名,纽约大学计算机科学与信息系统世界排名2021年最新排名第21(QS世界排名)...
  20. C字符串操作strlen/strnlen_s详解

热门文章

  1. 软著证书多久可以下来?软著的有效期是多长时间?
  2. H5 新增内容大全(包括Web Workers、SSE、WebSocket的详细使用代码)
  3. 修复 WordPress 的 is_dir(): open_basedir restriction in effect. 错误
  4. 【Turtle玫瑰汇总】温柔且浪漫至极——“玫瑰的花期到了“
  5. python爬虫我是斗图之王
  6. 申克SCHENCK动平衡机显示器维修CAB700系统控制面板
  7. C++核心编程学习1
  8. 安全漏洞(1)-Log4j2远程代码执行漏洞,log4j2漏洞验证
  9. 项目总结(2023.10)
  10. 百度地图室内Poi检索