zoukankan      html  css  js  c++  java
  • oracle 获取某表有那些字段,字段类型,长度,名称,注释等

    一个存储过程,或者说SQL,直接查询得到集合。其中核心的表是:user_tab_cols,user_col_commons

    View Code
     /************************************************************************************/
     /*  功能说明:根据表名查询表字段信息                                                */
     /*  参数说明:                                                                      */
     /*         i_table_name                             IN               VARCHAR2     表名                        */
     /*         o_cursor                  OUT  cursor_type       返回游标                */
     /*                                                                                  */
     /*  创建日期         姓名                                                           */
     /*  2013-05-06       路人甲                                                         */
     /*  COPYRIGHT(C) 2004                                                               */
     /*  PINGAN INSURANCE (GROUP) COMPANY OF CHINA.                                      */
     /*  ALL RIGHTS RESERVED .                                                           */
     /************************************************************************************/
    
    create or replace PROCEDURE p_list_table_column(  i_table_name       IN       VARCHAR2,
                                       o_cursor                 OUT      cursor_type)
    AS
    BEGIN
        begin
            open o_cursor for
                    select t1.table_name as tableName, 
                    t1.column_name as columnName, 
                    t1.data_type as dataType, 
                    t1.data_length as dataLength,
                    t2.comments as comments
                  from user_tab_cols t1, user_col_comments t2
                  where t1.table_name = t2.table_name
                   and t1.column_name = t2.column_name
                   and t1.table_name = upper(i_table_name);
        end;
    END p_list_table_column;

    调用获取方法,当前采用IBATIS操作:

    1、实体对象:

    View Code
    /**表管理对象
     * 
     * @author : 路人甲
     * @create_date :2013-5-6 上午08:57:15
     *
     */
    public class TableDataManagerDTO extends BaseDTO {
        
        /**
         * UID
         */
        private static final long serialVersionUID = 1824560673414067948L;
    
        // 表名
        private String tableName;
    
        // 字段名
        private String columnName;
    
        // 字段类型
        private String dataType;
    
        // 字段长度
        private BigDecimal dataLength;
    
        // 备注说明
        private String comments;
    
        public String getColumnName()
        {
            return columnName;
        }
    
        public void setColumnName(String columnName)
        {
            this.columnName = columnName;
        }
    
        public String getComments()
        {
            return comments;
        }
    
        public void setComments(String comments)
        {
            this.comments = comments;
        }
    
        public BigDecimal getDataLength()
        {
            return dataLength;
        }
    
        public void setDataLength(BigDecimal dataLength)
        {
            this.dataLength = dataLength;
        }
    
        public String getDataType()
        {
            return dataType;
        }
    
        public void setDataType(String dataType)
        {
            this.dataType = dataType;
        }
    
        public String getTableName()
        {
            return tableName;
        }
    
        public void setTableName(String tableName)
        {
            this.tableName = tableName;
        }
        
        
    }

    2、工具类:

    View Code
    package com.pingan.saims.scms.systemmanage.util;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import com.opensymphony.oscache.util.StringUtil;
    import com.paic.pafa.app.web.exception.PafaWebException;
    import com.pingan.saims.scms.common.util.EXStringUtil;
    import com.pingan.saims.scms.systemmanage.dto.TableDataManagerDTO;
    import com.pingan.tsv2.tcms.common.util.CURDUtil;
    
    /**动态表获取SQL语句
     * 
     * @author : 路人甲
     * @create_date :2013-5-6 上午09:46:18
     *
     */
    public class TableDataManagerUtil
    {
        /**查询ID,都是以rowid为准**/
        public static final String SEARCH_ROWID = "rowid";
        /**查询条件,都是以rowid为准**/
        public static final String SEARCH_WHERE = "searchWhere";
        
        
        /**获取插入语句
         *  
         * @author : 路人甲
         * @create_date :2013-5-6 上午10:13:06
         * @param tableName 表名
         * @param columnList 字段列表
         * @param param 结果信息
         * @return
         */
        public static String getInsertSQL(String tableName, List<TableDataManagerDTO> columnList, Map<String, Object> param)
        {
            if (columnList == null || columnList.size() == 0)
            {
                return null;
            }
            StringBuffer sqlBuffer = new StringBuffer(50);
            StringBuffer sqlBuffer1 = new StringBuffer(50);
            StringBuffer sqlBuffer2 = new StringBuffer(50);
            for (TableDataManagerDTO column : columnList)
            {
    //             如果是空信息不作修改
                String value = EXStringUtil.stringNull2Str((String)param.get(column.getColumnName()));
                if (value.length() == 0)
                {
                    continue;
                }            
                
                if (sqlBuffer1.length() > 0)
                {
                    sqlBuffer1.append(",");
                }
                sqlBuffer1.append(column.getColumnName());
                
                if (sqlBuffer2.length() > 0)
                {
                    sqlBuffer2.append(",");
                }
                // 根据类型判断一下
                if (column.getDataType().equals("NUMBER"))// 数字
                {
                    sqlBuffer2.append("to_number(").append("'").append(value.replace(",", "")).append("')");
                }
                else if (column.getDataType().equals("DATE"))// 日期 必须都是 'yyyy-mm-dd hh24:mi:ss'
                {
                    sqlBuffer2.append("to_date(").append("'").append(value).append("', 'yyyy-mm-dd hh24:mi:ss')");
                }
                else
                {
                    sqlBuffer2.append("'").append(value).append("'");
                }
                
            }
            sqlBuffer.append("insert into ").append(tableName).append("(").append(sqlBuffer1).append(") values(").append(sqlBuffer2).append(")");
            
            return sqlBuffer.toString();
        }
        
        /**获取修改语句
         *  
         * @author : 路人甲
         * @create_date :2013-5-6 上午10:13:06
         * @param tableName 表名
         * @param columnList 字段列表
         * @param param 结果信息
         * @return
         */
        public static String getUpdateSQL(String tableName, List<TableDataManagerDTO> columnList, Map<String, Object> param)
        {
            if (columnList == null || columnList.size() == 0)
            {
                return null;
            }
            StringBuffer sqlBuffer = new StringBuffer(50);
            StringBuffer sqlBuffer1 = new StringBuffer(50);
            for (TableDataManagerDTO column : columnList)
            {
    //             如果是空信息不作修改
                String value = EXStringUtil.stringNull2Str((String)param.get(column.getColumnName()));
                if (value.length() == 0)
                {
                    continue;
                }
                
                if (sqlBuffer1.length() > 0)
                {
                    sqlBuffer1.append(",");
                }
                sqlBuffer1.append(column.getColumnName()).append(" = ");
                
                if (column.getDataType().equals("NUMBER"))// 数字
                {
                    sqlBuffer1.append("to_number(").append("'").append(value.replace(",", "")).append("')");
                }
                else if (column.getDataType().equals("DATE"))// 日期 必须都是 'yyyy-mm-dd hh24:mi:ss'
                {
                    sqlBuffer1.append("to_date(").append("'").append(value).append("', 'yyyy-mm-dd hh24:mi:ss')");
                }
                else
                {
                    sqlBuffer1.append("'").append(value).append("'");
                }
                
            }
            sqlBuffer.append("update ").append(tableName).append(" set ").append(sqlBuffer1).append(" where ").append(TableDataManagerUtil.SEARCH_ROWID).append(" = '").append(param.get(TableDataManagerUtil.SEARCH_ROWID)).append("'");;
            
            return sqlBuffer.toString();
        }
        
        /**获取删除语句
         *  
         * @author : 路人甲
         * @create_date :2013-5-6 上午10:13:06
         * @param tableName 表名
         * @param rowid 指定列ID
         * @return
         */
        public static String getDeleteSQL(String tableName, String rowid)
        {
            if (StringUtil.isEmpty(rowid))
            {
                return null;
            }
            StringBuffer sqlBuffer = new StringBuffer(50);
            sqlBuffer.append("delete from ").append(tableName).append(" where ").append(TableDataManagerUtil.SEARCH_ROWID).append(" = '").append(rowid).append("'");;
            
            return sqlBuffer.toString();
        }
        
        /**获取查询语句_根据ID
         * 
         * @author : 路人甲
         * @create_date :2013-5-6 上午10:36:53
         * @param tableName 表名
         * @param columnList 字段列表
         * @param rowid 指定列ID
         * @return
         */
        public static String getSelectSQL(String tableName, List<TableDataManagerDTO> columnList, String rowid)
        {
            Map<String, String> param = new HashMap<String, String>();
            param.put(TableDataManagerUtil.SEARCH_ROWID, rowid);
            return getSelectSQL(tableName, columnList, param);
        }
        
        /**获取查询语句_根据条件
         * 
         * @author : 路人甲
         * @create_date :2013-5-6 上午10:36:53
         * @param tableName 表名
         * @param columnList 字段列表
         * @param rowid 指定列ID
         * @return
         */
        public static String getSelectSQL(String tableName, List<TableDataManagerDTO> columnList, Map<String, String> param)
        {
            if (columnList == null || columnList.size() == 0)
            {
                return null;
            }
            StringBuffer sqlBuffer = new StringBuffer(50);
            StringBuffer sqlBuffer1 = new StringBuffer(50);
            for (TableDataManagerDTO column : columnList)
            {
                if (sqlBuffer1.length() > 0)
                {
                    sqlBuffer1.append(",");
                }
                sqlBuffer1.append(column.getColumnName());
                
            }
            sqlBuffer1.append(",").append(TableDataManagerUtil.SEARCH_ROWID).append("||'' as RID");
            sqlBuffer.append("select ").append(sqlBuffer1).append(" from ").append(tableName) ;
            
            if (param != null && param.size() > 0)
            {
                String searchWhere = param.get(TableDataManagerUtil.SEARCH_WHERE);
                String rowid = param.get(TableDataManagerUtil.SEARCH_ROWID);
                
                if (!StringUtil.isEmpty(rowid))
                {
                    sqlBuffer.append(" where ").append(TableDataManagerUtil.SEARCH_ROWID).append(" = '").append(rowid).append("'");
                }
                else if (!StringUtil.isEmpty(searchWhere))
                {
                    sqlBuffer.append(" where ").append(searchWhere);
                }
            }
            
            
            return sqlBuffer.toString();
        }
        
        /**获取表字段信息
         * 
         * @author : 路人甲
         * @create_date :2013-5-6 上午10:51:33
         * @param tableName
         * @return
         * @throws PafaWebException
         */
        @SuppressWarnings("unchecked")
        public static List<TableDataManagerDTO> getColunmListByTableName(String tableName) throws PafaWebException
        {
            Map<String,Object> paraMap = new HashMap<String, Object>(); // 参数Map
            if (StringUtil.isEmpty(tableName))
            {
                throw new PafaWebException("查询表结构异常,没有选择表名!");
            }
            paraMap.put("i_table_name", tableName);
            List<TableDataManagerDTO> columnList = CURDUtil.queryList("tableDataManagerResultList", paraMap); // 获取表结构
            return columnList;
        }
    }

    3、控制类:

    展示页:

    View Code
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
            Map model = new HashMap();
            String tableName = request.getParameter("tableName");
            String searchWhere = request.getParameter("searchWhere");
            try {
                Map<String, String> paramWhere = new HashMap<String, String>();
                paramWhere.put(TableDataManagerUtil.SEARCH_WHERE, searchWhere); // 查询where 后的语句
                List<TableDataManagerDTO> tableDataManagerDTOs = TableDataManagerUtil.getColunmListByTableName(tableName);
                String sql = TableDataManagerUtil.getSelectSQL(tableName, tableDataManagerDTOs, paramWhere);
                Map<String,Object> paraMap = new HashMap<String, Object>(); // 结果信息
                paraMap.put("sql", sql);
                List resultList = CURDUtil.queryList("tableDataManager_list", paraMap);
                model.put("resultList", resultList);
                model.put("tableDataManagerDTOs", tableDataManagerDTOs);
                model.put("tableName", tableName);
                return new ModelAndView(successView, model);
            } catch (PafaWebException e){
                traceLogger.log(this.getClass().getName(), Level.COMMON_ERROR, this
                        .getClass().getName(), "参数:tableName=" + tableName + "系统管理_系统参数设置_表数据维护_查询,发生错误:", JobUtils.getExceptionDetail(e));
                return ExceptionUtils.returnForAjaxErrorView(new PafaWebException("系统管理_系统参数设置_表数据维护_查询,出现异常:" + JobUtils.getExceptionDetail(e)));
            }
        }
    
    
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
            Map model = new HashMap();
            String pageType = request.getParameter("pageType");
            try {
                String tableName = request.getParameter("tableName");
                List<TableDataManagerDTO> tableDataManagerDTOs = TableDataManagerUtil.getColunmListByTableName(tableName);
                // 获取公共类型信息
                CommonInfoDTO commonInfoDTO = BaseCommonCache.getInstanceNew().getCommonInfoDTO(BaseCommonConstants.COMMON_TYPE_29, tableName);
                
                model.put("tableDataManagerDTOs", tableDataManagerDTOs);
                model.put("pageType", pageType);
                model.put("commonInfoDTO", commonInfoDTO);
                
                if ("insert".equals(pageType)) // 新增
                {
                    // 生成序列ID
                }
                else if ("update".equals(pageType)) // 修改
                {
                    String rowid = request.getParameter("rowid");
                    String sql = TableDataManagerUtil.getSelectSQL(tableName, tableDataManagerDTOs, rowid);
                    if (StringUtil.isEmpty(sql))
                    {
                        throw new PafaWebException("查询类型参数异常,没有获取到查询表 "+tableName+" 的语句!");
                    }
                    Map<String,Object> paraMap = new HashMap<String, Object>(); // 结果信息
                    paraMap.put("sql", sql);
                    model.put("resultObj", CURDUtil.queryObject("tableDataManager_list", paraMap));
                }
                else
                {
                    throw new PafaWebException("查询类型参数异常,不存在类型为["+pageType+"]的操作!");
                }
                
                return new ModelAndView(successView, model);
            } catch (PafaWebException e) {
                traceLogger.log(this.getClass().getName(), Level.COMMON_ERROR, this
                        .getClass().getName(), "参数:" + pageType+",发生错误:"+ e, "");
                return ExceptionUtils.returnForAjaxErrorView(new PafaWebException("转向表修改,出现异常:"+e.getMessage()));
            }
        }

    操作页:

    View Code
    package com.pingan.saims.scms.systemmanage.web.controller.tableDataManager;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import com.paic.pafa.app.lwc.core.context.support.PafaCoreContexton;
    import com.paic.pafa.app.web.exception.PafaWebException;
    import com.paic.pafa.app.web.servlet.ModelAndView;
    import com.paic.pafa.app.web.servlet.mvc.AbstractController;
    import com.paic.pafa.logging2.Level;
    import com.paic.pafa.logging2.Logger;
    import com.pingan.saims.scms.systemmanage.dto.TableDataManagerDTO;
    import com.pingan.saims.scms.systemmanage.util.TableDataManagerUtil;
    import com.pingan.tsv2.tcms.common.util.CURDUtil;
    import com.pingan.tsv2.tcms.common.util.ExceptionUtils;
    import com.pingan.tsv2.tcms.common.util.ViewNames;
    
    /**系统管理_系统参数设置_表数据维护_保存
     * 
     * @author : 路人甲
     * @create_date :2013-5-3 下午04:53:23
     *
     */
    @SuppressWarnings("unchecked")
    public class TableDataManagerSaveController extends AbstractController{
    
        //        日志
        private Logger traceLogger = PafaCoreContexton.getInstance().getTracer();
        
        protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
            // 获取当前登陆用户信息
            HttpSession session = request.getSession();
            Map loginInfo = (Map) session.getAttribute("logonInfo");
            Map model = new HashMap();
            String pageType = request.getParameter("pageType");
            try {
                String tableName = request.getParameter("tableName");
                List<TableDataManagerDTO> columnList = TableDataManagerUtil.getColunmListByTableName(tableName);
                Map<String,Object> requestMap = new HashMap<String, Object>(); // 页面获取的Map
                String sql = "";
                
                model.put("tableDataManagerDTO", columnList);
                // 获取页面传输过来的参数
                for (TableDataManagerDTO column : columnList)
                {
                    requestMap.put(column.getColumnName(), request.getParameter(column.getColumnName()));
                }
                if ("insert".equals(pageType)) // 新增
                {
                    sql = TableDataManagerUtil.getInsertSQL(tableName, columnList, requestMap);
                }
                else if ("update".equals(pageType)) // 修改
                {
                    requestMap.put(TableDataManagerUtil.SEARCH_ROWID, request.getParameter(TableDataManagerUtil.SEARCH_ROWID));
                    sql = TableDataManagerUtil.getUpdateSQL(tableName, columnList, requestMap);
                }
                else if ("delete".equals(pageType)) // 删除
                {
                    String rowid = request.getParameter(TableDataManagerUtil.SEARCH_ROWID);
                    sql = TableDataManagerUtil.getDeleteSQL(tableName, rowid);
                }
                else
                {
                    throw new PafaWebException("查询类型参数异常,不存在类型为["+pageType+"]的操作!");
                }
                Map<String,Object> paraMap = new HashMap<String, Object>(); // 参数信息
                paraMap.put("sql", sql);
                CURDUtil.insert("tableDataManager_save", paraMap, loginInfo); // 执行SQL语句
                return new ModelAndView(ViewNames.AJAX_SUCCESS_VIEW, model);
            } catch (PafaWebException e) {
                traceLogger.log(this.getClass().getName(), Level.COMMON_ERROR, this.getClass().getName(), "参数:" + pageType+",发生错误:"+ e, "");
                return ExceptionUtils.returnForAjaxErrorView(new PafaWebException("系统管理_系统参数设置_表数据维护_保存,出现异常:"+e.getMessage()));
            }
        }
    }

    4、SQL-MAP配置:

    View Code
    <!-- 表数据维护 结果集 class="java.util.HashMap"-->
         <resultMap id="tableDataManagerResultMap" class="com.pingan.saims.scms.systemmanage.dto.TableDataManagerDTO">
            <result property="tableName" column="tableName"/>
            <result property="columnName" column="columnName"/>
            <result property="dataType" column="dataType"/>
            <result property="dataLength" column="dataLength"/>
            <result property="comments" column="comments"/>
        </resultMap>
        <!-- 表数据维护 参数 -->    
        <parameterMap id="tableDataManagerParamMap" class="java.util.Map">
             <parameter property="i_table_name" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" />
             <parameter property="o_cursor" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT" />
         </parameterMap>     
        <!-- 表数据维护查询 调用存储过程 -->
         <procedure id="tableDataManagerResultList" resultMap="tableDataManagerResultMap" parameterMap="tableDataManagerParamMap">
            {call scms_statistics_packge.p_list_table_column(?,?)}
        </procedure>
        <!-- 修改 -->
        <update id="tableDataManager_save" parameterClass="java.util.Map">
              $sql$
        </update>
        <!-- 查询 -->
        <select id="tableDataManager_list" resultClass="java.util.HashMap" remapResults="true" parameterClass="java.util.HashMap">
              $sql$
        </select>

    5、列表页面展示:

    View Code
    <script language="javascript">
        //动态刷新
        function refreshForm(){
            $("refreshForm").submit();
        }
        var detail=null;
        function showWindow(url, pageType){
         var iWidth=820;
         var iHeight=600;
            //获得窗口的垂直、水平位置
           var iTop = (window.screen.availHeight-30-iHeight)/2;        
           var iLeft = (window.screen.availWidth-10-iWidth)/2;   
            if(detail&&detail.open&&!detail.closed) {
                alert("新增窗口已打开!请先关闭后再打开!");
                detail.focus();
                return false;
            }
            else{
                detail=window.open("about:blank","_timeDeposit_win",'status,scrollbars,resizable,left='+iLeft+',top='+iTop+',width='+iWidth+',height='+iHeight);
            }
            popupForm.action = url;
            popupForm.target = "_timeDeposit_win";
            popupForm.pageType.value = pageType;
            popupForm.submit();
            detail.focus();
        }
        
        // 修改
        function updateBtn()
        {
            var rowid = $("rowid").value;
            if(rowid == "")
            {
                alert("请选择要修改的信息!");
                return false;
            }
            var url = "/tableDataManagerSaveToController.do?rowid="+rowid;
            showWindow(url, "update");
        }
        // 删除
        function deleteBtn()
        {
            var rowid = $("rowid").value;
            if(rowid == "")
            {
                alert("请选择要删除的信息!");
                return false;
            }
            if (confirm("您确定删除这条信息吗?"))
            {
                var url = "/tableDataManagerSaveController.do?pageType=delete&tableName=<c:out value='${tableName }' />&rowid="+rowid;
                Ajax.loading(url,function(data){
                    alert("删除成功!");
                    refreshForm();
                },false);
            }
        }
        // 选中ID
        function selectedId(rowid)
        {
            // 设置要操作的信息值
            $("rowid").value=rowid;
        }
    </script>
    
    <body bgcolor="#EBEEF7" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    
    <form name="refreshForm" method="post" action="/tableDataManagerListController.do">
        <input type="hidden" name="tableName" value="<c:out value='${tableName }' />"/>
        <input type="hidden" name="searchWhere" value="<c:out value='${searchWhere }' />"/>
    </form>
    <form action="" name="popupForm" id="popupForm" method="post">
        <input type="hidden" name="tableName" value="<c:out value='${tableName }' />"/>
        <input type="hidden" name="pageType" value=""/>
    </form>
    <form name="inputForm" id="inputForm" >
    <input type="hidden" name="rowid" id="rowid" value=""/>
    <table width="100%" border="0" cellpadding="0" cellspacing="0" id="inputTable" class="table_1" STRIPED="false" SELECTABLE="true">
      <tr align="center" class="FixedTitleRow">     
      <!---->
      <td nowrap height="25%" class="td_1">选择</td>
      <c:forEach var="tableDataManagerDTO" items="${tableDataManagerDTOs}" varStatus="j">
          <td nowrap height="25%" class="td_1"><c:out value="${tableDataManagerDTO.columnName }"/><br />(<c:out value="${tableDataManagerDTO.comments }"/>)</td>      
      </c:forEach>
      </tr>
      <tbody class="datatab"  dtolist="abclist">
      <c:if test="${empty resultList}">
      <tr align="center"> 
        <td nowrap class="td_3" colspan="20">没有与查询条件相匹配的数据!</td>
      </tr>
      </c:if>
      <c:forEach var="conferMsg" items="${resultList}" varStatus="i" >
      <tr align="center" > 
        <td nowrap class="td_3">
          <input type="radio" name="id" value="<c:out value="${conferMsg['RID'] }" />" onclick="selectedId('<c:out value="${conferMsg['RID'] }" />');"/>
        </td>
          <c:forEach var="tableDataManagerDTO" items="${tableDataManagerDTOs}" varStatus="j">
            <td nowrap class="td_3">
            <c:choose>
                <c:when test="${tableDataManagerDTO.dataType eq 'DATE' }"><fmt:formatDate pattern="yyyy-MM-dd" value="${conferMsg[tableDataManagerDTO.columnName] }"/></c:when>
                <c:when test="${tableDataManagerDTO.dataType eq 'NUMBER' }"><fmt:formatNumber pattern="#,##0.00" value="${conferMsg[tableDataManagerDTO.columnName] }"/></c:when>
                <c:otherwise><c:out value="${conferMsg[tableDataManagerDTO.columnName] }" /></c:otherwise>
            </c:choose>
            </td>
        </c:forEach>
      </tr>
      </c:forEach>
      </tbody>  
    </table>
    </form>
    <table width="100%">
    <tr><td>&nbsp;</td></tr>
      <tr> 
      <td align="center">
            <input type="button" name="insertBtn" id="insertBtn" class="button23" onclick="updateBtn();" value="修改" />&nbsp;&nbsp;
            <input type="button" name="insertBtn" id="insertBtn" class="button23" onclick="deleteBtn();" value="删除" />
        </td>
      </tr>
    </table>
    </body>

    添加修改页:

    View Code
    <jsp:useBean id="dateNow" class="java.util.Date" />
    <script language="javascript">
      //初始Form
      var init = function() {
        new FormCheck("inputForm",{validateChange:false,allowReSubmit:true,ajax:true,beforeSubmit:beforeSubmit,onAjaxSuccess:gotoPage,ajaxError:gotoFail});
      }
      window.addEvent('domready', init);
    
      //返回提交结果,刷新父页面
      function gotoPage() {
        alert("保存成功!");
        window.close();
        opener.refreshForm();
      }
      
      function beforeSubmit() {
        $("save").disabled=true;
      }
      function gotoFail() {
        $("save").disabled=false;
      }
    </script>
    <body bgcolor="#EBEEF7" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
         <td nowrap height="30" class="address">&nbsp;&middot;当前位置:系统管理&gt;&gt;系统参数设置&gt;&gt;表数据维护&gt;&gt;
         <c:if test="${pageType eq 'update' }">修改</c:if>
         </td>               
      </tr>
    </table>
    <!-- 用款释放信息 -->
    <form name="inputForm" method="post" action="/tableDataManagerSaveController.do">
    <input type="hidden" name="pageType" value="<c:out value="${pageType }"/>">
    <input type="hidden" name="rowid" value="<c:out value="${resultObj['RID'] }"/>">
    <input type="hidden" name="tableName" id="tableName" value="<c:out value="${commonInfoDTO.commonValue }" />"/>
    <table width="98%" border="0" cellpadding="0" cellspacing="0" id="listTable" class="table_1" >
        <tr align="center">
            <td  class="td_1_1">数据表名:<br />
              (在公共类型中修改配置,类型type=29)</td>
              <td  align="left"  class="td_3_3" colspan="3">
                  <c:out value="${commonInfoDTO.commonValue }" />(<c:out value="${commonInfoDTO.commonName }" />)
            </td>
        </tr>
        <tr align="center">
        <c:forEach var="tableDataManagerDTO" items="${tableDataManagerDTOs }" varStatus="i">
            <c:if test="${i.index > 0 and i.index%2==0 }">
            </tr>
            <tr align="center">
            </c:if>
            <td  class="td_1_1"><c:out value="${i.index+1 }" /><c:out value='${tableDataManagerDTO.columnName }' /><br />(<c:out value='${tableDataManagerDTO.comments }' />)</td>
              <td  align="left"  class="td_3_3">
              <c:choose>
                  <c:when test="${tableDataManagerDTO.columnName eq 'CREATED_BY' 
                              or  tableDataManagerDTO.columnName eq 'UPDATED_BY' }">
                      <!-- 特殊处理(创建人、修改人) -->
                      <c:choose>
                          <c:when test="${empty resultObj }">
                              <input type="text" style="height:20px;" 
                                  name="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                  id="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                  class="input1" 
                                  value="<c:out value='${userInfo.userUID }' />" />
                          </c:when>
                          <c:when test="${!empty resultObj and tableDataManagerDTO.columnName eq 'CREATED_BY'}">
                              <input type="text" style="height:20px;" 
                                  name="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                  id="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                  class="input1" 
                                  value="<c:out value='${resultObj[tableDataManagerDTO.columnName]}' />" />
                          </c:when>
                          <c:otherwise>
                              <input type="text" style="height:20px;" 
                                  name="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                  id="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                  class="input1" 
                                  value="<c:out value='${userInfo.userUID }' />" />
                          </c:otherwise>
                      </c:choose>
                  </c:when>
                  <c:when test="${tableDataManagerDTO.columnName eq 'DATE_CREATED' 
                              or  tableDataManagerDTO.columnName eq 'DATE_UPDATED' }">
                      <!-- 特殊处理(创建时间、修改时间) -->
                     <c:choose>
                          <c:when test="${empty resultObj }">
                              <input type="text" style="height:20px;" size="20"  
                                  name="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                  id="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                  class="input2"
                                  value="<fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${dateNow }"/>" />
                          </c:when>
                          <c:when test="${!empty resultObj and tableDataManagerDTO.columnName eq 'DATE_CREATED'}">
                              <input type="text" style="height:20px;" size="20"  
                                  name="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                  id="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                  class="input2"
                                  value="<fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${resultObj[tableDataManagerDTO.columnName]}"/>" />
                          </c:when>
                          <c:otherwise>
                              <input type="text" style="height:20px;" size="20" 
                                  name="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                  id="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                  class="input2 " 
                                  value="<fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${dateNow }"/>" />
                          </c:otherwise>
                      </c:choose>         
                  </c:when>
                  <c:otherwise>
                      <c:choose>
                          <c:when test="${tableDataManagerDTO.dataType eq 'NUMBER' }">
                          <!-- 数字 -->
                          <input type="text" style="height:20px;" 
                              name="<c:out value='${tableDataManagerDTO.columnName }' />" 
                              id="<c:out value='${tableDataManagerDTO.columnName }' />" 
                              maxlength="<c:out value='${tableDataManagerDTO.dataLength}' />" 
                              class="validate['number[<c:out value='${tableDataManagerDTO.dataLength}' />]'] input1" 
                              value="<c:out value='${resultObj[tableDataManagerDTO.columnName]}' />" />
                          </c:when>
                          <c:when test="${tableDataManagerDTO.dataType eq 'DATE' }">
                          <!-- 日期 -->
                          <input type="text" style="height:20px;" size="20"
                              name="<c:out value='${tableDataManagerDTO.columnName }' />" 
                              id="<c:out value='${tableDataManagerDTO.columnName }' />" 
                              class="input2"
                              value="<fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${resultObj[tableDataManagerDTO.columnName] }"/>" />
                          </c:when>
                          <c:otherwise>
                              <c:choose>
                                  <c:when test="${tableDataManagerDTO.dataLength > 40}">
                                      <textarea cols="30" rows="2" 
                                          name="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                          id="<c:out value='${tableDataManagerDTO.columnName }' />"><c:out value='${resultObj[tableDataManagerDTO.columnName]}' /></textarea>
                                  </c:when>
                                  <c:when test="${tableDataManagerDTO.dataLength < 5}">
                                      <input type="text" style="height:20px;" size="5"
                                          name="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                          id="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                          maxlength="<c:out value='${tableDataManagerDTO.dataLength}' />" 
                                          class="input1" 
                                          value="<c:out value='${resultObj[tableDataManagerDTO.columnName]}' />" />
                                  </c:when>
                                  <c:otherwise>
                                      <input type="text" style="height:20px;" size="<c:out value='${tableDataManagerDTO.dataLength}' />"
                                          name="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                          id="<c:out value='${tableDataManagerDTO.columnName }' />" 
                                          maxlength="<c:out value='${tableDataManagerDTO.dataLength}' />" 
                                          class="input1" 
                                          value="<c:out value='${resultObj[tableDataManagerDTO.columnName]}' />" />
                                  </c:otherwise>
                              </c:choose>
                          </c:otherwise>
                      </c:choose>
                  </c:otherwise>
              </c:choose>
              </td>
        </c:forEach>
        </tr>
    </table>
    <br>
    <table width="100%">
        <tr align="center">
          <td  align="center" colspan="2">
            <input type='button' class="button4 validate['submit']" name='save' id='save' value="提交" />
            <input type="button" name="btnClose" value="关闭" onClick="javascript:window.close();" class="button23" />
          </td>
        </tr>
    </table>
    </form>
    </body>
  • 相关阅读:
    Sql Server Tempdb原理-日志机制解析实践
    Sql Server 高频,高并发访问中的键查找死锁解析
    SQL Server 高并发Insert数据解析,实践
    Sql Server 2012新特性 Online添加非空栏位.
    SQL Server 利用批量(batchsize)提交加快数据生成/导入
    SQL Server 最小化日志操作解析,应用
    SQL Server 统计信息(Statistics)-概念,原理,应用,维护
    SQL Server 索引知识-应用,维护
    BigDecimal加减乘除计算
    如何判断一个String字符串不为空或这不为空字符串
  • 原文地址:https://www.cnblogs.com/a393060727/p/3065123.html
Copyright © 2011-2022 走看看