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 @   Fredric_2013  阅读(158)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示