检测用户名是否存在,连数据库并返回前端

Java web项目,老大说加个功能,要能检测名称是否在数据库中存在,没有的话可以插进去。

之前网上看了几个帖子都不全,没有把前后端流程全加进来的,这里全包含了。

效果如下:

html:

<a class="btn btn-default" id="check" onclick="checkTablename()">检查表名</a>

js:

<script type="text/javascript">
    function checkTablename(){
        var new_table_name = document.getElementById("new_table_name").value;
        if(new_table_name == "") {
            alert("表名不能为空");
            return;
        }
        $.ajax({
            type:"POST",
            url:"/base_service/ar_monitor_sql_generate/validateName/ajax",
            data:"new_table_name="+new_table_name,
            success: function (data) {
                if(data == "true")
                    alert("恭喜你!表名没有被占用!");
                else {
                    alert("抱歉!表名已存在!");
                }
            }
        });

    }
</script>

后台部分:

1. domain层定义

public class RerunSqlGenerateInfo extends BaseDomain implements Serializable {

    private String new_table_name ;

    public String getNew_table_name() {
        return new_table_name;
    }

    public void setNew_table_name(String new_table_name) {
        this.new_table_name = new_table_name;
    }
}

1. controller拿到url:

    @RequestMapping(value = "/ar_monitor_sql_generate/validateName/ajax", method = RequestMethod.POST)
    public void checkName(RerunSqlGenerateInfo obj,HttpServletRequest request,HttpServletResponse response) {
        String new_table_name = request.getParameter("new_table_name");
        logger.info("controller " + new_table_name);
        obj.setNew_table_name(new_table_name);
        boolean flag = rerunSqlGenerateInfoService.checkName(obj);
        JsonUtil<RerunSqlGenerateInfo> jsonUtil = new JsonUtil<RerunSqlGenerateInfo>();
        if(flag)
            jsonUtil.writeResponse(response, Boolean.FALSE.toString());
        else{
            jsonUtil.writeResponse(response, Boolean.TRUE.toString());
        }
    }

2. 交给service层处理业务逻辑:

    @Override
    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
    public boolean checkName(RerunSqlGenerateInfo obj) {
        int number = rerunSqlGenerateInfoDao.findTableCount(obj);
        logger.info("tableCount   "+number);
        if(number!=0)
            return true;
        else return false;
    }

3. dao层的映射

 @Override
    public int findTableCount(RerunSqlGenerateInfo obj) {
        return queryCount("com.jd.data.manage.dao.RerunSqlGenerateInfoDao.findTableCount", obj);
    }

4. mybatis里的sql语句配置:

<mapper namespace="com.jd.data.manage.dao.RerunSqlGenerateInfoDao">
    <select id="findTableCount" parameterType="com.jd.data.manage.domain.RerunSqlGenerateInfo"
                     resultType="java.lang.Integer">
        <if test="new_table_name != null and new_table_name != '' and new_table_name != 'null'">
        <![CDATA[
			 	select count(1) from(
                select tablename from rerun.tablename where tablename = #{new_table_name}
                )a
			]]>
        </if>
    </select>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值