`
skzr.org
  • 浏览: 362803 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

[web工程]集成hibernate

    博客分类:
  • J2EE
阅读更多

返回:[web工程]Struts2+Spring3.1+Hibernate3.6的集成

上一步:[web工程]集成spring

集成hibernate

 

  1. 创建数据库,脚本见:docs/db/mysql目录
    create table APP_USER (
    	id int,
    	name varchar(100),
    	password varchar(100)
    ) engine = innodb default charset = utf8 comment '系统用户';
    alter table APP_USER add constraint PK_APP_USER primary key (ID);
    alter table APP_USER change id id int auto_increment;
    create index IND_APP_USER_NAME ON APP_USER(name);
     
  2. 复制jar到WEB-INF/lib目录,并添加到java build path
    1. hibernate相关:
      hibernate-jpa-2.0-api-1.0.0.Final.jar
      hibernate3.jar
      jta-1.1.jar
      dom4j-2.0.0-ALPHA-2.jar
      commons-collections-3.2.1.jar
      antlr-2.7.7.jar
       
    2. spring相关:
      aopalliance.jar
      org.springframework.orm-3.1.0.M1.jar
      org.springframework.transaction-3.1.0.M1.jar
      org.springframework.jdbc-3.1.0.M1.jar
       
    3. jdbc相关:
      c3p0-0.9.1.2.jar
      mysql-connector-java-5.1.13-bin.jar
       
  3. 创建User实体类和配置文件hbm
    1. User.java
      package org.skzr.demo.model;
      
      import java.io.Serializable;
      
      /**
       * 系统用户
       * @author <a href="mailto:skzr.org@gmail.com">skzr.org</a>
       * @version 1.0.0
       */
      public class User implements Serializable {
      	private static final long serialVersionUID = 1L;
      	/** 唯一标识 */
      	private Integer id;
      	/** 用户名 */
      	private String name;
      	/** 密码 */
      	private String password;
      	
      	/**
      	 * @return id
      	 */
      	public Integer getId() {
      		return id;
      	}
      	/**
      	 * @param id id
      	 */
      	public void setId(Integer id) {
      		this.id = id;
      	}
      	/**
      	 * @return name
      	 */
      	public String getName() {
      		return name;
      	}
      	/**
      	 * @param name name
      	 */
      	public void setName(String name) {
      		this.name = name;
      	}
      	/**
      	 * @return password
      	 */
      	public String getPassword() {
      		return password;
      	}
      	/**
      	 * @param password password
      	 */
      	public void setPassword(String password) {
      		this.password = password;
      	}
      }
      
       
    2. hbm文件
      <?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="org.skzr.demo.model" default-lazy="false">
      	<class name="User" table="APP_USER">
      		<id name="id"/>
      		<property name="name" />
      		<property name="password" />
      	</class>
      </hibernate-mapping>
       
  4. 改写spring配置文件applicationContext.xml,创建配置文件:common.properties和init.properties说明见:docs/项目说明
    applicationContext.xml文件内容:
    <?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:aop="http://www.springframework.org/schema/aop"
    	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="
    		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    
    	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    		<property name="ignoreResourceNotFound" value="true" />
    		<property name="fileEncoding" value="UTF-8" />
    		<property name="locations">
    			<list>
    				<value>classpath:common.properties</value>
    				<value>classpath:init.properties</value>
    			</list>
    		</property>
    	</bean>
    	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    		<property name="driverClass" value="${jdbc.driverClass}" />
    		<property name="jdbcUrl" value="${jdbc.url}" />
    		<property name="user" value="${jdbc.username}" />
    		<property name="password" value="${jdbc.password}" />
    		<property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
    		<property name="acquireIncrement" value="${jdbc.acquireIncrement}" />
    		<property name="initialPoolSize" value="${jdbc.minPoolSize}" />
    		<property name="minPoolSize" value="${jdbc.minPoolSize}" />
    		<property name="maxIdleTime" value="${jdbc.maxIdleTime}" />
    		<property name="autoCommitOnClose" value="${jdbc.autoCommit}" />
    		<property name="checkoutTimeout" value="${c3p0.checkoutTimeout}" />
    		<property name="maxIdleTimeExcessConnections" value="${c3p0.maxIdleTimeExcessConnections}" />
    	</bean>
    	
    	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    		<property name="sessionFactory" ref="sessionFactory" />
    	</bean>
    	<tx:annotation-driven transaction-manager="hibernateTransactionManager"/>
    	
    	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    		<property name="dataSource" ref="dataSource" />
    	</bean>
    	<bean id="jdbcDaoSupport" class="org.springframework.jdbc.core.support.JdbcDaoSupport" abstract="true">
    		<property name="jdbcTemplate" ref="jdbcTemplate" />
    	</bean>
    	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<property name="dataSource" ref="dataSource" />
    		<property name="hibernateProperties">
    			<props>
    				<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
    				<prop key="hibernate.dialect">${hibernate.dialect}</prop>
    				<prop key="hibernate.jdbc.fetch_size">${hibernate.jdbc.fetch_size}</prop>
    				<prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}</prop>
    				<prop key="hibernate.connection.autocommit">${jdbc.autoCommit}</prop>
    				<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
    			</props>
    		</property>
    		<property name="mappingLocations">
    			<list>
    				<value>${hibernate.mappingLocations}</value>
    			</list>
    		</property>
    	</bean>
    
    	<bean id="loginAction" class="org.skzr.demo.action.LoginAction" scope="prototype"/>
    	
    	<context:component-scan base-package="org.skzr.demo"/>
    </beans>
    
     
  5. 创建DAO和Service,改写Action实现数据库验证逻辑
    1. 这里很多地方都用到了注解的方式来注入bean
    2. LoginAction实际对于xml文件中配置的bean id=loginAction并未配置AppService,实际上这个阿扁跑Service是通过注解来自动注入的,是一种xml和注解混合的方式
  6. 运行登录页面看看效果
  7. 完整程序demo下载分卷压缩1,分卷压缩2Good luck ^ ^
2
0
分享到:
评论
1 楼 sh305520891 2011-05-20  
非常感谢!!!!!  捕获异常的狠!

相关推荐

    Spring集成Hibernate所需jar包

    下面将详细介绍Spring集成Hibernate所需的jar包以及它们各自的作用。 1. **Spring框架**: - Spring核心模块:包括`spring-context`, `spring-beans`, `spring-core`, `spring-expression`等,提供依赖注入(DI)...

    使用springmvc、hibernate、maven开发的web实例项目。

    通过学习和实践这个项目,开发者可以深入理解Spring MVC、Hibernate和Maven的集成,提升Java Web开发能力。同时,这个项目也是进一步探索其他Java Web技术,如Spring Boot、MyBatis等的良好起点。

    spring hibernate web工程包

    在"spring hibernate web工程包"中,我们通常会看到以下关键组件和概念: 1. **Spring MVC**:Spring 框架的一部分,用于构建 Web 应用程序的模型-视图-控制器(MVC)架构。它使得业务逻辑与展示层分离,提高了代码...

    spring3和hibernate4WEB工程

    《Spring3与Hibernate4在Web工程中的整合应用详解》 在现代Java开发中,Spring框架以其强大的依赖注入、AOP(面向切面编程)以及全面的企业级服务支持,成为了核心的开发工具。同时,Hibernate作为一款优秀的ORM...

    hibernate增删改查事例的web工程

    【hibernate增删改查事例的web工程】是一个基于Hibernate框架的Web应用程序,旨在帮助开发者通过实际操作来理解和掌握Hibernate在数据库操作中的基本功能,包括插入(Insert)、删除(Delete)、更新(Update)和...

    activity 工作流web工程demo例子(activity+hibernate+mysql)

    在这个"activity工作流web工程demo例子"中,我们看到它与Hibernate ORM框架和MySQL数据库相结合,构建了一个完整的示例项目,旨在帮助开发者理解和应用工作流管理。 1. **Activity工作流**:Activity是基于BPMN 2.0...

    [web工程]集成spring3

    在本文中,我们将深入探讨如何将Spring框架的第三版(Spring 3)集成到Web工程中。Spring 3是Java企业级应用开发的一个关键组件,它提供了强大的依赖注入(Dependency Injection,DI)、面向切面编程(Aspect-...

    使用myeclipse集成struts,hibernate,spring的一个示例程序

    - **Spring**:通过IOC管理对象的生命周期,通过AOP实现横切关注点(如事务管理),并可以集成Hibernate,简化数据访问。 - **Hibernate**:对象关系映射(ORM)框架,将Java对象与数据库表对应,提供便捷的数据库...

    [web工程]创建web工程

    本文将基于给定的标题“[web工程]创建web工程”来深入探讨Web工程的各个方面,以及如何从零开始创建一个Web项目。我们将不涉及具体的博文链接内容,因为其在描述中为空,但我们可以根据一般实践进行讲解。 首先,...

    ssh集成开发样板工程(struts2+spring+hibernate)

    SSH,即Struts2、Spring和Hibernate的组合,是Java Web开发中的一种经典框架集成,用于构建高效、灵活的企业级应用程序。这个“ssh集成开发样板工程”提供了完整的开发环境和配置,帮助开发者快速搭建基于SSH的项目...

    jbpm—web工程

    在jbpm—web工程中,Spring作为整个项目的“胶水”,负责管理对象的生命周期,实现服务的注入,并可以与其他组件如Hibernate进行无缝集成。 Hibernate是一个强大的对象关系映射(ORM)框架,它简化了Java应用与...

    struts spring hibernate ssh 三大框架集成详细步骤 手把手教你搭框架

    Struts、Spring、Hibernate,这三大框架是Java Web开发中的基石,它们的集成极大地提高了开发效率,降低了代码的复杂性。SSH(Struts + Spring + Hibernate)框架集成旨在实现MVC(Model-View-Controller)设计模式...

    springmvc hibernate 测试工程

    总的来说,"springmvc hibernate 测试工程"是一个集成了SpringMVC和Hibernate的Web应用实例,旨在提供一个快速启动和运行的开发环境。通过VS2008的数据库备份,开发者可以快速部署并运行这个工程,测试其功能是否...

    web工程项目

    总的来说,【web工程项目】是一个综合性的Web应用实例,涉及到Web服务器的响应处理、数据库操作、数据持久化策略等多个核心环节,对于学习和理解Java Web开发与数据库集成具有很高的参考价值。通过深入分析和实践该...

    Struts2+Spring+Hibernate集成过程

    3. **建立Web工程项目**:通过IDE(如MyEclipse)新建一个Web项目,这将是整个集成项目的容器,后续的所有组件都将在此基础上进行集成。 - 创建新的Dynamic Web Project - 设置项目名称和其他基本信息 - 配置项目...

    myeclipse中进行Hibernate的逆向工程

    通过以上步骤,MyEclipse的Hibernate逆向工程将数据库的表结构转换为Java代码,实现了数据库和业务逻辑层的紧密集成,大大提高了开发效率。同时,这也是遵循Model-View-Controller(MVC)架构的一种常见做法,使得...

    MyEclipse开发StrutsHibernate集成

    2. **创建项目**:在MyEclipse中新建一个Web工程,设置好项目名称、动态Web模块版本等属性。 3. **导入框架**:通过MyEclipse的库管理功能,添加Struts和Hibernate的jar包到项目的类路径中。同时,还需要配置Struts...

    Hibernate+struts实例学习

    为Web工程添加Hibernate支持,包括配置SessionFactory和hibernate.cfg.xml文件。在该配置文件中添加Hibernate属性,其中`show_sql`属性在开发测试阶段设置为true,以便输出SQL语句跟踪Hibernate运行状态;在应用发布...

Global site tag (gtag.js) - Google Analytics