zoukankan      html  css  js  c++  java
  • 01hibernate_first

    第一个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.java

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

    6、将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 User

    15:04:53,062 WARN JDBCExceptionReporter:48 - SQL Warning: 1051, SQLState: 42S02
    15: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: 42S02
    15:04:53,140 WARN JDBCExceptionReporter:49 - Unknown table 'user'

    8、开发客户端Client.java

    a)public class Client {

    public static void main(String[] args) {

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

    //创建SessionFactory
    SessionFactory 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()) {
    //关闭session
    session.close();
    }
    }
    }

    }
    }
    b)Hibernate: insert into User (name, password, createTime, expireTime, id) values (?, ?, ?, ?, ?)

    c)

    mysql> use 01_hibernate_first;
    Database changed

    mysql> 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>

  • 相关阅读:
    zoj 2406 Specialized FourDigit Numbers
    hdu 1016 Prime Ring Problem(深度优先搜索)
    【ObjectiveC】08self关键字
    【ObjectiveC】09空指针和野指针
    【零基础学习iOS开发】【01前言】01开篇
    【零基础学习iOS开发】【01前言】03前景和难易度分析
    多线程编程1NSThread
    【零基础学习iOS开发】【02C语言】02第一个C语言程序
    多线程编程2NSOperation
    【零基础学习iOS开发】【01前言】02准备
  • 原文地址:https://www.cnblogs.com/alamps/p/2617205.html
Copyright © 2011-2022 走看看