Hibernate3.3.2 手动配置annotation环境
简单记录Hibernate3.3.2如何快速配置环境
一、下载hibernate-distribution-3.3.2.GA-dist.zip文件,建立User libraries.
打开windows->preferences->JAVA->Build Path->User libraries。新建一个名为Hibernate的文件夹。然后添加hibernate-distribution-3.3.2.GA-dist.zip下的jar文件
第一个包在解压缩之后的文件夹下,剩下的JAR包除了倒数三个(用来配置DDL语句输出)和annotation包以外在lib->required文件夹下。
二、配置hibernate.cfg.xml配置文件(数据库为SqlServer2008 EXPRESS)
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <property name="connection.url">jdbc:sqlserver://localhost:1433; DatabaseName=hibernate</property> <property name="connection.username">aa</property> <property name="connection.password">aa</property> <!-- JDBC connection pool (use the built-in) --> <!-- <property name="connection.pool_size">1</property> --> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.SQLServerDialect</property> <!-- Enable Hibernate's automatic session context management --> <!-- <property name="current_session_context_class">thread</property> --> <!-- 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 --> <property name="hbm2ddl.auto">create</property> </session-factory> </hibernate-configuration>
三)使用JAVABEAN的hbm.xml配置:
1、建立Student类
package com.huohuo.model; public class Student { public int id; public String name; public int age; public String grade; 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; } public String getGrade() { return grade; } public void setGrade(String grade) { this.grade = grade; } }
2、配置Student.hbm.xml(注意该文件和Student类放在同一个文件夹下)
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.huohuo.model"> <class name="Student" table="student"> <id name="id" > </id> <property name="age"/> <property name="name"/> <property name="grade"/> </class> </hibernate-mapping>
3、在hibernate.cfg.xml加入这样一句话
<!-- 使用Student.hbm.xml --> <mapping resource="com/huohuo/model/Student.hbm.xml"/>
配置完这三步以后,写一个测试类StudentTest.class
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import com.huohuo.model.Student; public class StudentTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Student s1 = new Student(); s1.setId(10); s1.setName("huohuo2"); s1.setAge(23); s1.setGrade("二年级"); Configuration cfg = new Configuration(); SessionFactory sf = cfg.configure().buildSessionFactory(); Session session = sf.openSession(); session.beginTransaction(); session.save(s1); session.getTransaction().commit(); session.close(); sf.close(); } }
之后执行测试类,就会成功。以上几步是hibernate中自己写的类手动配置的步骤。
四)使用hibernate annotation配置方法(配置Annotaion文件)
加入两个包:
写一个Teacher类
package com.huohuo.model; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Teacher { public int id; public String name; public String title; @Id 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 String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }
@是annotation的语法,@id表示主码
写一个测试类TeacherTest.class
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.cfg.Configuration; import com.huohuo.model.Teacher; public class TeacherTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Teacher t = new Teacher(); t.setId(3); t.setName("huohuo"); t.setTitle("低级教师"); Configuration cfg = new AnnotationConfiguration(); SessionFactory sf = cfg.configure().buildSessionFactory(); Session session = sf.openSession(); session.beginTransaction(); session.save(t); session.getTransaction().commit(); session.close(); sf.close(); } }
在hibernate.cfg.xml中加入两行代码:
<!-- 使用hibernate_annotation自动配置 --> <mapping class="com.huohuo.model.Teacher"/>
然后就可以直接运行了,省去了Teacher.hbm.xml映射的配置,方便很多。