hibernate) 框架搭建之hibernate1

一、hibernate简单了解:

   ⑴、hibernate一个java领域里面的一个持久化的ORM框架。

     持久化:就是对对象的数据修改,hibernate会把修改的数据同步到数据库中。

     ORM:Object Relation Mapping 对象关系映射。把数据库中的表映射成java中的一个个对象(POJO),然后hibernate通过对对象的操作来对表进行操作。 

   ⑵、hibernate是对数据数据库的进一步的封装,hibernate的底层还是JDBC。 

二、hibernate搭建:

   在之前,我们已经搭建好了struts2和spring的环境,现在在这二者的基础之上对数据库进行进一步的封装,也就是在项目中加入hibernate。

   ⑴、首先,下载hibernate 下载地址: ,下载完解压后:hibernate-release-5.2.2.Final—>>lib—>>required,找到这个目录中的所有jar包复制到项目中即可。同时在同级目录中有其他的jar可以适当的了解,比如:optional目录中有c3p0的jar,后面数据库连接池需要使用到。

    

hibernate) 框架搭建之hibernate1

   ⑵、编写hibernate.cfg.xml文件:

     ①、在你的项目src目录下添加一个hibernate.cfg.xml文件,文件名可以任意,但需是XXX.cfg.xml类型。

     ②、声明dtd:(根据你下载的版本来确定dtd。)

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "">

     ③、具体编写hibernate.configuration

<hibernate-configuration>

  <!--设置sessionFactory-->   <session-factory> <!-- 配置相关的数据库基本信息 --> <!-- 数据库驱动 --> <property>com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <!-- 数据库访问路径 --> <property>jdbc:sqlserver://localhost:1433;DatabaseName = webLastExam_20160727</property> <!-- 登录用户名 --> <property>sa</property> <!-- 登录密码 --> <property>password</property> <!-- 配置hibernate的基本信息 --> <!-- 配置hibernate使用的数据库方言 --> <property>org.hibernate.dialect.SQLServer2008Dialect</property>
<!-- 设置数据库连接池的大小 --> <property>5</property>
<!-- 执行操作时候是否在控制台打印sql语句 --> <property>true</property> <!-- 是否进行格式化sql语句,指的是在控制台中输出的sql语句是否换行 --> <property>true</property> <!--生成数据表的策略--> <property>update</property> <!-- 设置hibernate的映射文件 --> <mapping resource="entity/BookCard.hbm.xml"/>
</session-factory> </hibernate-configuration>

      ·这里配置的session-Factory中的数据库信息本来实在util.MyConnectionImp中定义的,如果在util.MyConnectionImp定义好数据的信息,那么用户的数据库一切换就要修改这里的代码,所以需要把这个获取连接的事情交给hibernate去管理,这样就避免了直接修改代码,只要修改配置文件即可。

       ·这里需要设置的属性有:

        数据库驱动、数据库访问路径、用户名、密码、数据库方言、连接池大小、hibernate的映射文件(后面会讲)等。  

        其中  <property>update</property> 这个属性如果设置为create,那么之前的数据库中的数据在电脑开机之后删除。

   ⑶、编写hibernate的映射文件- entityName.hbm.xml :

      ①、声明dtd:根据你下载的版本来确定dtd。)

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

      ②、编写hibernate-mapping

<hibernate-mapping> <class table="tabel_name"> <id type="integer" > <column></column> <generator class="native" /> </id> <property type="string">         <column></column>     </property> </class> </hibernate-mapping>

          ·其中,class标签中的name属性值对应需要映射的实体类的名字,并且是 "包名.类名" 形式。table属性则是需要通过映射这个实体类到数据库中的表名。

          ·其次,id标签设置的是数据库表中的主键,name属性对应实体类中需要做主键的成员变量名,type属性是这个成员变量的数据类型,而且这个类型是hibernate映射类型,具体参考映射对照表,column标签中的name顾名思义就是表中的名字了。generator标签中的class属性设置为native,则是为根据不同的底层数据库采用不同的主键生成方式。由于Hibernate会根据底层数据库采用不同的映射方式,因此便于程序移植,项目中如果用到多个数据库时,可以使用这种方式。 

              

hibernate) 框架搭建之hibernate1

⑷、在dao中进行sessionFactory的最后配置:

①、获取SessionFactory

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/cffac847ddc2d1cac7eff7e11344b9b4.html