spring+hibernate+mysql软件开发注意事项

    最近,做了一个项目,用的是spring+hibernate+mysql。在开发系统的过程中,遇到了很多情况,在这里给大家分享一下。

1,MySql数据库乱码的问题。

       中国的程序员常常遇见乱码的问题,因为很多软件开发工具都是外国人写的。有些乱码很好解决,如浏览器,myEclipse,java虚拟机。但是,有些乱码则常常让人头疼。由于我的整个系统的编码方式都设置的是utf8,所以我也将我的数据库的编码方式都设置为utf8,这是很符合道理的,编码要统一吗。但是当我这样做了之后,从数据库控制台插入中文数据后,浏览器和myEclipse后台都显示乱码。经过一番的摸索后才知道,mySql控制台的输入数据编码方式是gbk,这让被gbk方式编码的数据,在数据库中又被utf8编码了一次,最终导致了乱码。这让我感到为难了,系统其他设置都是utf8,难道说都要改为gbk吗?后来考虑到utf8兼容gbk,便怀着试试看的心情,只将数据库的编码方式改为gbk,在调试一下系统,成功了。

        成功解决了一个表的乱码问题(原因是这个表我重新建立的,并在建立的过程中,设置了utf8编码方式),但是其他表不成功。后来才知道,在建表的时候,一定不要忘了设置编码方式。我在建表时,没有设置,系统采用了默认的编码方式latin1。我用可视化建表工具重新设置表格的编码方式为utf8,重新调试还是不行。最后,将原有的表格删除,重新建表,并在建表时设置编码方式为utf8,再调试一下,成功了。


2,spring的问题

当我把我的新项目部署好后,调试程序,后台总是报错。显示是配置文件的错误,这个错误的原因就是我把同样用spring+hibernate+mysql环境开发的项目与正在开发的项目同时运行了,后来把以前的旧项目删除了,调试成功。

3,Hibernate的问题

    我是用工具自动生成的hibernate实体配置文件,里面的文件中的



<id
        name="departmentId"
        type="java.lang.String"
        column="departmentId"
    >
        <meta attribute="field-description">
           @hibernate.id
            generator-class="assigned"
            type="java.lang.String"
            column="departmentId"


        </meta>
        <generator class="assigned" />
    </id>

非常关键,处理不好,就不能插入数据。有一个实体无论我改成什么样的主键生成类型包括:identity,native都不能插入主键,并报错。后来索性将generator-class="assigned"
和<generator class="assigned" />删除了,再调试成功了。


猜你喜欢

转载自51smarter.iteye.com/blog/1689605