基于注解的Spring MVC整合Hibernate(所需jar包,spring和Hibernate整合配置,springMVC配置,重定向,批量删除)

2022-07-10 13:37:53 浏览数 (1)

大家好,又见面了,我是全栈君。

1、导入jar

2、web.xml配置

<?xml version=”1.0″ encoding=”UTF-8″?> <web-app version=”2.4″ xmlns=”http://java.sun.com/xml/ns/j2ee“ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“ xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd“> <!– 通过上下文參数指定spring配置文件的位置 –> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springMVC.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> 3、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:mvc=”http://www.springframework.org/schema/mvc“ 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/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-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/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd “> <!– 注解驱动 –> <mvc:annotation-driven/> <!– 组件扫描 –> <context:component-scan base-package=”cn.itcast.springmvc”></context:component-scan> <!– 定义数据源 –> <bean id=”ds” class=”com.mchange.v2.c3p0.ComboPooledDataSource”> <property name=”driverClass” value=”com.mysql.jdbc.Driver”></property> <property name=”jdbcUrl” value=”jdbc:mysql://localhost:3306/springmvc”></property> <property name=”user” value=”root”></property> <property name=”password” value=”123456″></property> <property name=”initialPoolSize” value=”10″></property> <property name=”maxPoolSize” value=”50″></property> <property name=”minPoolSize” value=”10″></property> </bean> <bean id=”sessionFactory” class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”> <property name=”dataSource” ref=”ds”></property> <!– hibernate映射文件的位置 –> <property name=”mappingDirectoryLocations”> <value>classpath:cn/itcast/springmvc/domain/</value> </property> <property name=”hibernateProperties”> <props> <prop key=”hibernate.Dialect”>org.hibernate.dialect.MySQLInnoDBDialect</prop> <prop key=”hibernate.show_sql”>true</prop> <prop key=”hibernate.hbm2ddl.auto”>update</prop> </props> </property> </bean> <!– 配置事物管理器 –> <bean id=”txManager” class=”org.springframework.orm.hibernate3.HibernateTransactionManager”> <property name=”sessionFactory” ref=”sessionFactory”/> </bean> <!– 配置事物的传播特性 (事物通知)–> <tx:advice id=”txAdvice” transaction-manager=”txManager”> <tx:attributes> <tx:method name=”save*” propagation=”REQUIRED”/> <tx:method name=”delete*” propagation=”REQUIRED”/> <tx:method name=”update*” propagation=”REQUIRED”/> <tx:method name=”find*” read-only=”true”/> <tx:method name=”*” read-only=”true”/> </tx:attributes> </tx:advice> <aop:config> <aop:advisor pointcut=”execution(* *..*ServiceImpl.*(..))” advice-ref=”txAdvice”/> <!– <aop:advisor advice-ref=”txAdvice” pointcut=”execution(* *..*ServiceImpl.*(..))”/> –> </aop:config> </beans>

4、SpringMVC.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:mvc=”http://www.springframework.org/schema/mvc“ 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/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-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/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd “> <!– 配置内部资源视图解析器 –> <bean class=”org.springframework.web.servlet.view.InternalResourceViewResolver”> <property name=”prefix” value=”/WEB-INF/jsp/”></property> <property name=”suffix” value=”.jsp”></property> </bean> </beans>

5、domain和hbm.xml配置

package cn.itcast.springmvc.domain;

public class Person {

private String id; private String name; private Integer age; private String address; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }

—————————-

Person.hbm.xml

<?

xml version=”1.0″?> <!DOCTYPE hibernate-mapping PUBLIC “-//Hibernate/Hibernate Mapping DTD 3.0//EN” “http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd“> <hibernate-mapping> <class name=”cn.itcast.springmvc.domain.Person” table=”persons”> <id name=”id” column=”id” type=”string”> <generator class=”uuid” /> </id> <property name=”name” column=”name” type=”string” /> <property name=”age” column=”age” type=”integer” /> <property name=”address” column=”address” type=”string” /> </class> </hibernate-mapping> 6、PersonDao

