“疑难杂症”乱炖一篇

近期在上线一个模块,工作量比较大,故晚上经常性加班,工作日生活有点两点一线。

期间遇到了形形色色的一些问题,大致记录下。

工具:IDEA

Q1:修改了一个Entity,准备删掉一个字段。

启动tomcat时候,localhost:8080 无法正常打开网页。

Debugger显示:Connected to the target VM, address: '127.0.0.1:57484', transport: 'socket   (刚又尝试了一遍,删除Entity中的变量,正常部署项目.....尴尬了)


原因:由于在项目中的这些字段是直接映射到数据库字段里的,所以当我在Entity里删了该字段之后,导致无法映射成功。

解决方法:

目前对字段对应的变量做什么操作。

原考虑:

1,直接在Entity的变量上增加注解:@Transient,防止映射到数据库里

2,直接删除变量


显然第二种实在点。


Q2:页面跳转问题(Ajax)

类似流程:前端页面输入一个数值,该值传入后台Controller里,进行查询数据库,如果查询到该值,要在原页面上提示 数值已存在,如果没查询到,则执行某insert 操作,跳转到另一个页面。

解决方法:

采用Ajax控制,大致代码逻辑如下:

$.ajax({
    url: "check",      //进入到Conroller中的@GetMapping(path = "/check", produces = MediaType.APPLICATION_JSON_VALUE)
    type: "GET",       //GET方式
    data: { K: V },     //传入后台的值
    dataType: "json",
    success: function(data) {
        if (data.result== 0) {                     //根据后台ResponseEntity传回的数据,在后台代码中,
                                                    //我这里用ModelMap model,将model.addAttribute("result" ,result); result=0 表示查询不到数据
                                                    //return ResponseEntity.ok(model)
         location.href = "nextPage";       //跳转到新页面
        } else {
            $("#errorText").text("数值已存在");     //弹出提示语
            return;
        }
    },
})

具体语法请百度下,我用得相对简单。


Q3:设置查询时间(只是觉得有趣,故记录下)

前端页面有个时间范围的搜索条件,当输入值之后,并没有将endDate设置为选定日期的23:59:59,似乎是因为项目中没有使用插件的原因

为了统一下风格,故在后台进行处理。

这里将时间设置为查询日期的23:59:59

Calendar endCalendar = Calendar.getInstance();
endCalendar.setTime(endDate);
//时:分:秒
endCalendar.set(Calendar.HOUR_OF_DAY, 23);
endCalendar.set(Calendar.MINUTE, 59);
endCalendar.set(Calendar.SECOND, 59);
return endCalendar.getTime();

Q4:映射数据库字段问题(比较有趣的点)MySQl
某表新增加一个字段,在Entity里只需增加一个成员变量即可( JPA 规范机制)
但新增字段比较特殊,是一个外键,即用来关联另一张表的 XXid。
实操:
成员变量为另一个表对应的Entity类型 XX,映射到数据库之后显示为XX_id。
即在Entity中直接创建了一个对象 作为成员变量。










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值