2. 第一个hibernate项目

第一个hibernate项目

 

1、新建java项目

 

2、创建User Library,加入如下jar

              * HIBERNATE_HOME/hibernate3.jar

              * HIBERNATE_HOME/lib/*.jar

              * MySql jdbc驱动

             

3、创建hibernate配置文件hibernate.cfg.xml,为了便于调试最好加入log4j配置文件

              <!DOCTYPE hibernate-configuration PUBLIC

              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

 

              <hibernate-configuration>

                            <session-factory>

                                          <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate_first</property>

                                          <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

                                          <property name="hibernate.connection.username">root</property>

                                          <property name="hibernate.connection.password">bjsxt</property>

                                          <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

                                          <property name="hibernate.show_sql">true</property>

                            </session-factory>

              </hibernate-configuration>

       Hibernate支持第三方的连接池,官方推荐的连接池是C3P0Proxool,以及DBCP。在Hibernate连接池配置时需要注意的有三点:

       一、ApacheDBCPHibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷。如果你因为某种原因需要在Hibernate中使用DBCP,建        议使用JNDI方式。

       二、默认情况下(即没有配置连接池的情况下)Hibernate会采用内建的连接池。但这个连接池性能不佳,且存在诸多BUG,因此官方也只是建议仅在开发环境下使用。

       三、Hibernate2Hibernate3的命名空间有所变化。例如,配置C3P0时的provider_classHibernate2环境下使用net.sf.hibernate.connection.C3P0ConnectionProvider,       Hibernae3环境下使用org.hibernae.connection.C3P0ConnectionProvider

4、定义实体类

              package com.bjsxt.hibernate;

              import java.util.Date;

              public class User {       

                            private String id;           

                            private String name;             

                            private String password;             

                            private Date createTime;

                            private Date expireTime;

 

                            public String getId() {

                                          return id;

                            }

                            public void setId(String id) {

                                          this.id = id;

                            }

                            public String getName() {

                                          return name;

                            }

                            public void setName(String name) {

                                          this.name = name;

                            }

                            public String getPassword() {

                                          return password;

                            }

                            public void setPassword(String password) {

                                          this.password = password;

                            }

                            public Date getCreateTime() {

                                          return createTime;

                            }

                            public void setCreateTime(Date createTime) {

                                          this.createTime = createTime;

                            }

                            public Date getExpireTime() {

                                          return expireTime;

                            }

                            public void setExpireTime(Date expireTime) {

                                          this.expireTime = expireTime;

                            }

              }

 

5、定义User类的映射文件User.hbm.xml

              <?xml version="1.0"?>

              <!DOCTYPE hibernate-mapping PUBLIC

                            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

                            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

              <hibernate-mapping>

                            <class name="com.bjsxt.hibernate.User">

                                          <id name="id">

                                                        <generator class="uuid"/>

                                          </id>

                                          <property name="name"/>

                                          <property name="password"/>

                                          <property name="createTime"/>

                                          <property name="expireTime"/>

                            </class>

              </hibernate-mapping>

 

6、将User.hbml.xml文件加入到hibernate.cfg.xml文件中

              <hibernate-configuration>

                            <session-factory>

                                          <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate_first</property>

                                          <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

                                          <property name="hibernate.connection.username">root</property>

                                          <property name="hibernate.connection.password">bjsxt</property>

                                          <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

                                          <property name="hibernate.show_sql">true</property>

                           

                                          <mapping resource="com/bjsxt/hibernate/User.hbm.xml"/>

                            </session-factory>

              </hibernate-configuration>

 

7、编写hbm2ddl工具类,将实体类生成数据库表

              package com.bjsxt.hibernate;

 

              import org.hibernate.cfg.Configuration;

              import org.hibernate.tool.hbm2ddl.SchemaExport;

 

              public class ExportDB {

                            public static void main(String[] args) {

                                          //Hibernate支持两种配置方式,hibernate.propertieshibernate.cfg.xml         

                                          //读取hibernate.properties,使用Configuration cfg = new Configuration();           

                                          //读取hibernate.cfg.xml文件,使用Configuration cfg = new Configuration().configure();

                                          Configuration cfg = new Configuration().configure();

                                          SchemaExport export = new SchemaExport(cfg);

                                          export.create(true, true);

                            }

              }

 

8、开发客户端

              package com.bjsxt.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 factory = cfg.buildSessionFactory();        

 

                                          //创建session,Session不是线程安全的

                                          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()) {

                                                                                    //关闭session

                                                                                    session.close();

                                                                      }

                                                        }

                                          }

                           

                            }

              }

 

 

你可能感兴趣的:(Hibernate,Date,String,session,Class,import)