使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)
使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二)
以上两篇已经把流程说明以及具体的代码实现完成,下面来说下,开发中经常遇到的问题,总结如下所示:
1.启动查询时,会报错:SQL dialect is not configured ,
提示你配置方言,打开菜单File,选择settings,然后在inspection - sql -中把方言的√去除,截图如下所示:
2.启动时:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
这个是说明根据表生成的接口文件(PersonMapper.java)和映射文件(PersonMapper.xml)文 件没有绑定成功,导致PersonMapper接口中的方法是找不到对应的映射文件中的SQL ID,需要注意下,接口文件和映射文件是一一匹配对应,都没问题,需要看看文件是否扫描到。
当还没有解决问题时,可以在pom.xml文件中添加如下配置:
在pom.xml文件中的build中添加如下信息: <resources> <resource> <directory>src/main/java</directory><!--所在的目录--> <includes><!--包括目录下的.properties,.xml文件都会扫描到--> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources>
这个是因为你在maven工程创建以后,看看编译后的目录里面有没有XML问,如下图所示,我的就是没有编译后的XML文件,导致绑定失败,添加后成功了:
3.web中报错:Element async-supported is not allowed here,
需要把web中的 2.5 改成3.0即可。截图如下所示:
4.在idea中查询SQL时出现乱码:
把版本都改为一致的编码,在database的配置中,添加utf8的编码,在MySQL中设置表的编码是utf-8,把IDEA中的编码格式改为UTF-8,最终把所有编码格式改为一直,就不会出现乱码了,出现了乱码就有不一致的地方,方法有很多,我进改了其中的几个,若不能解决,可以搜下其他的博客,截图如下所示:
设置MySQL中的安装文件中的my.ini中,设置编码改为utf-8;截图如下所示:
把IDEA中的编码格式设置为UTF-8,截图如下所示:
在下面两个文件中添加编码到最后:-Dfile.encoding=UTF-8
5.modelandview传到前台的乱码问题:
modelAndView本质上即使 把传入给它的值加入到request对象中,然后在相对应的jsp中使用EL表达式将值取出来展示或处理。
EL表达式:L(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码 更加简化。
在配置文件中加上下面代码,强制限制请求和响应编码
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
6.启动项目的时候,明明前一天还好好的,结果第二天项目后台报了错误日志:
Caused by: org.xml.sax.SAXParseException; lineNumber: 29; columnNumber: 28; cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明。
这个错误有点坑,一直找问题没找到,头发都揪掉了三根!!!
最终,更坑的是,把MVC的约束头部重新删除,添加上了一模一样的两行,什么都没动,竟然好了 !好了!
所以,以后出问题的时候,实在找不到解决的办法,看看错误日志,是不是说某个约束不好用什么的,可以试试重新删除,然后在加入删除部分的代码,保存重启。。。
上图中红色框框内的内容是重新写入保存的。
好了,以上就是我遇到的问题,有的是自己摸索的,有的是在网上试的,好的好用,有的不好用,最终要经过自己验证的。
欢迎提出问题,一起学习;不足之处,还需继续努力!