Spring4 + hibernate4 配置
来源:互联网 发布:字体模仿软件 编辑:程序博客网 时间:2024/04/29 15:44
折腾了我快两天了,配置spring + hibernate太坑,各种错,各种问题。终于配置好了,记录下。
1. 工程目录预览
2. 依赖包版本
spring 4.0.3
hibernate 4.3.5.Final
3. 先创建maven 工程,加入web模块。首先配置maven的依赖
<?xml version="1.0" encoding="UTF-8"?><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>org.bnu</groupId> <artifactId>dataserver</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.0.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.0.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.0.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.0.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>4.0.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.0.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.0.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>4.0.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.0.3.RELEASE</version> </dependency> <!-- Mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.29</version> </dependency> <!-- Hibernate4 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.3.5.Final</version> </dependency> <!-- for JPA, use hibernate-entitymanager instead of hibernate-core --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.14.4</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1-b09</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.0</version> </dependency> </dependencies></project>
4. spring.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" xsi:schemaLocation=" 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 "> <context:component-scan base-package="org.bnu.dao,org.bnu.service,org.bnu.model" /> </beans>
5. spring-hibernate.xml配置
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd "> <context:property-placeholder location="classpath:hibernate.properties" /> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="packagesToScan"> <list> <value>org.bnu.model</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> </props> </property> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.user}" /> <property name="password" value="${jdbc.pass}" /> </bean> <bean name="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:annotation-driven transaction-manager="txManager" /></beans>
6. spring-mvc.xml配置
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" 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/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd "> <mvc:annotation-driven /> <context:component-scan base-package="org.bnu.controller"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> </bean></beans>
7. hibernate.properties配置
# jdbc.Xjdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/sensordata?useUnicode=true&characterEncoding=UTF-8jdbc.user=xiejdbc.pass=123# hibernate.Xhibernate.dialect=org.hibernate.dialect.MySQLDialecthibernate.show_sql=truehibernate.hbm2ddl.auto=update
8. web.xml配置
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>dataserver</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml,classpath:spring-hibernate.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>sprintMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>sprintMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
9. 配置文件完成之后,开始写代码。这里主要以user为例子,其中user是表映射的pojo类,userDao负责数据表的curd操作,userService进一步封装userDao,提供用户相关的服务,并提供给ctroller类中的userCtroller. 这个类负责处理用户请求,处理请求,调用userService相关的服务,完成处理后,跳转到结果页面
Users 类
@Entity@Table(name="users")public class Users { public Users(){ super(); } @Id @Column(name="id",length=32,nullable=false,unique=true) @GenericGenerator(name="generator",strategy="uuid.hex") @GeneratedValue(generator="generator") @Getter@Setter private String id; @Column(name="age") @Getter@Setter private Integer age; @Column(name="userName") @Getter@Setter private String userName;}
UserDao类
@Repository("userDao")public class UserDao { @Autowired private SessionFactory sessionFactory; public void save(Users users){ sessionFactory.getCurrentSession().save(users); }}
UserService类
@Service("userService")@Transactionalpublic class UserService { @Autowired private UserDao userDao; public void addUser(Users user){ userDao.save(user); }}
UserCtroller类
@Controller@RequestMapping("/user")public class UserController { @Autowired private UserService userService; @RequestMapping(value = "/manager") public ModelAndView hello(){ ModelAndView mv=new ModelAndView(); mv.addObject("message","helloMVC"); mv.setViewName("users"); return mv; } @RequestMapping(value = "/add") public ModelAndView count(){ ModelAndView mv=new ModelAndView(); Users user=new Users(); user.setUserName("xie"); user.setAge(12); try{ userService.addUser(user); mv.setViewName("success"); mv.addObject("user",user); mv.addObject("msg","注册成功"); return mv; }catch (Exception e){ mv.setViewName("error"); mv.addObject("user",null); mv.addObject("msg","注册失败"); return mv; } }}
10. 运行Tomcat 7 。输入url: http://localhost:8080/dataserver/user/add
0 0
- Spring4 + hibernate4 配置
- Spring4+Hibernate4配置Ehcache
- Spring4+Hibernate4整合配置
- spring4-hibernate4-二级缓存ehcache配置
- Spring4+Hibernate4+SpringMVC整合配置
- Spring4与Hibernate4整合配置
- spring4.x + hibernate4.x 配置详解
- spring4.x + hibernate4.x 配置详解
- 配置spring4+spring mvc+hibernate4+hadoop1.2
- Spring4+Hibernate4配置注解事务控制
- spring4如何整合 hibernate4 配置详解
- Spring4+Hibernate4 事务管理 配置 注解 AOP
- Spring4+Hibernate4+Mybatis Maven的pom配置
- 使用注解配置ehcache,环境:Spring4、hibernate4
- spring4.x + hibernate4.x 配置详解
- spring4.x + hibernate4.x 配置详解
- Spring4+Hibernate4
- spring4+hibernate4配置过程中遇到的问题
- 纠结的人生,纠结的工作
- 获取前一天日期的方法
- 预处理器2
- mContext.startActivity(intent)失败原因分析
- 通过反射获取泛型<T>的class
- Spring4 + hibernate4 配置
- CS0016: 未能写入输出文件.......
- 笔试题(5)
- POJ 3281 Dining(最大流)
- 关于Ember.js中的route的一点问题
- 正则表达式对qq号码进行校验
- 使用移动硬盘在XP上安装Linux双系统
- Java虚拟机解析篇之---内存模型
- Gallery控件的使用