栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

myBatis与Spring编码中遇到的常见问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

myBatis与Spring编码中遇到的常见问题

1.前后端对接时,显示私信列表时找不到列表

错误代码:

//List.jsp中:
私信

报错原因:

MessageControl.java中显示的返回与指定用户的私信页面的方法调用为:

@RequestMapping(value = "/communications/{userName}", method = RequestMethod.GET)
public String message(@PathVariable("userName") String userName, HttpSession session)

传入的参数${receiver}没有被识别,后端传入的是communicationList变量,属于前后端对接问题

解决方法:

将${receiver}更改为${com.receiver}

List.jsp中:


														
${com.receiver} 
${com.hasNewMessage}	
私信
	
	

2.发送信息时,消息文本不能被正确地传输至后端处理

错误代码:

$("#submit-btn").click(function ())函数中:
	$.post("/send/") 

报错原因:

传递的参数中缺少消息内容message,需要增添消息文本的获取

解决方法:

js中上述的click函数进行修改:

var param = { "content": message };
	$.post("/send/" + userName, param, function (result) {
		$("#box").append(message);
	})

3.消息被正确的发送后,私聊页面聊天框没有新消息的显示,需要刷新页面才可收到

报错原因:

需要增添一个定时器Interval,通过轮询来实现消息栏的刷新

解决方法:

增添轮询函数,思路伪代码为:

var timer = setInterval(function () { query() }, 4000);
function query() {
		var param = { "userName": userName };
		$.post("/query", param, function (result) {
			if result == "true"
				Get and display message content;
end
		})
	}

4.私聊页面聊天框新消息的显示没有换行,每条新消息均在同一行

解决方法:

在div前后加了一个内容,内容空,clear属性使其不受float影响从而避免了高度塌陷

#box > div {
		width: 100%;
	}
	#box>div::before,
	#box>div::after {
		content: '';
		display: table;
		clear: both;
	}

5. 私聊页面聊天框新消息的显示没有以左右对话框的模式进行,只输出文本

错误代码:

$("#submit-btn").click(function ())函数中
	$.post("/send/" + userName, param, function (result) {
		$("#box").append(message);
	})

报错原因:

上述代码在append message时只是单纯的添加在box内容以后,应当设置在左右对话框的leftword, rightword类的内部

解决方法:

第一步:

添加变量

var right = " 

"; var end = "

"

第二步:

$("#submit-btn").click(function ())函数中修改上述post函数
	$.post("/send/" + userName, param, function (result) {
		$("#box").append(right + message + end);
	})

6. 错误代码:

Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'xxx' not found. Available parameters are [0, 1, 2, param3, param1, param2]

传入多个参数时,需要在mapper内给每个参数注解 @Param

//修改前
int update(String sender, String receiver, boolean hasNewMessage);
//增加注解后
int update(@Param("sender") String sender, @Param("receiver") String receiver, @Param("hasNewMessage") boolean hasNewMessage);

7. 错误代码

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'xxxController': Unsatisfied dependency expressed through field 'xxxService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'xxxServiceImpl': Unsatisfied dependency expressed through field 'xxxMapper'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxxMapper' defined in file [xxx,java]: Cannot resolve reference to bean 'sqlSessionFactory' while setting bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in file [xxx.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [xxx.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'baseResultMap'.  Cause: java.lang.ClassNotFoundException: Cannot find class: baseResultMap

在查询语句返回为List时,在.xml中将resultType修改为resultMapper

//mapper代码段
List listCommunication(@Param("sender") String sender);
  
    SELECT
    
    FROM  
    WHERe communication_sender = #{sender,jdbcType=VARCHAR}
  

3. (附加) mybatis&java&sql常见数据类型对应与转换

Mybatis javaSQL
integerint OR IntegerINTEGER
longlong OR java.lang.LongBIGINT
shortshort OR java.lang.ShortSMALLINT
floatfloat OR java.lang.FloatFLOAT
doubledouble OR java.lang.DoubleDOUBLE
characterjava.lang.StringCHAr(1)
stringjava.lang.String VARCHAR
byte byte OR java.lang.ByteTINYINT
booleanboolean OR java.lang.BooleanBIT
datejava.util.Date OR java.sql.DateDATE
timejava.util.Date OR java.sql.TimeTIME
timestampjava.util.Date OR java.sql.TimeStampTIMESTAMP

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/666463.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号