/*
* 开始导出
* 第一个参数:script 是否打印DDL信息
* 第二个参数:export 是否导出到数据库中生成表
*/
export.create(true, true);
}
}
1、 运行刚刚建立的ExportDB类中的main()方法,进行实际的导出类。
2、 开发客户端,完整代码如下:
package com.wjt276.hibernate;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Client {
public static void main(String[] args){
//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
/*
* 创建SessionFactory
* 一个数据库对应一个SessionFactory
* SessionFactory是线线程安全的。
*/
SessionFactory factory = cfg.buildSessionFactory();
//创建session
//此处的session并不是web中的session
//session只有在用时,才建立concation,session还管理缓存。
//session用完后,必须关闭。
//session是非线程安全,一般是一个请求一个session.
Session session = null;
try {
session = factory.openSession();
//手动开启事务(可以在hibernate.cfg.xml配置文件中配置自动开启事务)
session.beginTransaction();
User user = new User();
user.setName("张三");
user.setPassword("123");
user.setCreateTime(new Date());
user.setExpireTime(new Date());
/*
* 保存数据,此处的数据是保存对象,这就是hibernate操作对象的好处,
* 我们不用写那么多的JDBC代码,只要利用session操作对象,至于hibernat如何存在对象,这不需要我们去关心它,
* 这些都有hibernate来完成。我们只要将对象创建完后,交给hibernate就可以了。
*/
session.save(user);
//提交事务
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
//回滚事务
session.getTransaction().rollback();
} finally {
if (session != null) {
//关闭session
session.close();
}
}
}
}
注:为了方便跟踪sql语句执行,可以在hibernate.hbm.xml中加入下以代码:
<property name="hibernate.show_sql">true</property>