maven配置文件
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zcj.test</groupId> <artifactId>mvc</artifactId> <version>1.0</version> <packaging>war</packaging> <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.2.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>5.0.2.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-test --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.0.2.RELEASE</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.29</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.12.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>5.2.12.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-ehcache</artifactId> <version>5.2.12.Final</version> </dependency> <!-- https://mvnrepository.com/artifact/net.sf.ehcache/ehcache --> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.10.4</version> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.8.0-beta0</version> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.8.0-beta0</version> <scope>test</scope> </dependency> </dependencies> <properties> <failOnMissingWebXml>false</failOnMissingWebXml> </properties> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
数据库配置文件
init.properties
#mysql database setting jdbc.driverClass=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/spring?useUnicode=true&characterEncoding=utf-8 jdbc.user=root jdbc.password=password jdbc.checkoutTimeout=30000 jdbc.idleConnectionTestPeriod=60 jdbc.maxIdleTime=30 jdbc.initialPoolSize=5 jdbc.minPoolSize=5 jdbc.maxPoolSize=40 jdbc.acquireIncrement=5 #hibernate config hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect hibernate.show_sql=true hibernate.format_sql=true hibernate.hbm2ddl.auto=update hibernate.current_session_context_class=thread hibernate.cache.use_second_level_cache = false hibernate.cache.use_query_cache=false hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory hibernate.cache.provider_configuration_file_resource_path=ehcache.xml
日志配置文件
log4j.properties
### set log levels ### INFO log4j.rootLogger = INFO,stdout,E log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n log4j.logger.org.quartz=INFO log4j.appender.E= org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File =logs/mylogs.log log4j.appender.E.DatePattern=yyyy-MM-dd'.log' log4j.appender.E.Threshold =INFO log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern =%-d{yyyy-MM-dd HH\:mm\:ss}[%c] [%t\:%r] - [%p] %m%n #为了显示参数 log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE log4j.loggerorg.hibernate.type.descriptor.sql.BasicExtractor=TRACE #查看查询中命名参数的值 log4j.logger.org.hibernate.engine.QueryParameters=DEBUG log4j.logger.org.hibernate.engine.query.HQLQueryPlan=DEBUG
缓存配置文件
ehcache.xml
<?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"> <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="false"></defaultCache> </ehcache>
spring配置文件
bean.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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"> <context:annotation-config></context:annotation-config> <context:component-scan base-package="com.zcj"></context:component-scan> <bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:init.properties</value> </list> </property> </bean> <!-- 配置数据源 c3p0 --> <bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${jdbc.driverClass}"></property> <property name="jdbcUrl" value="${jdbc.url}"></property> <property name="user" value="${jdbc.user}"></property> <property name="password" value="${jdbc.password}"></property> <!-- 请求超时时间 --> <property name="checkoutTimeout" value="${jdbc.checkoutTimeout}" /> <!-- 每60秒检查所有连接池中的空闲连接。默认值: 0,不检查 --> <property name="idleConnectionTestPeriod" value="${jdbc.idleConnectionTestPeriod}" /> <!-- 连接数据库连接池最大空闲时间 --> <property name="maxIdleTime" value="${jdbc.maxIdleTime}" /> <!-- 连接池初始化连接数 --> <property name="initialPoolSize" value="${jdbc.initialPoolSize}" /> <property name="minPoolSize" value="${jdbc.minPoolSize}" /> <property name="maxPoolSize" value="${jdbc.maxPoolSize}" /> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。默认值: 3 --> <property name="acquireIncrement" value="${jdbc.acquireIncrement}" /> </bean> <bean id="localSessionFactoryBean" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="dataSource" ref="comboPooledDataSource"></property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> <!-- <prop key="hibernate.current_session_context_class">${hibernate.current_session_context_class}</prop> --> <!-- 开启二级缓存 ehcache --> <prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop> <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop> <prop key="hibernate.cache.region.factory_class">${hibernate.cache.region.factory_class}</prop> <prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.cache.provider_configuration_file_resource_path}</prop> </props> </property> <property name="packagesToScan" value="com.zcj.entry"/> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> <property name="sessionFactory" ref="localSessionFactoryBean"/> <property name="dataSource" ref="comboPooledDataSource"/> </bean> <tx:annotation-driven transaction-manager="transactionManager" /> <!-- <bean id="baseDao" class="com.zcj.service.test.BaseDao"> --> <!-- <property name="sessionFactory" ref="localSessionFactoryBean"/> --> <!-- </bean> --> </beans>实体,采用全注解
package com.zcj.entry.test; import java.io.Serializable; import java.util.Date; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table public class Student implements Serializable{ private static final long serialVersionUID = 8021925565032055905L; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; private String name; private Date date; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } }
dao层
package com.zcj.service.test; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.orm.hibernate5.support.HibernateDaoSupport; import org.springframework.stereotype.Repository; @Repository public class BaseDao extends HibernateDaoSupport { @Autowired @Qualifier("localSessionFactoryBean") public void setSessionFactoryBase(SessionFactory sessionFactory){ this.setSessionFactory(sessionFactory); } }
服务层
package com.zcj.service.test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate5.HibernateTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.zcj.entry.test.Student; @Transactional @Service public class TestService { private static final Logger logger = LoggerFactory.getLogger(TestService.class); @Autowired private BaseDao dao; public void save(Student student){ dao.getSessionFactory().openSession().save(student); } public Student findOne(Long id){ HibernateTemplate hibernateTemplate = dao.getHibernateTemplate(); System.out.println(hibernateTemplate); Student student = hibernateTemplate.get(Student.class, id); System.out.println(student); return student ; } }
测试
package com.zcj.test; import java.util.Date; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.zcj.entry.test.Student; import com.zcj.service.test.TestService; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath:bean.xml"}) public class MyTest { @Autowired public TestService service; @Test public void testInsert(){ Student student = new Student(); student.setDate(new Date()); student.setName("zhoucanji"); service.save(student); } @Test public void testFind(){ service.findOne(1L); } }
如果觉得不错,请评价
相关推荐
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第12部分,将帮助开发者掌握如何在Java Web项目中高效地集成这三个核心框架,实现松耦合、可...
在本视频教程“Spring MVC + Spring + Hibernate 全注解整合开发 03”中,我们将深入探讨Java企业级开发中的三大核心框架——Spring、Spring MVC和Hibernate的整合应用,尤其是利用注解进行的无XML配置。以下是这些...
"spring3+hibernate4+struts2+maven全注解整合"的主题意味着将这四个组件通过注解的方式进行集成,以构建一个高效且易于维护的Web应用。 Spring是企业级Java应用程序的核心框架,它提供了依赖注入(DI)和面向切面...
在本视频教程“Spring MVC + Spring + Hibernate 全注解整合开发 05”中,我们将深入探讨Java企业级开发中的三大核心技术——Spring MVC、Spring和Hibernate的集成应用,特别是如何利用注解进行高效无XML配置的开发...
【标题】"Spring MVC + Spring + Hibernate 全注解整合开发视频教程 08" 提供了一个关于使用Java技术栈进行Web开发的课程,重点在于如何通过注解实现Spring MVC、Spring和Hibernate的深度整合。这个系列教程的第八...
Struts2.3.28、Spring4.1.6和Hibernate...以上就是Struts2.3.28、Spring4.1.6和Hibernate4.3.8整合的关键知识点,以及注解在整合中的作用。理解并熟练掌握这些内容,能够帮助开发者更有效地构建和维护Java EE应用程序。
在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...
2. **配置文件**:struts-config.xml定义Struts的配置,spring-beans.xml管理Spring的bean,hibernate.cfg.xml配置Hibernate的数据库连接,可能还有实体类的映射文件(hbm.xml或使用注解)。 3. **JSP页面**:展示...
对于Spring+Spring MVC+Hibernate的项目,你需要引入以下关键依赖: 1. Spring的核心库,提供依赖注入和AOP支持。 2. Spring MVC,用于处理HTTP请求和响应,实现Web应用的前端控制器。 3. Hibernate,作为ORM框架,...
整合Struts2、Spring4和Hibernate5,通常遵循以下步骤: 1. **配置环境**:确保项目中包含这三个框架的库文件,并在pom.xml或build.gradle中添加相应的依赖。 2. **配置Struts2**:在struts.xml文件中定义Action类...
在IT行业中,Spring、SpringMVC和Hibernate是三个非常重要的框架,它们分别专注于不同领域的功能。Spring是一个全面的Java企业级应用开发框架,提供依赖注入(DI)和面向切面编程(AOP)等核心特性;SpringMVC是...
在IT行业中,Spring框架与Hibernate框架的整合是一个常见的任务,特别是在企业级应用开发中。本文将深入探讨"Spring 3.0 + Hibernate 3.5整合那些事儿",结合给出的标签"源码"和"工具",我们将讨论如何将这两个强大...
通过上述步骤,我们完成了Spring MVC、Spring、Hibernate的整合。这样的架构具有良好的解耦性、可扩展性和维护性,适用于大型企业级应用的开发。在实际项目中,可能还需要考虑其他因素,如安全性(Spring Security)...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第十部分将聚焦于实际应用中的细节和优化,旨在帮助开发者构建高效、可维护的Java Web应用程序...
总之,Spring+Hibernate的整合为Java开发者提供了一种高效且灵活的方式来处理数据库操作。通过理解这两个框架的核心原理以及整合过程,初学者能够更好地掌握企业级应用开发的技巧。实践这些步骤,不仅可以帮助你实现...
Struts2、Spring和Hibernate是Java Web开发中的三...以上就是关于“Struts2+Spring2.5+Hibernate3.2整合示例”的主要知识点,这个整合实例涵盖了Java Web开发中的重要技术,对于开发者来说,深入学习和实践将非常有益。
《ZK+Spring+Hibernate整合详解》 ZK、Spring和Hibernate是Java开发中的三大重要框架,它们分别在用户界面、依赖注入与事务管理、持久层操作方面发挥着关键作用。将这三者进行整合,可以构建出高效、稳定且易于维护...
1. **实体类(Entity)**:这些类代表数据库中的表,使用Hibernate注解如@Entity、@Id等,用于对象关系映射。 2. **SessionFactory配置**:在Spring配置文件中,配置Hibernate的SessionFactory,通常使用`...
1. **SessionFactory的创建**:Spring管理SessionFactory,通常在ApplicationContext.xml中配置,通过`<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">`指定数据源...
本项目"spring4+springmvc+hibernate3 整合demo"提供了一个完整的示例,帮助初学者理解和学习这三大框架的集成与应用。 首先,Spring Framework(简称Spring)是一个开源的应用框架,它以依赖注入(Dependency ...