麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

java框架篇---spring hibernate整合

2019-11-15 00:09:51
字體:
來源:轉載
供稿:網友
java框架篇---sPRing hibernate整合

在會使用hibernate 和spring框架后 兩個框架的整合就變的相當容易了,

為什么要整合Hibernate?1、使用Spring的IOC功能管理sessionFactory對象LocalSessionFactoryBean2、使用Spring管理Session對象HibernateTemplate3、使用Spring的功能實現聲明式的事務管理

第一步:搭建hibernate環境(包括引入hibernate的jar,包配置數據源,建立類和表的映射),為什么這么做。我覺得hibernate是最重要的。因為沒有spring不影響我往數據里面添加記錄。Spring僅僅是一個容器。這就不多說了。

第二步:配置spring的環境(引入jar和寫一個bean.xml的配置信息)

省略了hibernate.cfg.xml文件 全部托管于spring配置文件

在純粹的Hibernate訪問中,應用程序需要手動創建SessionFactory實例,可想而知,這不是一個優秀的策略。在實際開發中,希望以一種聲明式的方式管理SessionFactory實例,直接以配置文件來管理SessionFactory實例,在示范Struts的PlugIn擴展點時,

Spring的IoC容器則提供了更好的管理方式,它不僅能以聲明式的方式配置Session- Factory實例,也可充分利用IoC容器的作用,為SessionFactory注入數據源引用。

下面是Spring配置文件中配置Hibernate SessionFactory的示范代碼:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:context="http://www.springframework.org/schema/context"       xmlns:aop="http://www.springframework.org/schema/aop"       xsi:schemaLocation="http://www.springframework.org/schema/beans           http://www.springframework.org/schema/beans/spring-beans-3.1.xsd           http://www.springframework.org/schema/context           http://www.springframework.org/schema/context/spring-context-3.1.xsd           http://www.springframework.org/schema/aop                       http://www.springframework.org/schema/aop/spring-aop-3.1.xsd  " default-autowire="byName">    <context:annotation-config />    <context:component-scan base-package="com.bjsxt" />    <!--     也可以使用這種方法        <bean id="dataSource"        class="org.apache.commons.dbcp.BasicDataSource"        destroy-method="close">                        <property name="driverClassName" value="com.MySQL.jdbc.Driver" />        <property name="url" value="jdbc:mysql://localhost:3306/myuse" />        <property name="username" value="root" />        <property name="passWord" value="root" />        </bean>    -->    <bean        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">        <property name="locations">            <value>classpath:jdbc.properties</value>        </property>    </bean>    <bean id="dataSource" destroy-method="close"        class="org.apache.commons.dbcp.BasicDataSource">        <property name="driverClassName"            value="${jdbc.driverClassName}" />        <property name="url" value="${jdbc.url}" />        <property name="username" value="${jdbc.username}" />        <property name="password" value="${jdbc.password}" />    </bean>    <bean id="sessionFactory"        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">        <property name="dataSource" ref="dataSource" />        <property name="annotatedClasses">            <list>                <value>com.bjsxt.model.User</value>            </list>        </property>        <property name="hibernateProperties">            <props>                <prop key="hibernate.dialect">                    org.hibernate.dialect.MySQLDialect                </prop>                <prop key="hibernate.show_sql">true</prop>            </props>        </property>    </bean></beans>

jdbc.properties

jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc/:mysql/://localhost/:3306/myusejdbc.username=rootjdbc.password=root  

第三步:在spring里面注冊hibernate。

<bean id="txManager"        class="org.springframework.orm.hibernate3.HibernateTransactionManager">        <property name="sessionFactory" ref="sessionFactory" />    </bean>    <tx:annotation-driven transaction-manager="txManager"/>

在Dao組件中,所有的持久化操作都通過HibernateTemplate實例完成,而HibernateTemplate操作數據庫非常簡潔,大部分CRUD操作都可通過一行代碼解決問題。下面介紹如何通過HibernateTemplate進行持久層訪問。

HibernateTemplate提供了非常多的常用方法來完成基本的操作,比如通常的增加、刪除、修改、查詢等操作,Spring 2.0更增加了對命名SQL查詢的支持,也增加了對分頁的支持。大部分情況下,使用Hibernate的常規用法,就可完成大多數DAO對象的CRUD操作。下面是HibernateTemplate的常用方法簡介:

● void delete(Object entity),刪除指定持久化實例。

● deleteAll(Collection entities),刪除集合內全部持久化類實例。

● find(String queryString),根據HQL查詢字符串來返回實例集合。

● findByNamedQuery(String queryName),根據命名查詢返回實例集合。

● get(Class entityClass, Serializable id),根據主鍵加載特定持久化類的實例。

● save(Object entity),保存新的實例。

● saveOrUpdate(Object entity),根據實例狀態,選擇保存或者更新。

● update(Object entity),更新實例的狀態,要求entity是持久狀態。

● setMaxResults(int maxResults),設置分頁的大小。

下面是一個完整DAO類的源代碼:

測試:

package com.bjsxt.service;import org.junit.Test;import org.springframework.context.applicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.bjsxt.model.User;//Dependency Injection//Inverse of Controlpublic class UserServiceTest {    @Test     public void testAdd() throws Exception {        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");                UserService service = (UserService)ctx.getBean("userService");        System.out.println(service.getClass());        service.save(new User());                ctx.destroy();            }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人国产在线看 | 国产激情精品一区二区三区 | 黄色免费小视频网站 | 久久综合给合久久狠狠狠97色69 | 国产伊人色 | 成人三级视频在线观看 | 国产女同疯狂激烈互摸 | 黄网站在线免费 | 激情午夜天 | 久久精品一二三区白丝高潮 | 国产一区二区精品91 | 国产精品久久久久久久久久大牛 | 国产亲子伦在线观看 | 久久久一二三 | 欧美一级黄带 | 最污网站| 久久精品污 | 一级在线免费观看视频 | 国产成人自拍小视频 | 日韩精品无码一区二区三区 | 99re热视频这里只精品 | 男女羞羞视频在线观看免费 | 国产一级免费在线视频 | 黄色成年在线观看 | 国产精品刺激对白麻豆99 | 久草在线免费资源站 | 成人免费观看av | 91美女福利视频 | 国产一区影院 | 国产五区 | 91成人一区 | 黄色片免费在线 | 免费网址黄 | 色污视频 | 青青操国产 | 欧美一级黄色网 | 久久久久久久久久久亚洲 | 欧美a一| 182tv成人福利视频免费看 | 成人福利电影在线观看 | 一级片999 |