博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring4 MVC Hibernate4集成
阅读量:5936 次
发布时间:2019-06-19

本文共 14315 字,大约阅读时间需要 47 分钟。

 

Spring4 MVC Hibernate4集成

一、    本文所用环境

Spring4.0.3.RELEASE

Hibernate4.3.5.Final

Mysql

二、    工程目录

 

三、    Maven添加依赖

用Maven创建项目,pom.xml如下:

4.0.0
com.lei.demo
spring3-mvc-hibernate
war
0.0.1-SNAPSHOT
spring3-mvc-hibernate Maven Webapp
http://maven.apache.org
junit
junit
3.8.1
test
javax.servlet
servlet-api
2.5
org.springframework
spring-core
4.0.3.RELEASE
org.springframework
spring-context
4.0.3.RELEASE
org.springframework
spring-web
4.0.3.RELEASE
org.springframework
spring-webmvc
4.0.3.RELEASE
org.springframework
spring-orm
4.0.3.RELEASE
org.springframework
spring-tx
4.0.3.RELEASE
org.springframework
spring-test
4.0.3.RELEASE
org.springframework
spring-jdbc
4.0.3.RELEASE
org.springframework
spring-expression
4.0.3.RELEASE
org.springframework
spring-aop
4.0.3.RELEASE
org.aspectj
aspectjrt
1.7.4
org.aspectj
aspectjweaver
1.7.4
mysql
mysql-connector-java
5.1.29
org.hibernate
hibernate-core
4.3.5.Final
org.hibernate
hibernate-entitymanager
4.3.5.Final
org.hibernate
hibernate-envers
4.3.5.Final
org.hibernate
hibernate-c3p0
4.3.5.Final
org.hibernate
hibernate-proxool
4.3.5.Final
org.hibernate
hibernate-infinispan
4.3.5.Final
org.hibernate
hibernate-ehcache
4.3.5.Final
org.hibernate
hibernate-commons-annotations
4.0.4.Final
org.hibernate.javax.persistence
hibernate-jpa-2.1-api
1.0.0.Final
org.jboss
jandex
1.1.0.Final
org.javassist
javassist
3.18.1-GA
org.jboss.logging
jboss-logging
3.1.3.GA
org.jboss.spec.javax.annotation
jboss-annotations-api_1.2_spec
1.0.0.Final
antlr
antlr
2.7.7
dom4j
dom4j
1.6.1
commons-collections
commons-collections
3.1
commons-dbcp
commons-dbcp
1.4
commons-pool
commons-pool
1.4
javax.transaction
jta
1.1
org.slf4j
slf4j-api
1.6.1
org.hibernate.javax.persistence
hibernate-jpa-2.0-api
1.0.0.Final
org.apache.tomcat
tomcat-dbcp
7.0.35
spring3-mvc-hibernate
View Code

四、    新建数据库表

数据库采用Mysql,新建users表,我们演示操作此表

CREATE TABLE `users` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `age` int(11) DEFAULT NULL,  `nice_name` varchar(32) DEFAULT NULL,  `user_name` varchar(32) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

创建Entity类Users.java见下

