1.新建maven项目 testHibernate,pom.xml
4.0.0 testHibernateAnno testHibernateAnno 1.0-SNAPSHOT junit junit 3.8.1 test org.hibernate hibernate-core 3.6.10.Final log4j log4j 1.2.16 org.slf4j slf4j-nop 1.6.4 javassist javassist 3.12.0.GA mysql mysql-connector-java 5.1.6
2.在resource文件夹下新建hibernate.cfg.xml文件
org.gjt.mm.mysql.Driver jdbc:mysql://192.168.32.95:3306/db2 DB_WX_APP LH_longfor 1 org.hibernate.dialect.MySQLDialect thread org.hibernate.cache.NoCacheProvider true true update
3.新建实体类 Event.java
package com.demo.demo;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;import java.util.Date; @Entity @Table(name="EVENTS")public class Event { @Id @Column(name = "EVENT_ID") private Long id;//id @Column(name = "TITLE") private String title;//标题 @Column(name = "EVENT_DATE") private Date date;//日期 public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; }}
4.新建测试类 Test.java
package com.demo.demo;import java.util.List;import java.util.Date;import java.util.Iterator;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.Transaction;import org.hibernate.cfg.AnnotationConfiguration;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class Test { private static SessionFactory factory; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Test mgr = new Test(); try{ factory = new AnnotationConfiguration(). configure(). //addPackage("com.xyz") //add package if used. addAnnotatedClass(Event.class). buildSessionFactory(); }catch (Throwable ex) { System.err.println("Failed to create sessionFactory object." + ex); throw new ExceptionInInitializerError(ex); } Event e=new Event(); e.setId(10011L); e.setTitle("aaa"); e.setDate(new Date()); Session sesion=factory.openSession(); sesion.beginTransaction(); sesion.save(e); sesion.getTransaction().commit(); System.out.println("OK"); }}
运行test类,输出OK
在hibernate4之后就移除了AnnotationConfiguration()方法了,Configuration已经包含了注解的方法,所以你可以直接用:
Configuration con = new Configuration();SessionFactory sf = con.configure().buildSessionFactory();Session s = sf.openSession();
来获得用注解声明映射关系的Session了,加上配置:
就OK了,方便了很多。
但在配置过程中我还报了一个错误:
1 | No identifier specified for entity: student.Teacher |
这是因为我把主键id的注解加在了setId上,把他加在getId上就解决了。(真是粗心)
https://pan.baidu.com/s/1ayir_7wk20y9CESFvCa2qg