zoukankan      html  css  js  c++  java
  • HIbernate入门

    简介:

      Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

    第一步:环境搭建  

    1.下载jar包

      Hibernate的官方网站是http://hibernate.org,Hibernate的jar包都可以从官方网站下载得到。

    2.部署jar包

      将下载好的jar包部署到自己的项目中。

      

    3.创建Hibernate配置文件hibernate.cfg.xml。

      在项目的src目录下添加Hibernate配置文件。

    配置文件示例::

    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    
    <hibernate-configuration>
    
        <session-factory>
    
            < !--数据库连接设置-->
         < !--数据库JDBC驱动设置-->
    <property name="connection.driver_class" >org.hsqldb.jdbcDriver</property>
      
        < !--数据库url-->
    <property name="connection.url" >jdbc:hsqldb:hsql://localhost</property>
        < !--数据库用户名-->
    <property name="connection.username" >sa</property>
        < !--数据库用户密码-->
    <property name="connection.password" ></property> < !--JDBC连接池(使用内置的)--> <property name="connection.pool_size" >1</property> < !--SQL方言--> <property name="dialect" >org.hibernate.dialect.HSQLDialect</property> < !--使Hibernate自动会话上下文管理--> <property name="current_session_context_class" >thread</property> <!--关闭二级缓存--> <property name="cache.provider_class" >org.hibernate.cache.NoCacheProvider</property> <!-- 是否将运行期间生成的sql输出到日志以供调试--> <property name="show_sql" >true</property> < !--在启动时,删除和重新创建数据表结构--> <property name="hbm2ddl.auto" >update</property>     
    </hibernate-configuration >

    4.创建持久化类和映射文件

      持久化类是指其实例状态需要被Hibernate持久化到数据库中的类,在应用程序设计中,持久化类通常对于需求中的业务实体类。

     映射文件一般命名:类名.hbm.xml

     映射文件配置示例:

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    
    <hibernate-mapping package="org.hibernate.tutorial.domain">
    
        <class name="Event" table="EVENTS">
            <id name="id" column="EVENT_ID">
                <generator class="native"/>
            </id>
            <property name="date" type="timestamp" column="EVENT_DATE"/>
            <property name="title"/>
        </class>
    
    </hibernate-mapping
    >

    Event为持久化类的类

    table为持久化类对应的数据库表名

    id:表示持久化类的id和表的主键的映射。

    其中 name为持久化类的属性名,column为数据库表中对应的列名 

    property 节点定义持久化类中属性和数据库中字段的对应关系

    5.在hibernate.cfg.xml文件中进行映射文件配置

    示例

     <mapping resource="cn/lhl/entity/User.hbm.xml"/>

    resource 为映射文件的全路径

    第二部,使用Hibernate完成持久化操作       //读取并解析配置文件    

     //读取并解析配置文件
            Configuration configuration=new Configuration().configure();
            //创建session工厂对象
            SessionFactory sf=configuration.buildSessionFactory();
            //打开sessionn
            Session session= sf.openSession();
            //开始事务(怎删改操作必须,查询可选)
            Transaction ts= session.beginTransaction();
            //数据库操作
            //修改
    //        User user= session.get(User.class,3);
    //        user.setName("wwwww");
    //        session.update(user);
            //添加
    //        User user =new User();
    //        user.setName("1");
    //        user.setPwd("a");
    //        session.save(user);
            //删除
    //        User user=new User();
    //        user.setId(2);
    //        session.delete(user);
            //查询
    //        User user= session.get(User.class,3);
    //        System.out.println(user.getName());
            //提交事务
            ts.commit();
            //关闭session
            session.close();
  • 相关阅读:
    弱监督学习框架下的图像语义分割调研
    LeetCode(115):不同的子序列
    LeetCode(114): 二叉树展开为链表
    LeetCode(113):路径总和 II
    项目实战10.1—企业级自动化运维工具应用实战-ansible
    快收藏!高手Linux运维管理必备工具大全,你会吗?
    项目实战12.2—企业级监控工具应用实战-zabbix操作进阶
    项目实战12.1—企业级监控工具应用实战-zabbix安装与基础操作
    项目实战13—企业级虚拟化Virtualization
    计算机专用英语词汇1695个词汇表
  • 原文地址:https://www.cnblogs.com/www-datou-com/p/6264908.html
Copyright © 2011-2022 走看看