通过SpringMVC整合基于注解的JPA的实例教程代码下载
来源:互联网 发布:淘宝客服职位描述 编辑:程序博客网 时间:2024/06/01 09:59
实体类
原创整理不易,转载请注明出处:通过SpringMVC整合基于注解的JPA的实例教程代码下载
代码下载地址:http://www.zuidaima.com/share/1751862510177280.htm
Department
package com.zuidaima.sj.bean; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table;@Entity@Table(name=" department " ,catalog=" sj " ) public class Department { private int id; private String name; private Set <Employee> sets; @Id @Column(name=" id " ) @GeneratedValue(strategy=GenerationType.AUTO) public int getId() { return id; } public void setId( int id) { this .id= id; } @Column(name=" name " ) public String getName() { return name; } public void setName(String name) { this .name= name; } @OneToMany(mappedBy=" department " ,cascade=CascadeType.ALL) public Set <Employee> getSets() { return sets; } public void setSets(Set <Employee> sets) { this .sets= sets; } }
Employee
package com.zuidaima.sj.bean; import java.io.Serializable; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table;@SuppressWarnings( " serial " )@Entity@Table(name=" employee " ,catalog=" sj " ) public class Employee implements Serializable{ private int id; private String name; private Department department; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name=" id " ) public int getId() { return id; } public void setId( int id) { this .id= id; } @Column(name=" name " ) public String getName() { return name; } public void setName(String name) { this .name= name; } @ManyToOne(cascade=CascadeType.ALL) @JoinColumn(name=" deptid " ) public Department getDepartment() { return department; } public void setDepartment(Department department) { this .department= department; } }
BaseDAO
package com.zuidaima.sj.dao; import java.util.List; public interface BaseDAO <T> { List <T> listAll(); Object findById(Class <T> c, int id); boolean save(Object object); boolean update(Object object); boolean delete(Object object); }
BaseDAOImpl
package com.zuidaima.sj.dao; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; import org.springframework.stereotype.Component;@Component( " baseDAO " ) public class BaseDAOImpl <T> implements BaseDAO <T> { @PersistenceContext(unitName=" sjPU " ) private EntityManager entityManager; public boolean delete(Object object) { try { entityManager.remove(object); return true ; } catch (Exception e) { e.printStackTrace(); } return false ; } public Object findById(Class <T> c, int id) { try { return entityManager.find(c, id); } catch (Exception e) { e.printStackTrace(); } return null ; } public boolean save(Object object) { try { entityManager.persist(object); return true ; } catch (Exception e) { e.printStackTrace(); } return false ; } public boolean update(Object object) { try { entityManager.merge(object); return true ; } catch (Exception e) { e.printStackTrace(); } return false ; } @SuppressWarnings( " unchecked " ) public List <T> listAll() { try { Query query= entityManager.createQuery( " from Employee " ); return query.getResultList(); } catch (Exception e) { e.printStackTrace(); } return null ; }}
BaseService
package com.zuidaima.sj.service; import java.util.List; public interface BaseService <T> { List <T> listAll(); Object findById(Class <T> c, int id); boolean save(Object object); boolean update(Object object); boolean delete(Object object);}
BaseServiceImpl
package com.sj.service; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.sj.dao.BaseDAO;@Component( " baseServiceImpl " ) public class BaseServiceImpl <T> implements BaseService <T> { @Resource(name=" baseDAO " ) private BaseDAO <T> baseDAO; public BaseDAO <T> getBaseDAO() { return baseDAO; } public void setBaseDAO(BaseDAO <T> baseDAO) { this .baseDAO= baseDAO; } @Transactional(propagation=Propagation.REQUIRED) public boolean delete(Object object) { return baseDAO.delete(object); } @Transactional(propagation=Propagation.REQUIRED) public Object findById(Class <T> c, int id) { return baseDAO.findById(c, id); } @Transactional(propagation=Propagation.REQUIRED) public List <T> listAll() { return baseDAO.listAll(); } @Transactional(propagation=Propagation.REQUIRED) public boolean save(Object object) { return baseDAO.save(object); } @Transactional(propagation= Propagation.REQUIRED) public boolean update(Object object) { return baseDAO.update(object); } }
EmployeeAction
package com.zuidaima.sj.action; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.sj.bean.Employee; import com.sj.service.BaseService;@Controller@RequestMapping( " /employee.action " ) public class EmployeeAction { @SuppressWarnings( " unchecked " ) @Resource(name=" baseServiceImpl " ) private BaseService service; @SuppressWarnings( " unchecked " ) @RequestMapping(method=RequestMethod.GET,params=" method=listAll" ) public ModelAndView listAll(){ List <Employee> list=service.listAll(); return new ModelAndView( " list " ).addObject( " list " , list); } @ResponseBody @RequestMapping(params=" method=listOther" ) public String listOther(){ String str=" <font color='red'>HelloWorld</font> " ; return str; }}
TestApp
package com.sj.test; import javax.annotation.Resource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.sj.bean.Department; import com.sj.bean.Employee; import com.sj.service.BaseService;@ContextConfiguration(locations=" file:D:\\Program Files\\MyEclipse 8.5-workspace\\sj\\WebRoot\\WEB-INF\\applicationContext.xml " )@RunWith(SpringJUnit4ClassRunner. class ) public class TestApp { @SuppressWarnings( " unchecked " ) @Resource(name=" baseServiceImpl " ) BaseService baseService; @Test public void save(){ Employee employee=new Employee(); employee.setName( " 张三 " ); Department department=new Department(); department.setName( " 软件测试组 " ); employee.setDepartment(department); baseService.save(employee); } @SuppressWarnings( " unchecked " ) @Test public void query(){ Employee employee= (Employee) baseService.findById(Employee. class , ); System.out.println(employee.getId() + " \t " + employee.getName() + " \t " + employee.getDepartment().getName()); } }
applicationContext.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:p=" http://www.springframework.org/schema/p " xmlns:aop=" http://www.springframework.org/schema/aop " xmlns:tx=" http://www.springframework.org/schema/tx " 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/tx http: // www.springframework.org/schema/tx/spring-tx.xsd http: // www.springframework.org/schema/aop http: // www.springframework.org/schema/aop/spring-aop.xsd http: // www.springframework.org/schema/context http: // www.springframework.org/schema/context/spring-context.xsd"> <context:annotation - config /> <context:component - scan base - package=" com.sj.* " /> <aop:aspectj - autoproxy /> <tx:annotation - driven transaction - manager=" transactionManager " /> <bean id=" entityManagerFactory " class=" org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean "> <property name=" persistenceUnitName " value=" sjPU " /> <property name=" persistenceXmlLocation " value=" classpath:META-INF/persistence.xml "></property> </bean> <bean id=" transactionManager " class=" org.springframework.orm.jpa.JpaTransactionManager "> <property name=" entityManagerFactory " ref= " entityManagerFactory " /> </bean> </beans>
dispatcherServlet-servlet.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:p=" http://www.springframework.org/schema/p " xmlns:aop=" http://www.springframework.org/schema/aop " xmlns:tx=" http://www.springframework.org/schema/tx " 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/tx http: // www.springframework.org/schema/tx/spring-tx.xsd http: // www.springframework.org/schema/aop http: // www.springframework.org/schema/aop/spring-aop.xsd http: // www.springframework.org/schema/context http: // www.springframework.org/schema/context/spring-context.xsd"> <context:component - scan base - package=" com.sj.action " /> <bean id=" defaultAnnotationHandlerMapping " class=" org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping " /> <bean id=" annotationMethodHandlerAdapter " class=" org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter "> <property name=" messageConverters "> <list> <bean class=" org.springframework.http.converter.StringHttpMessageConverter "> <property name=" supportedMediaTypes "> <list> <value> text / html;charset=utf - </value> <value> text / xml </value> <value> text / plain </value> </list> </property> </bean> </list> </property> </bean> <bean id=" internalResourceViewResolver " class=" org.springframework.web.servlet.view.InternalResourceViewResolver "> <property name=" suffix " value=" .jsp "></property> <property name=" prefix " value=" / "></property> <property name=" viewClass " value= " org.springframework.web.servlet.view.JstlView " /> </bean> </beans>
web.xml
<?xml version=" 1.0 " encoding=" UTF-8 " ?> <web - app version=" 2.5 " 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_2_5.xsd"> <welcome - file - list> <welcome - file> index.jsp </welcome - file> </welcome - file - list> <listener> <listener - class> org.springframework.web.context.ContextLoaderListener </listener - class> </listener> <context - param> <param - name> contextConfigLocation </param - name> <param - value>/ WEB - INF / applicationContext.xml </param - value> </context - param> <servlet> <servlet - name> dispatcherServlet </servlet - name> <servlet - class> org.springframework.web.servlet.DispatcherServlet </servlet - class> <load - on - startup> </load - on - startup> </servlet> <servlet - mapping> <servlet - name> dispatcherServlet </servlet - name> <url - pattern>* .action </url - pattern> </servlet - mapping> </web - app>
src/META-INF/persistence.xml
<?xml version=" 1.0 " encoding=" UTF-8 " ?> <persistence xmlns=" http://java.sun.com/xml/ns/persistence " xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation=" http://java.sun.com/xml/ns/persistence http: // java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version=" 1.0 "> <persistence - unit name=" sjPU " transaction - type=" RESOURCE_LOCAL "> <provider> org.hibernate.ejb.HibernatePersistence </provider> <properties> <property name=" hibernate.connection.driver_class " value=" com.mysql.jdbc.Driver " /> <property name=" hibernate.connection.url " value=" jdbc:mysql://localhost:3306/sj " /> <property name=" hibernate.connection.username " value=" root " /> <property name=" hibernate.connection.password " value=" root " /> <property name=" hibernate.show_sql " value=" true " /> <property name=" hibernate.format_sql " value=" true " /> <property name=" hibernate.hbm2ddl.auto " value= " update " /> </properties> </persistence - unit> </persistence>
list.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> <meta http - equiv=" Content-Type " content=" text/html; charset=UTF-8"> <title> 雇员信息列表 </title> </head> <body> <c: if test=" ${empty requestScope.list} "> 对不起,没有要显示的记录 !!!! </c: if> <c: if test=" ${!empty requestScope.list} "> <c:forEach items=" ${requestScope.list} " var=" s "> <c:out value=" ${s.id} " /> <c:out value=" ${s.name} " /> <c:out value= " ${s.department.name} " /> <br /> </c:forEach> </c: if> </body> </html>
这里重点关注applicationContext.xml、dispatcherServlet-servlet.xml、EmployeeAction。其中dispatcherServlet-servlet.xml文件的命名规则遵循web.xml中配置的dispatcherServlet servlet的servlet-name属性的值。dispatcherServlet-servlet.xml里面配置了开启SpringMVC的注解解析器以及视图渲染器,和处理response时返回给浏览器的头信息.
点我下载工程代码
3 0
- 通过SpringMVC整合基于注解的JPA的实例教程代码下载
- 通过SpringMVC整合基于注解的JPA的实例教程代码下载
- 通过SpringMVC整合基于注解的JPA的实例教程代码下载
- 基于注解的SpringMVC整合JPA
- 基于注解的SpringMVC整合JPA
- 基于注解的SpringMVC整合JPA
- springmvc,mybatis,freemarker,maven-基于注解的整合
- 基于注解的Spring整合SpringMVC开发流程?
- 基于注解的SpringMVC
- 基于注解的springmvc
- 基于注解的springmvc
- 基于注解的SpringMVC
- 基于注解的SpringMVC
- 基于注解的SpringMVC
- 基于注解的SpringMVC
- 基于注解的SpringMVC
- 基于注解的SpringMVC
- springmvc注解配置例子的实例代码下载
- 第6周作业2-IF语句大显身手之成绩判断
- 管理支撑办公系统技术架构选型及相关技术应用范围、方法分析
- 60 Java 字符串
- myeclipse 和 eclipse 报错总结(查看第三发jar源码)
- struct和union的区别
- 通过SpringMVC整合基于注解的JPA的实例教程代码下载
- html5 [1] ~之标签初探
- (黑马程序员)学习笔记,多线程(三)
- 如何在myeclipse中更改servlet模板
- Android菜鸟的成长笔记(8)——Intent与Intent Filter(上)
- 深入理解Java内存模型《一》基础
- 数据挖掘模型介绍之四:最近邻方法和基于记忆的推理
- springmvc请求接收参数的几种方法
- Mariadb-Host '192.168.*.*' is not allowed to connect to this MariaDB server"的解决方法