自动增加表名时,Ajax判断表名是否存在

1 首先,Jsp里的代码, 

<Td class="r" width="15%">
	对应表名:
</Td>
<Td class="l" width="35%">
	<input type="text" id="bean.dybm" name="bean.dybm" maxlength="50" οnblur="tableNameIsRepeat();"/>
</Td>


2 验证表名是否存在的JS:

		function tableNameIsRepeat(){
			var tableName = document.getElementById('bean.dybm').value ;
			if(tableName==''){
				document.getElementById('in_ok').disabled = true ;	
			}else {
				$.ajax({  
					  type: "POST",  
					  url: "${ctx}/dirManage_checkTableNameIsExist.do",  
					  data: "tableName=" + tableName,  
					  success: function(msg){  
					  	if(msg=='true'){
							alert('表名'+tableName+'已存在,请重新输入表名.') ;
							document.getElementById('bean.dybm').focus() ;
							document.getElementById('in_ok').disabled = true ;	
					  	}else {
							document.getElementById('in_ok').disabled = false ;
						 }
					  }  
			    });   
			}
		}


3 Action中,接收这个表名参数,验证之后,向前台返回值

	/**
	 * 检查新建的表名是否存在
	 * @return
	 */
	public String checkTableNameIsExist() {
		String tableName = getRequest().getParameter("tableName") ;
		if(tableName!=null){
			tableName = tableName.trim().toUpperCase() ;
			boolean isExist = directoryManageService.tableNameIsExist(tableName) ;
			
			try {
				if (isExist) {
					getResponse().getWriter().write("true") ;
				} else {
					getResponse().getWriter().write("false");
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		
		
		return NONE ;
	}


4 底层 DaoImpl中,

	public boolean tableNameIsExist(String tableName) throws DataAccessException {
		
		try {
			DatabaseMetaData dbmd = getSession().connection().getMetaData();
			ResultSet rs  = dbmd.getTables(null, null,  tableName, null );
			if (rs.next()){
				logger.debug("表名" + tableName + "已存在!") ;
				return true ;
			}else{
				logger.debug("表名" + tableName + "不存在。") ;
				return false ;
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		} 
		
		return true ;
		
	}


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值