今天用spring+hibernate+struts2写了一个简单的示例程序,使用spring来管理hibernate处理数据。在保存过后发现表中的数据为乱码,因为不知道乱码到底是出在何处,于是开始单步跟踪调试。跟踪到保存方法的地方还是中文,没有出现乱码(见图)
于是想到不是struts传输时导致乱码,那肯定就是数据库方面的乱码了,但是数据中也编码为utf-8,也能存中文,想想问题应该出在spring的连接数据库的地方,于是到网上查了下,果然是连接的时候有问题,在配置文件中给设置编码格式为utf-8,重启服务,果然好了。
修改spring中关于数据源的配置参数:
数据库链接方式:
jdbc:mysql://localhost:3306/mysystem?characterEncoding=utf-8
jdbc:mysql://localhost:3306/mysystem?characterEncoding=utf-8
在执行数据录入后,终于中文显示正常了。
在应用hibernate管理mysql数据库是不仅要注意web服务器和数据库的编码问题,同样要注意持久化层数据传输的编码问题。