MyBaits常见问题总结

1、mybaits中使用小于号

【错误分析】
如过在mybatis中使用<>&等字符,配置文件中会提示如下错误
The content of elements must consist of well-formed character data or markup.
【解决方法】
方法一   如果是在动态语句中,则需要转换

符号:

方法二 (推荐), 此时特殊符号不进行解析

【参考资料】

2、mybatis 可以返回map类型对象

注意:resultMap  和 resultType 区别

3、mybaits 查询sql中in的写法

4、mybatis 查询like 正规写法

正确方法一:

正确方法二:
like “%”#{name}”%”
错误方法
like ‘%”#{name}”%’
【参考资料】

上传文件大小导致失败

【问题场景】 在本地开发环境,上传超过2MB的数据都可以成功上传至服务器。但是,在测试环境出现上传超过200K就会失败的问题。 前端使用的是springMVC,中间件使用Nginx + Tomcat

【排查方法】 1、检查不同环境下的spring配置文件中,上传文件大小限制

两个环节的代码都是同样的配置,没有问题,排查spring问题

2、检查两个环境的tomcat配置 conf/server.xml

当maxPostSize<=0时,POST方式上传的文件大小不会被限制。配置一致,排除tomcat配置问题, 注意:maxPostSize参数只有当request的Content-Type为“application/x-www-form-urlencoded”时起作用。 参考资料 https://blog.csdn.net/lafengwnagzi/article/details/72846195

3、检查两个环境的nginx配置

最终发现,测试环境的nginx配置不一致导致,问题定位成功 参考资料 https://blog.csdn.net/bruce128/article/details/9665503

【总结】 需要问题不要着急,先自查,从自己的代码入手。如果代码确认没有问题,就外范围扩大,看一下外部环境是否存在问题,一般情况都可以准确定位。

对于类中静态变量的控制问题

java静态对象和非静态对象有什么区别?

比对如下:

  • 静态对象
  • 非静态对象

拥有属性:

  • 是类共同拥有的
  • 是类各对象独立拥有的

内存分配:

  • 内存空间上是固定的
  • 空间在各个附属类里面分配

分配顺序:

  • 先分配静态对象的空间

继而再对非静态对象分配空间,也就是初始化顺序是先静态在开发过程中遇到使用静态变量,将它作为计数标识等作用,除了通过synchronized进行控制外,发现并没有解决在高并发问题。还要在将此类设计为单例模式,在单例模式中对于对象的生成也要加锁(synchronized),这样在外层类进行调用时就可以控制住线程的高并发问题。

 

参考文档:http://devbean.blog.51cto.com/448512/203501/

通过HttpClient类调用其他子系统中action方法

最近只是项目中偶然用到,所以拿来在这里简单记录一下,以便后期使用。这里只是简单的HttpClient使用方法,而且这里只是用了get方法,关于其他HttpClient相关内容,待后续学习后补充。
下文代码中使用GET的请求方式,那么所有参数都直接放到页面的URL后面用问号与页面地址隔开,每个参数用&隔开,例如:http://java.sun.com/?name=liudong&mobile=123456

 

【ps】
HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient,更多使用 HttpClient 的应用可以参见http://wiki.apache.org/jakarta-httpclient/HttpClientPowered。HttpClient 项目非常活跃,使用的人还是非常多的。目前 HttpClient 版本是在 2005.10.11 发布的 3.0 RC4 。