Hibernate读写MySQL数据库

来源:互联网 发布:杰视帮和凤凰美工 编辑:程序博客网 时间:2024/06/11 17:44

   今天学习了使用Hibernate访问MySQL数据库的一些东西,从网上下载了刘长炯翻译的《MyEclipse Hibernate 快速入门 中文版》,看了一下,对Hibernate这个有了大体上的了解。

   首先,我从我理解的角度说一下什么是hibernate,我以前是做.NET开发的,在做对于数据库操作的时候,总喜欢自己把对数据库的操作封装到一个类里面,然后在项目中进行调用,这样提高代码复用率,减少因为多次编写数据库操作语句造成的失误,而hibernate基本上就是相当于这个类库,把对数据库的操作封装起来,让我们自己调用,这样确实方便多了。

   下面对我做的练习出错的地方做一个叙述,希望大家不要犯同样的错误。

前提:MySQL数据库建立tabel,名称为news

         字段名称              类型                   说明

         Id                     int(自增)            编号

         newsName       varchar             名称

         newsTitle         varchar           标题

         newsContent   varchar          内容

上面是MySQL中表的定义。

然后使用Hibernate的工程反向功能生成表字段的映射(请查看那本快速入门)

然后也不需要自己再设置什么东西,

现在基本已经自动完成了,

1.写一个读数据的测试代码如下:

OK,测试通过。

2.写一个写数据的代码如下:

oh,NO,测试不通过,

输出错误代码如下:

傻了,这算是什么提示......无语,看看不对,改下输出,将:

修改为:

运行......这下错误提示多了:

粗略看了一下,好像是那个自增的编号的问题,我们查看一下字段映射XML文件:

到网上查了一下“assigned”:

更改它为“identity”,原因请参看:http://liu20011122.javaeye.com/blog/341838

这下运行可以了!

 

等等......又有新的问题出现,插入的数据在数据库中显示为乱码.....

有事要出去,明天继续写解决办法.....

 

 

 

恩,回来了,继续昨天的话题,

插入数据已经成功,但是除了ID可以正常显示,

所有的中文都是变成了问号....

 

首先检查是不是MySQL的问题,

在MySQL中建立一个查询,

手动输入一条insert语句,

然后执行......执行结果是一切正常,

中文可以插入,这就说明了MySQL是正常的,

也就是说MySQL接受程序传递过来的字符串内容已经是乱码了(中文部分),

所以我们基本可以判断是程序编码方面出现了问题,

到网上查询一下相关内容,

这一看不要紧,出这个问题的人还真不少,

当然也有老兄给出了解决办法,

修改一下hibernate.cfg.xml文件中的:

为:

加的这几句代码的意思也就是使用GBK编码集,

好了,编译运行,OK,这个世界清静了!