package cn.itcast.springmvc.dao;

import java.util.List;

import cn.itcast.springmvc.domain.Person;

public interface IPersonDao { public Person findPersonById(String id); public List<Person> findAllPerson(); public void savePerson(Person p); public void deletePersonById(String id); public void updatePerson(Person p); }

7、PersonDaoImpl

package cn.itcast.springmvc.dao;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.SessionFactory; import org.springframework.stereotype.Repository;

import cn.itcast.springmvc.domain.Person;

@Repository(value=”personDao”) public class PersonDaoImpl implements IPersonDao { @Resource(name=”sessionFactory”) private SessionFactory sf;

public Person findPersonById(String id) { return (Person) sf.getCurrentSession().createQuery(“from Person where id = ‘” id “‘”).list().get(0); }

public void savePerson(Person p) { sf.getCurrentSession().save(p); }

public void deletePersonById(String id) { Person p = new Person(); p.setId(id); //sf.getCurrentSession().delete(id, Person.class); sf.getCurrentSession().delete(p); }

public List<Person> findAllPerson() { return sf.getCurrentSession().createQuery(“from Person”).list(); }

public void updatePerson(Person p) { sf.getCurrentSession().update(p); }

}

8、IPersonService

package cn.itcast.springmvc.service;

import java.util.List;

import cn.itcast.springmvc.domain.Person;

public interface IPersonService { public Person findPersonById(String id); public List<Person> findAllPerson(); public void savePerson(Person p); public void deletePersonById(String id); public void updatePerson(Person p); }

9、PersonServiceImpl

package cn.itcast.springmvc.service;

import java.util.List;

import javax.annotation.Resource;

import cn.itcast.springmvc.dao.IPersonDao; import cn.itcast.springmvc.domain.Person;

@org.springframework.stereotype.Service(value=”personService”) public class PersonServiceImpl implements IPersonService { @Resource(name=”personDao”) private IPersonDao personDao;

public Person findPersonById(String id) { return personDao.findPersonById(id); }

public void savePerson(Person p) { personDao.savePerson(p); }

public void deletePersonById(String id) { personDao.deletePersonById(id); }

public List<Person> findAllPerson() { return personDao.findAllPerson(); }

public void updatePerson(Person p) { personDao.updatePerson(p); }

}

10、PersonController

package cn.itcast.springmvc.controller;

import java.util.List;

import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;

import cn.itcast.springmvc.domain.Person; import cn.itcast.springmvc.service.IPersonService;

@Controller @RequestMapping(value = “/person”) public class PersonController {

@Resource(name = “personService”) private IPersonService personService;

@RequestMapping(value = “/findPersonById”) public String findPersonById(String id) { Person p = personService.findPersonById(id); System.out.println(p); return “showPerson”; }

@RequestMapping(value = “/savePersonUI”) public String savePersonUI() { return “savePerson”; }

@RequestMapping(value = “/savePerson”) public String savePerson(Person p) { personService.savePerson(p); System.out.println(p); // 重定向 return “redirect:/person/findAllPerson”; }

@RequestMapping(value = “/deletePersonById”) public String deletePersonById(String id) { personService.deletePersonById(id);

// 重定向 return “redirect:/person/findAllPerson”; }

// 批量删除 @RequestMapping(value = “/deletePersonByIds”) public String deletePersonByIds(String ids) { ids = ids.substring(0, ids.length() – 1); String[] idss = ids.split(“,”); for (String id : idss) { personService.deletePersonById(id); } // 重定向 return “redirect:/person/findAllPerson”; }

@RequestMapping(value = “/findAllPerson”) public String findAllPerson(HttpServletRequest req) { List<Person> persons = personService.findAllPerson(); req.setAttribute(“persons”, persons); return “personList”; }

@RequestMapping(value = “/updatePersonUI”) public String updatePersonUI(HttpServletRequest req, String id) { Person p = personService.findPersonById(id); req.setAttribute(“p”, p); return “updatePerson”; }

@RequestMapping(value = “/updatePerson”) public String updatePerson(Person p) { personService.updatePerson(p); // 重定向 return “redirect:/person/findAllPerson”; } }

11、personList.jsp

<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%> <%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%> <% String path = request.getContextPath(); String basePath = request.getScheme() “://” request.getServerName() “:” request.getServerPort() path “/”; %> <html> <head> <title>personList.jsp</title> <script type=”text/javascript”> function selectOrUnslect(){ var ids = document.getElementsByName(‘ids’); if(document.getElementById(‘topId’).checked == true){ for(var i=0;i<ids.length;i ){ ids[i].checked = true; } }else{ for(var i=0;i<ids.length;i ){ ids[i].checked = false; } } } function deleteSomePerson(){ var ids = document.getElementsByName(‘ids’); var strIds = ”; for(var i=0;i<ids.length;i ){ if(ids[i].checked == true){ strIds = ids[i].value ‘,’; } } window.location = ‘<%=path%>/person/deletePersonByIds?ids=’ strIds; } </script> </head> <body> <h3> 用户列表页面 </h3> <a href=”<%=path %>/person/savePersonUI”>加入用户</a><br> <input type=”button” value=”批量删除” onclick=”deleteSomePerson();”> <table width=”70%” border=”1″> <tr> <td> <input type=”checkbox” id=”topId” onclick=”selectOrUnslect();”> </td> <td> name </td> <td> age </td> <td> address </td> <td> 删除 </td> <td> 更新 </td> </tr> <c:forEach items=”{p.name } </td> <td> {p.address } </td> <td> <a href=”<%=path %>/person/deletePersonById?id=

<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%> <% String path = request.getContextPath(); String basePath = request.getScheme() ”://” request.getServerName() ”:” request.getServerPort() path ”/”; %> <html> <head> <title>savePerson.jsp</title> </head> <body> <h3>加入用户页面</h3> <form action=”<%=path %>/person/savePerson” method=”post”> <table> <tr> <td>name:</td> <td><input type=”text” name=”name”></td> </tr> <tr> <td>age</td> <td><input type=”text” name=”age”></td> </tr> <tr> <td>address</td> <td><input type=”text” name=”address”></td> </tr> <tr> <td><input type=”submit” value=”提交”></td> <td><input type=”reset” value=”重置”></td> </tr> </table> </form> </body> </html> 13、showPerson.jsp

<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%> <% String path = request.getContextPath(); String basePath = request.getScheme() ”://” request.getServerName() ”:” request.getServerPort() path ”/”; %>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> <html> <head> <base href=”<%=basePath%>”> <title>My JSP ‘showPerson.jsp’ starting page</title> <meta http-equiv=”pragma” content=”no-cache”> <meta http-equiv=”cache-control” content=”no-cache”> <meta http-equiv=”expires” content=”0″> <meta http-equiv=”keywords” content=”keyword1,keyword2,keyword3″> <meta http-equiv=”description” content=”This is my page”> <!– <link rel=”stylesheet” type=”text/css” href=”styles.css”> –>

</head> <body> This is showPerson.jsp </body> </html>

14、updatePerson.jsp

<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%> <% String path = request.getContextPath(); String basePath = request.getScheme() ”://” request.getServerName() ”:” request.getServerPort() path ”/”; %> <html> <head> <title>savePerson.jsp</title> </head> <body> <h3>更新用户页面</h3> <form action=”<%=path %>/person/updatePerson” method=”post”> <input type=”hidden” name=”id” value=”{p.age }”></td> </tr> <tr> <td>address</td> <td><input type=”text” name=”address” value=”

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115483.html原文链接:https://javaforall.cn

0 人点赞