package com.lei.demo.entity;import javax.persistence.*;@Entity(name="users")public class Users {        public Users(){        super();    }        @Id    @GeneratedValue(strategy=GenerationType.AUTO)    @Column(name="id")    private Integer id;        @Column(name="user_name",length=32)    private String user_name;        @Column(name="age")    private Integer age;        @Column(name="nice_name",length=32)    private String nice_name;        public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getUser_name() {        return user_name;    }    public void setUser_name(String user_name) {        this.user_name = user_name;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    public String getNice_name() {        return nice_name;    }    public void setNice_name(String nice_name) {        this.nice_name = nice_name;    }}

 

五、    配置文件

1.        首先看一下Web.xml

Archetype Created Web Application
contextConfigLocation
classpath:/spring-*.xml
org.springframework.web.context.ContextLoaderListener
lei-dispatcher
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:/lei-dispatcher-servlet.xml
1
lei-dispatcher
/

 

2.        lei-dispatcher-servlet.xml

/WEB-INF/user/
.jsp

 

3.        Spring-hibernate的整合

spring-hibernate.xml文件

com.lei.demo.entity
${hibernate.hbm2ddl.auto}
${hibernate.dialect}
${hibernate.show_sql}

事务采用tx:advice和aop:config的xml配置方式实现。事务的其他实现方式见

 

资源文件persistence-mysql.properties如下:

# jdbc.Xjdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://yourServerIP:3306/yourDatabase?createDatabaseIfNotExist=truejdbc.user=userjdbc.pass=password# hibernate.Xhibernate.connection.driverClass=org.gjt.mm.mysql.Driverhibernate.connection.url=jdbc:mysql:// yourServerIP:3306/yourDatabasehibernate.dialect=org.hibernate.dialect.MySQL5Dialecthibernate.connection.username=userhibernate.connection.password=passwordhibernate.show_sql=truehibernate.hbm2ddl.auto=create-drop

 

六、    DAO、Service

UsersDAO.java如下:

package com.lei.demo.dao;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import com.lei.demo.entity.Users;public class UsersDAO {    private SessionFactory sessionFactory;    public void setSessionFactory(SessionFactory sessionFactory) {        this.sessionFactory = sessionFactory;    }    public SessionFactory getSessionFactory() {        return sessionFactory;    }    public List
getAllUser(){ String hsql="from users"; Session session = sessionFactory.getCurrentSession(); Query query = session.createQuery(hsql); return query.list(); }}

 

UserService.java如下:

package com.lei.demo.service;import com.lei.demo.dao.*;public class UserService {    private UsersDAO userDao;        public int userCount(){        return userDao.getAllUser().size();    }    public UsersDAO getUserDao() {        return userDao;    }    public void setUserDao(UsersDAO userDao) {        this.userDao = userDao;    }}

 

七、    加载Bean配置文件

这里主要是加载上边的dao、service

 

当然你也可以不采用xml配置bean,采用注释加载bean,见、

 

八、    JSP页面和Controller

WEB-INF/user/users.jsp如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here

Message : ${message}

 

 

写Controller访问上边的jsp

package com.lei.demo.controller;import javax.annotation.Resource;import com.lei.demo.service.*;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;@Controller@RequestMapping("/user")public class UserController {        @Resource(name="userService")    private UserService service;        @RequestMapping(value="/manager",method=RequestMethod.GET)    public ModelAndView hello2(){        ModelAndView mv = new ModelAndView();        mv.addObject("message", "HelloMVC");        mv.setViewName("users");        return mv;    }        @RequestMapping(value="/count",method=RequestMethod.GET)    public ModelAndView count(){                int c = service.userCount();                ModelAndView mv = new ModelAndView();        mv.addObject("message", c);        mv.setViewName("users");        return mv;    }}

 

上边的controller定义了两个路径

http://localhost:8080/spring4-mvc-hibernate4/user/manager

http://localhost:8080/spring4-mvc-hibernate4/user/count

以上两个路径都调用WEB-INF/user/users.jsp

参考资料《Spring3系列13-Controller和@RequestMapping》

 

九、    运行结果

 

 

 源代码下载:

 

友情赞助

如果您喜欢此文,感觉对您工作有帮助,预期领导会给您涨工资,不妨小额赞助一下,让我有动力继续努力。

赞助方式1:打开支付宝App,使用“扫一扫”付款,付款码见下图,别忘了付款留言哦!

 赞助方式2:支付宝扫一下,领取我的的大红包,并花掉,双方受益

 

 赞助方式3: 如果您有微信钱包,请打开微信,使用“扫一扫”付款,付款码见下图

 

 

转载请注明出处!

 

 

 
你可能感兴趣的文章
当下全球最炙手可热的八位少年创业者
查看>>
JQuery 表单校验插件 validate 使用纪录
查看>>
开源项目与许可证
查看>>
已释放的栈内存
查看>>
MySQL字符串函数substring:字符串截取
查看>>
ystep jQuery流程、步骤插件
查看>>
JQuery+ajax+jsonp 跨域访问
查看>>
现代软件工程 第七章 【MSF】练习与讨论
查看>>
Android网络之数据解析----SAX方式解析XML数据
查看>>
Java递归列出所有文件和文件夹
查看>>
[关于SQL]查询成绩都大于80分的学生
查看>>
Delphi(Tuxedo,BDE,ADO)三合一数据集组件HsTxQuery
查看>>
java之ibatis数据缓存
查看>>
纪念逝去的岁月——C/C++选择排序
查看>>
第6章 数组----复制数组
查看>>
STL区间成员函数及区间算法总结
查看>>
“TNS-03505:无法解析名称”问题解决一例
查看>>
二分图
查看>>
BootStrap学习(2)
查看>>
JVM源码分析之FinalReference完全解读
查看>>