使用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的约束头部重新删除,添加上了一模一样的两行,什么都没动,竟然好了 !好了!

所以,以后出问题的时候,实在找不到解决的办法,看看错误日志,是不是说某个约束不好用什么的,可以试试重新删除,然后在加入删除部分的代码,保存重启。。。

上图中红色框框内的内容是重新写入保存的。

 

好了,以上就是我遇到的问题,有的是自己摸索的,有的是在网上试的,好的好用,有的不好用,最终要经过自己验证的。

欢迎提出问题,一起学习;不足之处,还需继续努力!

 

posted on 2019-03-18 19:12  奋斗的小鸟gogogo  阅读(392)  评论(0编辑  收藏  举报