zoukankan      html  css  js  c++  java
  • hibernate集成

    hibernate是一个优秀的持久化框架负责简化将对象保存到数据库中,或从数据库中读取数据并封装到对象的工作。hibernate通过简单配置和编码即可替代jdbc繁琐的程序代码。

    下面是集成hibernate的具体步骤

    下载hibernate的.jar包并在项目中进行引用

    image

    在classpath下创建并编写hibernate.cfg.xml配置文件

    image

    <?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>
    
            <!-- 数据连接配置 -->
            <property name="connection.driver_class">oracle.jdbc.OracleDriver</property><!--驱动类的全名称-->
            <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><!--数据库连接的url-->
            <property name="connection.username">WZ</property><!--用户名-->
            <property name="connection.password">*****</property><!--密码-->
    
    
            <!-- 配置SQL方言 -->
            <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
    
            <!-- 设置Session上下文-->
            <property name="current_session_context_class">thread</property>
            <!-- 格式化sql -->
            <property name="format_sql"> true</property>
    
            <!-- 在控制台显示hibernate自动生成的sql语句 -->
            <property name="show_sql">true</property>
        <!--格式换在控制台显示的sql语句-->
        <property name="hbm2ddl.auto">
            update
        </property>
            <!--数据实体类的配置文件的引用-->
            <mapping resource="xxx.hbm.xml" />
    
        </session-factory>
    
    </hibernate-configuration>

    创建并编写实体类的配置文件

    image

    <?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="student_entity">
    
        <class name="类名" table="表名">
        主键类配置
            <id name="sid" column="stuno">
                <generator class="sequence">
                    <param name="sequence">
                    SQL_ID
                    </param>
                    
                </generator>
                
            </id>
    属性配置
            <property name="sage"/>
            <property name="name" column="stuname"/>
          
        </class>
    
    </hibernate-mapping>

    其中<generator class=””/>配置主键的生成策略其取值如下:

    increment:对类型为long、short、int类型的主键,已自动增长的方式生成主键的值,增量为1

    sequence:对于支持序列的数据库可使用序列来给主键赋值其通过param子元素来指定序列名

    identity:对支持标识列的数据库可使用该策略。但需要在数据控的该列设置为标识列

    native:由hibernate自动判断使用何种策略

    assigned:主键有应用程序生成,hibernate无需参与

    在实体类的配置文件编写完成之后还要在hibernate.cfg.xml文件中添加该配置文件的引用如图:

    image

    测试

    以上步骤全部完成后就可以在程序中使用hibernate提供的api来进行数据操作,

    Configuration cfgt=new Configuration().configure();//创建配置对象将hibernate.cfg.xml文件中的信息封装到cfgt对象中
            SessionFactory factory = cfgt.buildSessionFactory();//创建命令工厂
            Session session = factory.openSession();//打开命令对象
            Transaction tsc = session.beginTransaction();//开始事务
            
            session.save(stu);将stu中的信息保存到数据库中(stu为已创建的实体类对象)
            
            tsc.commit();//提交事务
            session.close();//关闭命令对象
  • 相关阅读:
    【LeetCode】204
    【LeetCode】231
    【LeetCode】58
    解决error104 socket error问题
    爬虫问题
    80端口被system占用的问题
    Linux命令行下批量重命名文件名为数字索引编号(0~N.xxx)的方法
    [转]利用excel进行线性规划求解
    python——时间与时间戳之间的转换
    最全中文停用词表整理(1893个)
  • 原文地址:https://www.cnblogs.com/wangzheand/p/5740259.html
Copyright © 2011-2022 走看看