hibernate 简单笔记(一)

hibernate实现ORM,通过其内部的对象-关系映射文件封装了JDBC的数据库操作。基本的hibernate例子配置如下:

一.配置hibernate.cfg.xml,完成一个数据源的配置

<hibernate-configuration>
    <session-factory>
        <property name="dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
        <property name="connection.url">
            jdbc:mysql://localhost:3306/db_fredric
        </property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="connection.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <property name="myeclipse.connection.profile">mysql55</property>
        <mapping resource="com/TBook.hbm.xml" />

    </session-factory>
</hibernate-configuration>

二.在上述文件中mapping resource链接具体的对象关系映射XML文件,如TBook.hbm.xml。下述配置文件由myeclipse DB explore视图下自动生成。

<hibernate-mapping>
    <class name="com.TBook" table="t_book" catalog="db_fredric">
        <id name="id" type="integer">
            <column name="id" />
            <generator class="assigned" />
        </id>
        <property name="name" type="string">
            <column name="name" length="30" not-null="true" />
        </property>
        <property name="book" type="string">
            <column name="book" length="50" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

三.实现对应的持久类,如上例中的TBook,一个POJO类;

四.采用hibernate实现数据库操作如下:

public class App {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Configuration con = new Configuration();
        con.configure();
        
        SessionFactory sessionfactory = con.buildSessionFactory();
        Session session = null;
        Transaction tran = null;
        try{
            session = sessionfactory.openSession();
            tran= session.beginTransaction();
        
            TBook book = new TBook();
            book.setId(6);
            book.setBook("mybook1");
            book.setName("name2");
        
            session.save(book);    
            tran.commit();
        }catch(RuntimeException e){
            if(null != tran){tran.rollback();}
        }finally{
            session.close();//无论事务成功与否都要关闭session,释放其占用的资源
        }
    }
}

session和一个数据库事务绑定,每执行一个数据库事务,都创建一个新的Session实例。session主要提供四类方法:

  • save方法:把java对象保存到数据库;
  • update方法:更新数据库中的java对象;
  • delete方法:把特定的java对象从数据库中删除;
  • load、get方法:从数据库中加载java对象;

 

posted @ 2013-03-31 19:04  Fredric_2013  阅读(157)  评论(0编辑  收藏  举报