javax.el.PropertyNotFoundException: Property 'XXX' not readable

使用spring框架,自己组装了一个信息搭载类扔到JSP中渲染,大致是这样:

1
UserBasicInfo userInfo = new UserBasicInfo(user);

以及

1
<img id="user_avatar" src="${userInfo.avatar}" class="img-responsive col-md-6" alt="用户头像"/>

这时候运行时就会出现标题中的错误,UserBasicInfo是pojo,是放在UserController.java中的一个非public类。试过把他做成bean仍会有这个错误,之后考虑spring是使用代理来做这些事情的,默认访问权限的类spring可能访问不到,就把这个类单独做成一个文件做成public的,问题解决。

Hibernate com.mysql.jdbc.exceptions.MySQLSyntaxErrorException MYSQL

大作业,使用SpringMVC + Hibernate搭一个小网站,但是中途出现了这个问题,困扰了我一天时间。

是的这个问题很烦人,所以如果你已经尝试过:

  • 查找StackOverflow
  • 多次更换数据库方言
  • 更换数据库驱动
  • 你甚至丧心病狂地更换数据库

仍然没有结果的话,那么你的问题应该就是

你丫是不是把数据库保留字当列名了,真以为SQL不是编程语言啊

血泪的教训,以上

Hibernate 插入中文乱码问题

最近在做JSP大作业,因为懒得写jdbc + 封装字段了,再加上也想学习一下SSH,就使用Hibernate来做持久化。但是中间遇到了中文乱码问题:

向数据库插入中文之后,在sqlbuddy看到的结果是乱码,已经确定乱码问题一定出在Hibernate向数据库插入的过程中。然而明明已经在前端、Servlet、数据库分别设置了字符编码是UTF-8,仍然出现乱码问题。找了很多解决方案终于了解到:Hibernate自己的字符编码默认不是UTF-8,所以要在hibernate.cfg.xml中的connection.url设置如下内容:

1
<property name="connection.url">jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&amp;characterEncoding=UTF-8</property>

设置完成之后,可以正常进行中文操作。