hibernate学习笔记

来源:互联网 发布:中国各种万以上数据库 编辑:程序博客网 时间:2024/06/16 06:22
javaEE三层结构

    1.web层:    struts2框架

     2.service层:     spring框架

     3.dao层:     hibernate框架

           (1)对数据库进行crud操作

      mvc模式:

            model :模型

            view:视图

            controller:控制器

      hibernate概述:

             1.hibernate应用在javaee三层框架中的dao层框架,hibernate底层代码就是JDBC,hibernate对jdbc进行了

封装,使用hibernate时,不需要编写jdbc代码,(省略了sql语句)

              2.hibernate是一个开源的轻量级的框架(依赖少),

              3.hibernate版本

      hibernate5.x

         (二)orm思想

            1.hibernate使用orm思想对数据库进行crud操作

             2.在web阶段学习javabean,更正确的叫法实体类

            3.orm:object relational mapping:对象关系映射

               (1)让实体类和数据库表进行一一对应关系;让实体类首先和数据库对应,让实体类

 属性和表里面字段对应

               (2)不需要直接操作数据库表,而操作表对应实体类对象(jdbc代码中,①加载驱动,②创建连接

③对sql进行预编译操作,④执行sql查询sql,⑤遍历结果集⑥释放资源)

(3)*让实体和表一一对应(类中的属性和表中的字段也对应),使用配置文件,完成对应关系;

不需要操作表,直接操作实体类对象就可以了,hibernate封装的对象是Session(将实体类对象保存,session.save("实体类")

            (三)Hibernate入门

              搭建hiberante环境

                      第一步:导入jar包,(maven项目中直接添加依赖就可以)使用hiberante时,有日志信息输出,所以需要

导入日志jar包,还有mysql驱动jar包

                      第二步:创建实体类(entity);hibernate中要求实体类中需要有一个属性是唯一值,使用hiberante时,自动创建表

                      第三步:配置实体类和数据库表的一一对应关系(映射关系)

  使用配置文件来完成 

                          (1)创建xml格式的配置文件

                                   一般创建在实体类所在包里面创建,实体类名称hbm.xml

                           ( 2 )  配置文件是xml格式,在配置文件中首先引入xml约束(dtd、schema)

   ( 3 )  配置映射文件

<hibernate-mapping>

<!--配置类和表对应 class标签  name属性:实体类全路径 table属性:数据库表名称-->

                                                 <class name=“cn.itlaobing.entity.User” table="t_user">

<!--配置实体类id和表id对应,hibernate中要求实体类中需要有一个属性是唯一值,

hibernate中要求中的字段有唯一值(主键)-->

<id name="类的属性名" column="表中的字段名">

<!--设置数据库表id的增长策略

native:生成表id值就是主键自动增长

-->

<generator class="native"></generator>

</id>

<!--配置其他属性和字段对应 name:实体类属性名称 column属性:生成表字段名称-->

<property name="username" column="username"></property>

</class name>

</hibernate-mapping>  

                              hibernate操作过程中 ,只会加载核心配置文件,其他配置文件不会被加载

                              <session-factory>

                            <!--  第一部分:配置数据库信息-->

    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

    <property name="hibernate.connection.url">jdbc:mysql://数据库名</property>

   <property name="hibernate.connecion.username">root</property>

     <property name="hibernate.connection.password">root</property>

    <property>root</property>

      <!-- 第二部分  :配置hibernate信息【可以省略的】-->

                                               <!--输出底层sql语句-->

                                               <property name="hibernate.show_sql">true</property>

                                               <!--输出底层sql语句格式-->

<property name="hibernate.formmat_sql">true</property>

<!--hibernate帮助创建表,需要配置之后

update:如果已经存在,则更新,如果没有,则创建

-->

<property name="hibernate.hbm2dd.auto">update</property>

                        

                                                <!--配置数据库方言

让hibernate框架识别不同数据库的语句

-->

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

                <!-- 第三部分 :把映射文件放到核心配置文件中  -->   

<mapping resource="cn/itcatst/entity/user.xml"></mapping resource>

                           </session-factory>

                             实现添加操作

                             第一步:加载hibernate核心配置文件

     第二步 : 创建SessionFactory对象

     第三步:  使用SessionFactory创建seesion对象

    第四步:开启事务

                             第五步:写具体逻辑crud操作

             第六步:提交事务

     第七步 :关闭资源

        




                 


       

             

             

       

原创粉丝点击