首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

第一个Hibernate项目及MySQL乱码有关问题——Hibernate学习笔记01

2013-10-11 
第一个Hibernate项目及MySQL乱码问题——Hibernate学习笔记01今天学习了一下Hibernate的配置,看的是尚学堂的

第一个Hibernate项目及MySQL乱码问题——Hibernate学习笔记01

  今天学习了一下Hibernate的配置,看的是尚学堂的视频,不过随着技术的发展,好多东西配置都不一样了,自己研究了下,终于吧第一个项目完成了,虽然只是个HelloWorld等级的,不过好艰难,我把过程说一下,这样大家在学习的时候就能少走点弯路。

  先说一下什么是HIbernate,Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。简单说就是原来我们要存数据的话需要在java文件中写sql语句(想起了学习android开发时候,sql本来就是略懂,写错一点还找不出来,各种烦),用了hibernate后,我们调用一个save()方法,就能把数据存起来了。下面是项目的截图。(因为刚刚开始学习新建的就是java project)。

  第一个Hibernate项目及MySQL乱码有关问题——Hibernate学习笔记01

  我们要下载Hibernate, 我下载的是3.6.8版本的,然后由于每次都要导入hibernate的包,我们把它做成一个自己的lib一次就能导入了,我自己做的lib叫hibernate,还有mysql里放的是jdbc的驱动。

  hibernate lib里的内容有F:\hibernate-distribution-3.6.8.Final\lib\jpa里面的hibernate-jpa-2.0-api-1.0.1.Final.jar以及F:\hibernate-distribution-3.6.8.Final\lib\required里面的全部6个jar文件,这里还有一个slf4j的api要用的话还得下载slf4j导入slf4j-nop-1.6.1.jar。

  在myeclipse里选择Window->Preferences->Java->Build Path->User libraries 选择new 把上面要用到的jar包添加进去取名为hibernate。在新建的项目里右键build path 导进来就可以了。

  在F:\hibernate-distribution-3.6.8.Final\documentation\manual\zh-CN\文件夹里有hibernate文档,而且是中文的很好用。

  新建一个class叫Student

Student.java

,在数据库中可以查到数据了。

第一个Hibernate项目及MySQL乱码有关问题——Hibernate学习笔记01

到这里还都很顺利,接下来我学习了一下Annotation,遇到了很多麻烦事。

新建了一个teacher.java

teacher.java

package com.tfj.test;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import com.tfj.hibernate.model.Teacher;public class TeacherTest {public static void main(String args[]){Teacher t = new Teacher();t.setId(7);t.setName("ts");t.setTitle("高级");Configuration cfg = new Configuration();SessionFactory sf = cfg.configure().buildSessionFactory();Session session = sf.openSession();session.beginTransaction();session.save(t);session.getTransaction().commit();session.close();sf.close();}}

和视频中不一样的是AnnotationConfiguration()已经被弃用了,我们现在用 Configuration()就可以了。

测试的时候我其他都正常,但是title中文不显示,显示为乱码。解决这个问题花了好长时间。

简单说一下,1.先把sql里面的my.ini的编码换掉

                      2.新建数据库时候选择utf8或者gbk

                      3.在配置文件里加上这样一句话<property name="connection.url">jdbc:mysql://localhost/hibernate?useUnicode=true&characterEncoding=UTF-8</property>

                      4.这个耽误时间最长了,就是在完成第三步后,如果前连接过数据库,就会出现Could not execute JDBC batchupdate,要先断开重新连接就正常了。


  

热点排行