类建好,映射也完成,那么如何将类转化成数据库中的实际表呢 接下来我们将会把User类导入数据库表
为了让Hibernate识别实体类.需要将User.htm.xml加入核心配置文件Hibernate.cfg.xml中.
编写工具栏ExportDB.java,将我们描述的htm文件生成ddl.也就是hbm2ddl
[html]
package com.tgb.hibernate;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/**
*
* @title 将hbm生成ddl 将我们描述的htm文件生成ddl.也就是hbm2ddl
* @author jnqqls
* @group TGB
* @version 1.0
* @datetime 2012-11-30上午10:35:54
* @comments
*/
public class ExportDB {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//读取配置文件上面的信息
Configuration cfg = new Configuration().configure();
//将配置文件写成ddl.
SchemaExport export = new SchemaExport(cfg);
//将ddl打印大控制台并写入数据库中.
export.create(true, true);
}
}
测试打印数据:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
drop table if exists User
create table User (id varchar(255) not null, name varchar(255), password varchar(255), createTime datetime, expireTime datetime, primary key (id))
查看数据库中的表:
建立客户端Client,添加用户数据到Mysql.
建立client
[html]
package com.tgb.hibernate;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
* 客户端程序
* @author jnqqls
* @group TGB
* @version 1.0
* @datetime 2012-11-27上午9:31:32
* @comments
*/
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
// 读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
// 建立SessionFactory,对应一个数据库的镜像.
SessionFactory factory = cfg.buildSessionFactory();
// 获得session
Session session = null;
try {
// 工厂创建session,并获得.
session = factory.openSession();
// 手动开启事务
session.beginTransaction();
// 创建User实体
User user = new User();
user.setName("jnqqls");
user.setPassword("jnqqls");
user.setCreateTime(new Date());
user.setExpireTime(new Date());
// 保存user对象
session.save(user);
// 提交事务
session.getTransaction().commit();
} catch (Exception e) {
// 这里只是简单打印一下堆栈,用于测试
e.printStackTrace();
//事务回滚.
session.getTransaction().rollback();
} finally {
// session是否为null
if (session != null) {
// session是否打开
if (session.isOpen()) {
// 关闭session
session.close();
}
}
}
执行客