针对第一个hibernate小程序所做的修改

在写hibernate时候涉及到三类文件的编写:java类,映射文件,数据库表结构 

在开发中:数据库表结构,java类,映射文件

hibernate中的java类:要有一个缺省的构造方法(反射);

hibernate中的映射文件:

<hibernate-mapping package="com.cn.myfirsthibernate">

<class name="User" table="User">

<id name="id" colume="id">

<generator class="assigned"/>   产生主键

</id>

</class>

</bibernate-mapping>

hibernate初始化过程:

Configuration cfg=new Configuration();
cfg.configure();
SessionFactory sf=cfg.buildSessionFactory();

新建一个工具类:

构造方法私有化,其他方法设置成静态的。通过类名直接访问;

public class HibernateUtil {
private static SessionFactory sessionFactory;
private HibernateUtil(){}
static{
Configuration cfg=new Configuration();
cfg.configure();
sessionFactory=cfg.buildSessionFactory();
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
public static Session getSession(){
return sessionFactory.openSession();
}
}

在Base.java类中做如下修改:

增加了对异常的处理

public class Base {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub


UserTest user=new UserTest();
user.setBirthday(new Date());
user.setName("qqq");
addUser(user);

System.out.println("--------------------------------end");
}

static void addUser(UserTest user){
Session s=null;
Transaction tx=null;
try{
s=HibernateUtil.getSession();
tx=s.beginTransaction();
s.save(user);
tx.commit();
}catch(HibernateException e){
if(tx!=null){
tx.rollback();
throw e;
}
}finally{
if(s!=null){
s.close();
}
}
}

}

原文地址:https://www.cnblogs.com/GodFather001/p/2278881.html