• 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();//关闭命令对象
  • 相关阅读:
    legend2---开发日志12(vue如何进一步学习)
    为什么现在的年轻人生育的欲望越来越低?(转自知乎)
    legend2---开发日志13(layer_mobile的content传入dom 出现【object object】如何解决)
    legend2---项目总结(legend2的意义)
    legend2---开发日志11(如何提高终极开发效率)
    公司项目架构的演变过程(转)
    创业公司如何实施敏捷开发(敏捷开发简单流程)(转)
    创业公司一年工作总结(转)(公司失败原因)
    LayaAir引擎开发HTML5最简单教程(面向JS开发者)
    [ACM] HDU 2295 Radar (二分法+DLX 重复覆盖)
  • 原文地址:https://www.cnblogs.com/wangzheand/p/5740259.html
Copyright © 2020-2023  润新知