日期:2014-05-16  浏览次数:20812 次

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

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

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

  

  我们要下载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

package com.tfj.hibernate.model;

public class Student {
	private int id;
	private String name;
	private int age;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}
在hibernate文档里有hibernate的配置文件,我们可以copy一份,命名为hibernate.cfg.xml(由于本身myeclipse里有hibernate项目,这时候会弹出提示窗口,不用管它),编写配置文件。修改配置文件如下(以后要用到的配置以后再说)。

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

	<session-factory>

		<!-- Database connection settings -->
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://localhost/hibernate?useUnicode=true&characterEncoding=UTF-8</property>
		<property name="connection.username">root</property>
		<property name="connection.password">111111</property>

		

		<!-- SQL dialect -->
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

		<!-- Enable Hibernate's automatic session context management -->
		
		<!-- Disable the second-level cache -->
		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

		<!-- Echo all executed SQL to stdout -->
		<property name="show_sql">true</property>

		<!-- Drop and re-create the database schema on startup -->
		
		<mapping resource="com/tfj/hibernate/model/Student.hbm.xml" />
		<mapping class="com.tfj.hibernate.model.Teacher"/>

	</session-factory>

</hibernate-configuration>

设置好数据库的账户名,密码,值