`
longxia1987
  • 浏览: 35224 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring 集成 hibernate

 
阅读更多

需要的jar包,包含了spring mvc的jar

<!-- 统一管理 jar 包版本 -->
  <properties>
  	<version.junit>4.0</version.junit>
  	<version.spring>3.0.6.RELEASE</version.spring>
  	<version.slf4j>1.6.4</version.slf4j>
  	<version.jstl>1.2</version.jstl>
  	<version.jackson>1.8.4</version.jackson>
  	<version.servlet-api>2.5</version.servlet-api>
  	<version.c3p0>0.9.1.2</version.c3p0>
  	<version.mysql>5.1.21</version.mysql>
  	<version.javassist>3.12.1.GA</version.javassist>
  	<version.commons-dbcp>1.4</version.commons-dbcp>
  	
  	<!-- 轻易不要升级这两个jar -->
	<version.hibernate>3.5.1-Final</version.hibernate>
	<version.hibernate-annotations>3.5.1-Final</version.hibernate-annotations>
  </properties>
  
  <dependencies>
  
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${version.junit}</version>
      <scope>test</scope>
    </dependency>
    
    <!-- org.slf4j -->
	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-log4j12</artifactId>
		<version>${version.slf4j}</version>
	</dependency>
	
	<dependency>
	    <groupId>javax.servlet</groupId>
	    <artifactId>jstl</artifactId>
	    <version>${version.jstl}</version>
	</dependency>
	
	<!-- servlet-api -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>${version.servlet-api}</version>
			<scope>provided</scope>
		</dependency>
	
	<!--  spring return json -->
	<dependency>  
        <groupId>org.codehaus.jackson</groupId>  
        <artifactId>jackson-core-asl</artifactId>  
        <version>${version.jackson}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.codehaus.jackson</groupId>  
        <artifactId>jackson-mapper-asl</artifactId>  
        <version>${version.jackson}</version>  
    </dependency>  
    
    <!-- hibernate -->
    <dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-core</artifactId>
		<version>${version.hibernate}</version>
	</dependency>

	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-annotations</artifactId>
		<version>${version.hibernate-annotations}</version>
	</dependency>
	
	<dependency>
	    <groupId>c3p0</groupId>
	    <artifactId>c3p0</artifactId>
	    <version>${version.c3p0}</version>
	</dependency>
	
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>${version.mysql}</version>
	</dependency>
		
	<dependency>
	    <groupId>javassist</groupId>
	    <artifactId>javassist</artifactId>
	    <version>${version.javassist}</version>
	</dependency>
<!-- **************************** spring *************************************** -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>${version.spring}</version>
	</dependency>

	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-orm</artifactId>
		<version>${version.spring}</version>
	</dependency>

	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-aop</artifactId>
		<version>${version.spring}</version>
	</dependency>

	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-beans</artifactId>
		<version>${version.spring}</version>
	</dependency>

	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context</artifactId>
		<version>${version.spring}</version>
	</dependency>

	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-jdbc</artifactId>
		<version>${version.spring}</version>
	</dependency>

	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-core</artifactId>
		<version>${version.spring}</version>
	</dependency>
	
	<dependency>
		<groupId>commons-dbcp</groupId>
		<artifactId>commons-dbcp</artifactId>
		<version>${version.commons-dbcp}</version>
		<scope>test</scope>
	</dependency>

	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-test</artifactId>
		<version>${version.spring}</version>
		<scope>test</scope>
	</dependency>
 </dependencies>

数据库连接资源文件:jdbc.properties

hibernate.dialect=org.hibernate.dialect.MySQLDialect

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/springmvc
jdbc.username=root
jdbc.password=root

数据库连接配置 applicationDataSource.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:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx" 
	xsi:schemaLocation="
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
	
	<context:property-placeholder location="classpath*:config/jdbc.properties" />
	
	<bean id="springmvcDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
		<property name="driverClass" value="${jdbc.driverClassName}" />
		<property name="jdbcUrl" value="${jdbc.url}" />
		<property name="properties">
			<props>
				<prop key="user">${jdbc.username}</prop>
				<prop key="password">${jdbc.password}</prop>
				<prop key="c3p0.initialPoolSize">10</prop>
				<prop key="c3p0.minPoolSize">10</prop>
				<prop key="c3p0.autoCommitOnClose">false</prop>
				<prop key="hc3p0.maxPoolSize">30</prop>
				<prop key="hc3p0.timeout">120</prop>
				<prop key="c3p0.maxIdleTime">18000</prop>
				<prop key="hibernate.connection.release_mode">auto</prop>
				<prop key="c3p0.testConnectionOnCheckout">true</prop>
				<prop key="hibernate.c3p0.testConnectionOnCheckout">false</prop>
			</props>
		</property>
	</bean>
	<!--
		org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
		org.springframework.orm.hibernate3.LocalSessionFactoryBean
	-->
	<bean id="springmvcSessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource" ref="springmvcDataSource" />
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">${hibernate.dialect}</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
				<prop key="hibernate.generate_statistics">true</prop>
				<prop key="hibernate.autoReconnect">true</prop>
				<prop key="hibernate.hbm2ddl.auto">update</prop>
			</props>
		</property>
		<property name="packagesToScan" value="com.longxia.**.model" />
	</bean>
	
	<bean id="springmvcHibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
		<property name="sessionFactory" ref="springmvcSessionFactory" />
	</bean>
	
	<bean id="jdbcSpringmvcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" p:dataSource-ref="springmvcDataSource" />
 	
</beans>

将applicationDataSource.xml 加入的web.xm中

<!-- 设定配置文件列表 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			 <!-- classpath*: 指定编译后的class目录  -->
			classpath*:config/application*.xml
		</param-value>
	</context-param>

model类的编写:

package com.longxia.springmvc.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Version;

import org.hibernate.annotations.OptimisticLockType;

/**
 * @author xialong<longxia1987@hotmail.com>
 *
 */
@Entity
@Table(name="t_user")
@org.hibernate.annotations.Entity(optimisticLock = OptimisticLockType.VERSION)
public class User extends BaseModel {
	
	private static final long serialVersionUID = 2358420388745275538L;
	
	private Integer id;
	private String userName;
	private String password;
	private Date version;
	
	@Id
	@Column(name="id")
	@GeneratedValue(strategy=GenerationType.AUTO)
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	
	@Column(name="user_name",length=50)
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	@Column(name="password",length=50)
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	@Version
	@Column(name="version")
	public Date getVersion() {
		return version;
	}
	public void setVersion(Date version) {
		this.version = version;
	}
}

使用:

/**
 * 
 */
package com.longxia.springmvc.dao.userdao;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;

import org.hibernate.SessionFactory;
import org.springframework.stereotype.Component;

import com.longxia.springmvc.dao.HibernateBaseDao;
import com.longxia.springmvc.model.User;

/**
 * @author xialong
 *
 */
@Component
public class UserDaoImpl extends HibernateBaseDao<User> implements IUserDao {
	@Resource
	private SessionFactory springmvcSessionFactory;
	@PostConstruct
	public void initSessionFactory() {
		super.setSessionFactory(springmvcSessionFactory);
	}
	/* (non-Javadoc)
	 * @see com.longxia.springmvc.dao.userdao.IUserDao#findAllUsers()
	 */
	@Override
	public List<User> findAllUsers() {
		String hql = "from User";
		return this.getHibernateTemplate().find(hql);
	}
	
}


分享到:
评论

相关推荐

    Spring集成Hibernate所需jar包

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

    ssh集成jar包,支持spring集成Hibernate,spring集成struts2等

    - Spring与Hibernate集成,通常使用Spring的HibernateTemplate或HibernateDaoSupport,提供事务管理和数据访问抽象,使得代码更简洁,事务控制更方便。 - Spring与Struts2集成,Spring可以作为Struts2的Action的...

    Spring集成Hibernate myeclipse 下

    在"Spring集成Hibernate Myeclipse下"的场景中,我们首先需要配置MyEclipse环境,确保安装了Spring和Hibernate的插件,以及Tomcat服务器。接下来,我们将逐步介绍集成过程中的关键步骤: 1. **创建项目结构**:创建...

    spring集成hibernate所需jar包

    在"spring集成hibernate所需jar包"中,通常包含以下关键的库文件: 1. **Spring Framework**:这是Spring的核心组件,包括`spring-context`、`spring-beans`、`spring-aop`、`spring-jdbc`和`spring-orm`等模块。...

    Spring集成Hibernate写SQLServer

    在Spring集成Hibernate的过程中,我们需要配置Spring的DataSource、SessionFactory以及Hibernate的实体类和映射文件。DataSource是连接数据库的桥梁,SessionFactory则负责创建Session对象,Session对象是执行数据库...

    Spring集成Hibernate

    Spring集成Hibernate提供了高效、稳定的数据库访问方案。通过Spring的事务管理、AOP支持和DAO抽象,我们可以专注于业务逻辑,而不用过多关注底层的数据库操作。同时,结合日志记录,能够更好地追踪和诊断问题。总的...

    spring集成hibernate,最简单移动的小案例

    这个“spring集成hibernate,最简单移动的小案例”旨在展示如何将这两个框架整合,以创建一个简洁且实用的应用。 首先,Spring和Hibernate的集成涉及到多个步骤: 1. **引入依赖**:项目中需要包含Spring和...

    spring集成hibernate

    10. **Spring Boot 和 Auto-configuration**: 如果项目使用了 Spring Boot,那么配置会变得更加简单,因为 Spring Boot 提供了自动配置功能,可以快速搭建 Spring 和 Hibernate 的集成环境。 以上是 Spring 集成 ...

    Spring与Hibernate集成

    **Spring与Hibernate集成详解** 在Java企业级应用开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全方位的轻量级应用框架,提供了强大的依赖注入、AOP(面向切面编程)以及各种服务管理功能。而...

    struts2 spring hibernate集成

    集成Struts2、Spring和Hibernate时,需要注意配置文件的正确设置,包括Action配置、Spring Bean的定义、Hibernate的数据库连接和实体映射。同时,理解这三个框架的工作原理和相互作用,对于解决问题和优化代码至关...

    struts1+spring+hibernate+ibatis集成

    Struts1、Spring、Hibernate和iBatis是Java Web开发中的四大框架,它们共同构建了一个强大的后端架构,用于处理复杂的企业级应用。这个集成方案旨在优化开发流程,提高代码的可维护性和可扩展性。 Struts1是MVC...

    struts2.1.8 集成 spring hibernate需要的 核心 jar

    这个版本的Struts2集成了Spring和Hibernate,使得开发者能够更方便地管理控制层(Controller)和持久层(Persistence Layer)。Spring是一个全面的后端应用框架,而Hibernate则是一个流行的ORM(对象关系映射)工具...

    spring集成Hibernate

    本文主要讲解如何在Spring4.0.4下整合Hibernate4.3.6; 主要介绍了如下内容: 项目结构的规划; Spring MVC的配置和使用; Spring下整合Hibernate的具体过程; 数据源的配置; jdbcTemplate和HibernateTemplate两种...

    spring集成hibernate 架构例子 前端采用Extjs

    spring+hibernate的集成; 前端采用Extjs搭建框架,菜单可配置; 服务端对hibernate做了比较多的封装,功能强大,开发方便; 对web层交互也做了封装; 对异常机制做了简单的封装;

    Spring2 Hibernate3集成

    4. **DAO支持**:Spring提供了对DAO的支持,可以方便地集成Hibernate DAO实现。 #### 三、示例代码解析 下面基于提供的代码片段,详细分析Spring2 Hibernate3集成的关键点。 ##### 1. UserDAO接口定义 ```java ...

    Spring之Spring2.5集成Hibernate3.6

    这篇博客“Spring之Spring2.5集成Hibernate3.6”主要探讨了如何将两个经典的开源框架——Spring 2.5和Hibernate 3.6进行整合,以实现数据持久化的高效管理。 Spring 2.5版本是Spring框架的一个重要里程碑,它引入了...

    spring集成Struts与Hibernate

    #### Spring集成Hibernate **背景介绍** Hibernate作为一款流行的ORM框架,提供了对象关系映射的能力,使得Java对象可以透明地映射到数据库表上。它极大地简化了数据持久化的操作,提高了开发效率。而Spring则通过...

    spring 与hibernate的集成

    通过这种方式,Spring和Hibernate成功集成,使得我们可以利用Spring的IoC和AOP特性来管理事务,同时利用Hibernate进行高效的数据持久化操作。这种集成方式大大提高了代码的可维护性和开发效率,降低了系统的耦合度。

    spring集合hibernate多数据切换

    Spring集成Hibernate实现多数据源,通常会涉及到以下步骤: 1. **配置数据源**:在Spring的配置文件中定义多个DataSource bean,每个bean代表一个数据源。例如,我们可以分别为生产环境和测试环境设置不同的数据源...

Global site tag (gtag.js) - Google Analytics