第一个hibernate项目
1、新建java项目2、创建User Library,加入如下jar* HIBERNATE_HOME/hibernate3.jar* HIBERNATE_HOME/lib/*.jar* MySql jdbc驱动3、创建hibernate配置文件hibernate.cfg.xml,为了便于调试最好加入log4j配置文件4、定义实体类User.java5、定义User类的映射文件User.hbm.xml6、将User.hbml.xml文件加入到hibernate.cfg.xml文件中7、编写hbm2ddl工具类,将实体类生成数据库表a)//读取hibernate.cfg.xml文件Configuration cfg = new Configuration().configure();SchemaExport export = new SchemaExport(cfg);export.create(true, true);b)drop table if exists User15:04:53,062 WARN JDBCExceptionReporter:48 - SQL Warning: 1051, SQLState: 42S0215:04:53,062 WARN JDBCExceptionReporter:49 - Unknown table 'user'create table User (id varchar(255) not null, name varchar(255), password varchar(255), createTime datetime, expireTime datetime, primary key (id))15:04:53,140 WARN JDBCExceptionReporter:48 - SQL Warning: 1051, SQLState: 42S0215:04:53,140 WARN JDBCExceptionReporter:49 - Unknown table 'user'8、开发客户端Client.javaa)public class Client { public static void main(String[] args) { //读取hibernate.cfg.xml文件Configuration cfg = new Configuration().configure();//创建SessionFactorySessionFactory factory = cfg.buildSessionFactory();Session session = null;try { session = factory.openSession();//开启事务session.beginTransaction();User user = new User();user.setName("白龙马");user.setPassword("123");user.setCreateTime(new Date());user.setExpireTime(new Date());//保存数据session.save(user);//提交事务session.getTransaction().commit();}catch(Exception e) { e.printStackTrace();//回滚事务session.getTransaction().rollback();}finally { if (session != null) { if (session.isOpen()) { //关闭sessionsession.close();}}}}}b)Hibernate: insert into User (name, password, createTime, expireTime, id) values (?, ?, ?, ?, ?)c)mysql> use 01_hibernate_first;Database changedmysql> show tables;+------------------------------+| Tables_in_01_hibernate_first |+------------------------------+| user |+------------------------------+1 row in set (0.00 sec)mysql> select * from user;+----------------------------------+--------+----------+---------------------+---------------------+| id | name | password | createTime | expireTime |+----------------------------------+--------+----------+---------------------+---------------------+| 402881e538dbdbd80138dbdbda690001 | 白龙马 | 123 | 2012-07-31 15:06:54 | 2012-07-31 15:06:54 |+----------------------------------+--------+----------+---------------------+---------------------+1 row in set (0.00 sec)为了方便跟踪sql执行,在hibernate.cfg.xml文件中加入:<property name="hibernate.show_sql">true</property><property name="hibernate.format_sql">true</property>