json格式数据后端接受收问题
几天前做的一个小DEMO在测试的时候后台始终接收不到前端传来的forn表单中的全部信息,几经波折终于找到问题根源,在此记录下。
前端代码
在jsp页面中我是使用的ajax向后端传递表单信息,具体代码如下
$(function () {
$("button").click(function () {
var content = $("textarea").val();
var what = $("form").serialize();
var sendtxt = {
name:$("input[name=name]").val(),
author:$("input[name=author]").val(),
publish:$("input[name=publish]").val(),
publishdate:$("input[name=publishdate]").val(),
page:$("input[name=page]").val(),
price:$("input[name=price]").val(),
content: content
}
$.getJSON("book/addBook",sendtxt,function (data) {
if(data){
window.location.href="index.jsp"
}else{
alert("图书添加失败");
}
})
})
})
问题解决
然而始终报错,错误信息400,查了下因该是参数的问题,仔细比对前后端参数名发现并没有问题,最终发现自己栽在了Date类型的数据传递上了,我在后台实体类中将前台传递来的publishdate(不要问我为啥不用驼峰命名法,数据库里就这么写的,为了保持一致性,这起名简直了)以Date类型存储,然而前端传后台的publishdate却是默认为String类型的,简直酸爽,最后重写实体类中的publishdate为String类型数据解决。
Spring框架中命名需要规范
问题描述
223333,这几天给一起学习的小伙伴发现一个很奇葩的问题,他在给数据库添加删除语句时前端始终报500,而自己却认为逻辑上一点问题也没有,我瞅了两眼,这哥们的代码规范简直一塌糊涂,删除语句的方法名居然是以query开头的,初见时可把我给整懵逼了,这也行?在经过断点调试后我判断他的删除语句的逻辑上没有啥问题,又问了下报错信息有没有看,发现他真的后台报500的时候连错误信息都不看(或者看不懂?)在此放一下错误信息:
ERROR [org.hibernate.util.JDBCExceptionReporter] -<Connection is read-only. Queries leading to datamodification are not allowed>
org.hibernate.exception.GenericJDBCException: could not executeupdate query
问题解决
很明显啊权限变成了read-only也就是只读,不过一个删除的操作为什么会操作权限只有只读呢?我又联想到了他不规范的方法命名,以"public int query*();"来执行删除操作,然后又检查了下spring的配置文件,发现这么一段
<!--配置事务增强,事务如何切入-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!--所有方法都是事务方法-->
<tx:method name="*"/>
<!--以query开始的所有方法-->
<tx:method name="query*" read-only="true"/>
</tx:attributes>
</tx:advice>
到这里就很清楚了,以"query"开头的所有方法,方法的权限限定为只读。到此问题发现,这事儿后哥们才发现对于平时撸代码时我们命名规则一定要遵守,否则最后苦恼的一定是自己,哈哈。
含有外键的表数据删除问题
问题简洁描述+解决
最近练手的一部分小项目中有的数据库表要求添加外键,然而删除某个表的某一行时,又因为其包含外键,是的数据无法删除,故而需要将从表先删除,再删除主表。
毕设进度记录及下阶段目标
这几天终于可以从Realsence SR300获取到点云数据(ply格式),我费劲巴拉看了几天的源码加上查资料找资料,最后发现官方给的小应用中已经集成好了这一功能,欲哭无泪啊。在三维影像中可以直接保存信息为ply格式的点云数据,我的天,感觉又白忙活了,不过没关系,慢慢来吧。也就是说目前我所作能做到的是从相机采集数据,保存为ply格式后再通过程序使得ply格式数据转化为pcd格式数据,再通过自己写的(抄的)显示点云的QT界面完成对点云数据的显示。且容我展示下采集的数据:
上面这一坨能明显看到戴眼镜的一张脸,这就是我,还是挺帅的(自夸),哈哈
仔细一我这做的都是些啥玩意儿,东拼西凑的简单操作嘛。。。难过,后面先忙忙开题报告和翻译吧,开题报告也真的有点愁,只做个数据采集真的没啥好写的,决定后面将采集的点云信息进行配准以及删除平面,滤波去噪什么的我觉得我也可以做,一步步来吧。