您的位置:首页 > 编程语言 > Java开发

第三节:springmvc+hibernate+spring整合实例

2015-08-23 13:50 585 查看
1.action层

UserController.java
@Controller
@RequestMapping("/userAction")
public class UserController {

@Resource//@Resource(name="userManager")
private IUserManager userManager;

@RequestMapping("/toAddUser")
public String toAddUser(){
return "/addUser";
}

@RequestMapping("/addUser")
public String addUser(User user){
userManager.addUser(user);
return "redirect:/userAction/getAllUser";
}

@RequestMapping("/delUser")
public void delUser(String id,HttpServletResponse response){
String result = "{\"result\":\"error\"}";
if(userManager.delUser(id)){
result = "{\"result\":\"success\"}";
}
PrintWriter out = null;
response.setContentType("application/json");

try {
out = response.getWriter();
out.write(result);
} catch (IOException e) {
e.printStackTrace();
}

}

@RequestMapping("/updateUser")
public String updateUser(User user,HttpServletRequest request){
if(userManager.updateUser(user)){
user = userManager.getUser(user.getId());
request.setAttribute("user", user);
return "redirect:/userAction/getAllUser";
}else{
return "/error";
}
}

@RequestMapping("/getUser")
public String getUser(String id,HttpServletRequest request){
User user = userManager.getUser(id);
request.setAttribute("user", user);
return "/editUser";
}

@RequestMapping("/getAllUser")
public String getAllUser(HttpServletRequest request){
List<User> user = userManager.getAllUser();
request.setAttribute("user", user);
return "/userManager";
}
}
2.dao层

IUserDao
public interface IUserDAO {

public void addUser(User user);

public List<User> getAllUser();

public boolean delUser(String id);

public User getUser(String id);

public boolean updateUser(User user);
}
UserDao.java
public class UserDAO implements IUserDAO  {

private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}

@Override
public void addUser(User user) {
sessionFactory.getCurrentSession().save(user);
}

@Override
public List<User> getAllUser() {
String hql = "from User";
Query query = sessionFactory.getCurrentSession().createQuery(hql);

return query.list();
}

@Override
public boolean delUser(String id) {
String hql = "delete User u where u.id=?";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
query.setString(0, id);
return (query.executeUpdate() > 0);
}

@Override
public User getUser(String id) {
String hql = "from User u where u.id=?";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
query.setString(0, id);
return (User) query.uniqueResult();
}

@Override
public boolean updateUser(User user) {
String hql = "update User u set u.userName=?,u.age=? where u.id=?";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
query.setString(0, user.getUserName());
query.setString(1, user.getAge());
query.setString(2, user.getId());
return (query.executeUpdate() > 0);
}

}
3.service层

IUserManager
public interface IUserManager {

public void addUser(User user);

public List<User> getAllUser();

public boolean delUser(String id);

public User getUser(String id);

public boolean updateUser(User user);
}
UserManager.java
public class UserManager implements IUserManager {

private IUserDAO userDao;

public void setUserDao(IUserDAO userDao) {
this.userDao = userDao;
}

@Override
public void addUser(User user) {
userDao.addUser(user);
}

@Override
public List<User> getAllUser() {
return userDao.getAllUser();
}

@Override
public boolean delUser(String id) {
return userDao.delUser(id);
}

@Override
public User getUser(String id) {
return userDao.getUser(id);
}

@Override
public boolean updateUser(User user) {
return userDao.updateUser(user);
}
}
4.model层

User.java
@Entity
@Table(name="T_USER")
public class User {

@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
private String id;

@Column(length=32)
private String userName;

@Column(length=32)
private String age;

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

}
5.view层

userManager.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="../js/jquery-1.7.1.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function del(id){
$.get("/Hello/userAction/delUser?id=" + id,function(data){
alert(data.result);
if("success" == data.result){
alert("删除成功!");
window.location.reload();
}else{
alert("删除失败!")
}
});
}

</script>
</head>
<body>

<table border="1">
<tbody>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>编辑</th>
</tr>
<c:if test="${!empty user }">
<c:forEach items="${user }" var="u">
<tr>
<td>${u.userName }</td>
<td>${u.age }</td>
<td>

<a href="/Hello/userAction/getUser?id=${u.id }">编辑</a>
<a href="javascript:del('${u.id }')">删除</a>
</td>
</tr>
</c:forEach>
</c:if>
</tbody>
</table>
<a href="/Hello/userAction/toAddUser">增加</a>
</body>
</html>
addUser.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="../js/jquery-1.7.1.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function addUser(){
var form = document.forms[0];
form.action="/Hello/userAction/addUser";
form.method="post";
form.submit();
}

</script>
</head>
<body>
<h1>添加用户</h1>
<form name="userForm" action="">
姓名:<input type="text" name="userName">
年龄:<input type="text" name="age">
<input type="button" value="添加" onclick="addUser()">
</form>
</body>
</html>
edit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="../js/jquery-1.7.1.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">

</script>
</head>
<body>
<h>编辑用户</h>
<form name="userForm" action="/Hello/userAction/updateUser" method="post">
<input type="hidden" name="id" value="${user.id }">
姓名:<input type="text" name="userName" value="${user.userName }">
年龄:<input type="text" name="age" value="${user.age }">
<input type="submit" value="编辑" >
</form>
</body>
</html>
6.config配置文件

SpringMVC.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:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <!-- 注解扫描包 -->
<context:component-scan base-package="action" />
<context:component-scan base-package="dao" />
<!-- 开启注解 -->
<mvc:annotation-driven/>
<!-- 静态资源访问 -->
<mvc:resources location="/img/" mapping="/img/**"/>
<mvc:resources location="/js/" mapping="/js/**"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
springAnnotation-hibernate.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"
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/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 
<bean id="userDao" class="dao.UserDAO">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="userManagerBase" class="service.UserManager">
<property name="userDao" ref="userDao"></property>
</bean>

<!-- <bean id="userManager" parent="transactionBese">
<property name="target" ref="userManagerBase"></property>
</bean>   -->

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/project"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hiberante.format_sql">true</prop>
</props>
</property>
<property name="configLocations">
<list>
<value>
classpath*:config/hibernate.cfg.xml
</value>
</list>
</property>
</bean>
<!-- 配置声明式的事务管理) -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 注解 式的事务,须在UserDao类名上加@Transactional-->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 非注解 式的事务-->
<!-- <bean id="transactionBese" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" lazy-init="true" abstract="true">
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<props>
<prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="modify*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="get*">PROPAGATION_NEVER</prop>
</props>
</property>
</bean>  -->
</beans>

hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
<mapping class="model.User"/>
<!--  <mapping resource="ustc/zwxu/app/model/Role.hbm.xml"/> -->
</session-factory>
</hibernate-configuration>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: