SSH网上商城环境配置—浅析Hibernate

来源:互联网 发布:水冷的热仿真软件 编辑:程序博客网 时间:2024/05/22 06:56

    SSH网上商城虽然只有四天的视频,day01-04,不过边做项目边学习,还真是不容易,到现在为止已经进行了半个月了,才完成了两天的内容。其中光一个环境配置就花了十天左右的时间,包括配置文件添加、Jar包的添加等等。敲代码时再加上对开发环境的陌生,着实费了不少劲,调试也花费了好长时间,不过还好,现在已经熟悉一点了,做起来也顺手一些了,下面就简单汇总一下这里面用到的技术。


    SSH是集成框架,它是从三层的基础上发展而来的。三层中包括页面显示层、业务逻辑层、数据库操作层,SSH中同样也是,只不过每个层使用了不同的技术来实现。在SSH中,Hibernate负责数据持久化,也就是和数据库的交互;Spring负责业务逻辑,利用Spring注解来实现;页面显示则由Struts2来实现,负责Web层,利用的MVC架构将页面和逻辑分类。


    本篇博客就简单介绍一下Hibernate。


Hibernate是什么

    

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


    在做了网上商城之后,定义里有几个点就比较容易理解了。比如:

    1、Hibernate可以应用在任何使用JDBC的场合,也就是说,Hibernate和数据库有关系,是对数据库的操作。


    2、Hibernate属于ORM框架,就像ITOO中使用的EF,它们都属于对象关系映射框架,也就是说,Hibernate进行数据库操作就像EF一样,直接映射数据库。


    3、完成数据持久化的重任其实也是强调Hibernate用来做数据库交互。


Hibernate有什么


    Hibernate的核心类和接口有6个, Session、SessionFactory、Transaction、Query、Criteria和Configuration。Hibernate正是通过这些接口,实现持久化对象的存取,和对事务的控制。


1、Session

    Session接口负责执行被持久化对象的CRUD操作,CRUD是和数据库交互,其中包含了很多常见的SQL语句。


2、SessionFactory

    SessionFactory接口负责初始化Hibernate,充当数据存储源的代理,并负责创建Session对象。SessionFactory用到的是工厂模式,对一个数据库通常指定一个SessionFactory,对多个数据库操作指定多个SessionFactory。SessionFactory配置在applicationContext.xml中,是Dao和数据库交互的路径。


3、Transaction

    Transaction接口是一个可选的,是对实际事务实现的一个抽象,这些实现包括各种事务,这样就使得自己的项目可以在不停的环境和容器之间移植。


4、Query

    Query接口是对数据库以及持久化对象进行查询,它可以有两种表达方式:一是HQL语言,另一个是本地数据库的SQL语句。


5、Criteria

    Criteria接口与Query接口类似,允许创建并执行面向对象的标准化查询。

6、Configuration


    Configuration类的作用是对Hibernate进行配置,并对它进行启动。在Hibernate启动过程中,Configuration类的实例首先定位配置文件,读取配置文件的内容,然后创建一个SessionFactory对象。


如何使用Hibernate


1、引用Jar包

    Hibernate的使用需要引用相应的Jar包,这些Jar包在网上都可以下载到:

    Hibernate本身的Jar包:hibernate-distribution-3.6.10.Final\hibernate3.jar、hibernate-distribution-3.6.10.Final\lib\required\*.jar、hibernate-distribution-3.6.10.Final\lib\jpa\*.jar


    slf4j和log4j的整合Jar包:slf4j-1.7.2.jar、log4j.jar


    数据库驱动的Jar包:mysql-connector-java-5.0.4-bin.jar,在这里数据库是MySQL,所以下载的MySQL的驱动Jar包


    连接池相关Jar包:c3p0-0.9.1.jar


2、在配置文件中配置

    配置文件中需要配置三部分的内容:分别是C3P0连接池、Hibernate相关信息、事务管理相关配置。


C3P0:

<!-- 引入外部属性文件 --><context:property-placeholder location="classpath:jdbc.properties"/><!-- 配置C3P0连接池: --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><span style="white-space:pre"></span><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.user}"/><property name="password" value="${jdbc.password}"/></bean>


Hibernate相关信息:

<!-- Hibernate的相关信息 --><bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><!-- 注入连接池 --><property name="dataSource" ref="dataSource"/><!-- 配置Hibernate的其他的属性 --><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">true</prop><prop key="hibernate.connection.autocommit">false</prop><prop key="hibernate.hbm2ddl.auto">update</prop></props></property><!-- 配置Hibernate的映射文件 也就是Dao层的映射文件--><property name="mappingResources"><list><value>cn/itcast/shop/user/vo/User.hbm.xml</value><value>cn/itcast/shop/category/vo/Category.hbm.xml</value><value>cn/itcast/shop/product/vo/Product.hbm.xml</value><value>cn/itcast/shop/categorysecond/vo/CategorySecond.hbm.xml</value></list></property></bean>


事务管理相关配置:

<!-- 事务管理器 --><bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"/></bean><!-- 开启注解事务 --><tx:annotation-driven transaction-manager="transactionManager"/>


总结


    Hibernate刚刚接触,还不是很熟悉,配置过之后也是只有简单的理解。在Hibernate中,用到了另外一种查询语句,也就是HQL,HQL是Hibernate Query Language,和SQL语句的查询语法很接近,提供更加丰富灵活、更为强大的查询能力。网上商城中直接传递的查询语句,是用HQL写的,有了SQL的基础,学习HQL应该不会很难。

1 0
原创粉丝点击