BaseDao常用接口包装类

来源:互联网 发布:excel2010数据按钮 编辑:程序博客网 时间:2024/06/05 17:08

NC常用接口,包括调用存储过程,二进制获取更新

注意,二进制更新获取不要批量调用,可能会造成Oracle游标不释放,最终导致数据库崩溃!

接口类:

public abstract interface ISjkSQLHelper {public abstract Object getSingleColumn(String sql) throws Exception;public abstract Object[] getSingleRow(String sql) throws Exception;public abstract List<Object[]> getRows(String sql) throws Exception;public abstract List<Map> getMaps(String sql) throws Exception;public abstract SuperVO getSingleSuperVOByPK(Class c, String pk) throws Exception;public abstract Collection getSuperVOsByWhere(Class c, String wheresql) throws Exception;public abstract byte[] getBlob(String sql) throws Exception;public abstract Object getByProcessor(String sql, BaseProcessor processor) throws Exception;public abstract boolean updateBlob(String sql, byte[] bytes) throws Exception;public abstract int updateSQL(String sql) throws Exception;public abstract int updateSQLBySQLParam(String sql, SQLParameter SQLParam) throws Exception;public abstract int updateSQLs(List<String> sql) throws Exception;public abstract String[] insertVOsWithPK(SuperVO[] VO) throws Exception;public abstract String[] insertVOs(SuperVO[] VO) throws Exception;public abstract int updateVOs(SuperVO[] vos) throws Exception;public abstract String callProc(String proname, List<String> invars) throws Exception;public abstract void sendEmail(String mailHost, String user, String pwd, String from,String[] to, String[] cc, String subject, String text, Attachment[] attachments)throws Exception;}
实现类:

public class SjkSQLHelper implements ISjkSQLHelper {@Overridepublic Object getSingleColumn(String sql) throws BusinessException {BaseDAO dao = new BaseDAO();return dao.executeQuery(sql, new ColumnProcessor());}@Overridepublic Object[] getSingleRow(String sql) throws BusinessException {BaseDAO dao = new BaseDAO();return (Object[]) dao.executeQuery(sql, new ArrayProcessor());}@Overridepublic List<Object[]> getRows(String sql) throws BusinessException {BaseDAO dao = new BaseDAO();return (List<Object[]>) dao.executeQuery(sql, new ArrayListProcessor());}@Overridepublic List<Map> getMaps(String sql) throws BusinessException {BaseDAO dao = new BaseDAO();return (List<Map>) dao.executeQuery(sql, new MapListProcessor());}@Overridepublic int updateSQL(String sql) throws BusinessException {BaseDAO dao = new BaseDAO();return dao.executeUpdate(sql);}@Overridepublic String[] insertVOsWithPK(SuperVO[] vos) throws BusinessException {BaseDAO dao = new BaseDAO();return dao.insertVOArrayWithPK(vos);}@Overridepublic String[] insertVOs(SuperVO[] vos) throws BusinessException {BaseDAO dao = new BaseDAO();return dao.insertVOArray(vos);}@Overridepublic int updateVOs(SuperVO[] vos) throws BusinessException {BaseDAO dao = new BaseDAO();return dao.updateVOArray(vos);}@Overridepublic int updateSQLs(List sqls) throws BusinessException {BaseDAO dao = new BaseDAO();if (sqls.size() == 0)return 0;for (int i = 0; i < sqls.size(); i++) {String sql = (String) sqls.get(i);dao.executeUpdate(sql);}return sqls.size();}@Overridepublic String callProc(String proname, List invars) throws Exception {PersistenceManager persistence = PersistenceManager.getInstance();Connection conn = persistence.getJdbcSession().getConnection();CallableStatement callState = conn.prepareCall("{call " + proname + "}");int n = invars.size() + 1;for (int i = 1; i < n; i++)callState.setString(i, (String) invars.get(i - 1));callState.registerOutParameter(n, Types.VARCHAR);callState.execute();return callState.getString(n);}@Overridepublic void sendEmail(String mailHost, String user, String pwd, String from, String[] to,String[] cc, String subject, String text, Attachment[] attachments) throws Exception {MailSender sender = new MailSender(mailHost, user, pwd);sender.sendMail(from, to, cc, subject, text, attachments);}@Overridepublic SuperVO getSingleSuperVOByPK(Class c, String pk) throws Exception {BaseDAO dao = new BaseDAO();return (SuperVO) dao.retrieveByPK(c, pk);}@Overridepublic Collection getSuperVOsByWhere(Class c, String wheresql) throws Exception {BaseDAO dao = new BaseDAO();return dao.retrieveByClause(c, wheresql);}@Overridepublic byte[] getBlob(String sql) throws Exception {BaseDAO dao = new BaseDAO();ArrayList list = (ArrayList) dao.executeQuery(sql, new BlobArrayListProcessor(new int[] { 0 }));Object[] objs = (Object[]) list.get(0);byte[] bytes = (byte[]) objs[0];return bytes;}@Overridepublic boolean updateBlob(String sql, byte[] bytes) throws Exception {PersistenceManager persistence = PersistenceManager.getInstance();JdbcSession session = persistence.getJdbcSession();SQLParameter param = new SQLParameter();param.addBlobParam(bytes);int result = session.executeUpdate(sql, param);return true;}@Overridepublic Object getByProcessor(String sql, BaseProcessor processor) throws Exception {BaseDAO dao = new BaseDAO();return dao.executeQuery(sql, processor);}@Overridepublic int updateSQLBySQLParam(String sql, SQLParameter SQLParam) throws Exception {PersistenceManager persistence = PersistenceManager.getInstance();JdbcSession session = persistence.getJdbcSession();return session.executeUpdate(sql, SQLParam);}}



0 0
原创粉丝点击