spring 集成 hibernate

来源:互联网 发布:英语流利说怎么样知乎 编辑:程序博客网 时间:2024/06/03 19:40

需要的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.MySQLDialectjdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/springmvcjdbc.username=rootjdbc.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.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://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.AnnotationSessionFactoryBeanorg.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 * */@Componentpublic class UserDaoImpl extends HibernateBaseDao<User> implements IUserDao {@Resourceprivate SessionFactory springmvcSessionFactory;@PostConstructpublic void initSessionFactory() {super.setSessionFactory(springmvcSessionFactory);}/* (non-Javadoc) * @see com.longxia.springmvc.dao.userdao.IUserDao#findAllUsers() */@Overridepublic List<User> findAllUsers() {String hql = "from User";return this.getHibernateTemplate().find(hql);}}


原创粉丝点击