...
代码块 | ||||||
---|---|---|---|---|---|---|
| ||||||
package smartbi.ext.function.upgrade; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.Timestamp; import org.apache.log4j.Logger; import smartbi.repository.UpgradeTask; import smartbi.util.DBType; /** * */ public class UpgradeTask_New extends UpgradeTask { /** */ private static final Logger LOG = Logger.getLogger(UpgradeTask_New.class); @Override public boolean doUpgrade(Connection conn, DBType type) { PreparedStatement prep = null; try { Statement sta = conn.createStatement(); ResultSet rs = sta.executeQuery("select c_resid from t_restree where c_resid = 'func_Process1000LimitOfIn'"); if(!rs.next()){ prep = conn.prepareStatement("insert into t_restree(c_resid, c_resname, c_resalias, c_pid, c_restype, c_order, c_perm, c_resdesc, c_created, c_lastmodified) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); prep.setString(1, "func_Process1000LimitOfIn"); prep.setString(2, "Process1000LimitOfIn"); prep.setString(3, "Process1000LimitOfIn"); prep.setString(4, "catalog_string"); prep.setString(5, "FUNCTION"); prep.setInt(6, 9000); prep.setString(7, "<Permissions inherited=\"YES\" role=\"ADMINS\"><Permission perm=\"READ\" descend=\"FOLDER_FILE\"/></Permissions>"); prep.setString(8, "处理多选树参数或下拉框参数超过1000时报错问题,如Process1000LimitOfIn(\"A\",下拉参数)。<br/> 参数1:要过滤的字段名(如 table1.A),如果是可视化查询直接拖字段,如果是原生sql,字段最好加英文双引号,如\"table1.A\";参数2:树参数或下拉框参数 <br/>返回值:每超过1000个值生成一个or(如(A in (a,b,c。。。) or A in (d,e,f。。。)) )"); prep.setTimestamp(9, new Timestamp(new java.util.Date().getTime())); prep.setTimestamp(10, new Timestamp(new java.util.Date().getTime())); prep.executeUpdate(); prep.close(); } rs.close(); sta.close(); return true; } catch (SQLException e) { LOG.error("Upgrade UpgradeTask_New '" + this.getClass().getPackage().getName() + "' to " + getNewVersion() + " fail.", e); return false; } } @Override public String getNewVersion() { return "0.0.1"; } } |
2.3 增加自定义函数
在指定的系统函数中的树节点下,增加自定义函数在指定的系统函数中的树节点下,增加自定义函数,该树节点与升级类中指定的父节点(c_pid)相对应