完整的Spring-boot实现(部门与员工)

来源:互联网 发布:淘宝类目会影响排名吗 编辑:程序博客网 时间:2024/05/27 08:13

完整的spring-boot实现

工具:jdk1.7  -- eclipse --  Maven 

目的:实现通过部门ID查询部门及所有员工信息

目录结构:


index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><!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>Insert title here</title></head><body><input type="button" value="查询  员工信息" onclick="window.location.href='/spring-mvc-jpa/getAllEmp'"><br/><input type="button" value="模糊  查询员工" onclick="window.location.href='/spring-mvc-jpa/jsp/LikeEmp.jsp'"><br/><input type="button" value="查询  部门信息" onclick="window.location.href='/spring-mvc-jpa/getAllDept'"><br/><input type="button" value="部门与员工信息" onclick="window.location.href='/spring-mvc-jpa/jsp/DeptNo.jsp'"><br/><input type="button" value="添加  部门信息" onclick="window.location.href='/spring-mvc-jpa/jsp/AddDept.jsp'"><br/></body></html>
DeptNo.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><!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>Insert title here</title></head><body><form action="/spring-mvc-jpa/getAllMessage" method="get"><table><tr><td>部门号:<input type="text" name="did" id="did"></td></tr></table><input type="submit" value="查询"></form></body></html>

DeptAndEmp.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!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>Insert title here</title></head><body><table border="1px" cellpadding="0px" cellspacing="0px"><tr><td>编号</td><td>姓名</td><td>雇佣日期</td><td>薪水</td><td>所属部门</td><td>部门地址</td></tr><c:forEach var="h" items="${allList.sets}"><tr><td>${h.eid}</td><td>${h.ename}</td><td>${h.hiredate}</td><td>${h.salery}</td><td>${allList.dname}</td><td>${allList.addres}</td></tr></c:forEach></table></body></html>

配置环境文件:

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/springmvc-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!--过滤器,防止乱码 --><filter><filter-name>CharacterEncodingFilter</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><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/</url-pattern></filter-mapping><filter><filter-name>Spring OpenEntityManagerInViewFilter</filter-name><filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class><init-param><!-- 指定org.springframework.orm.jpa.LocalEntityManagerFactoryBean在spring配置文件中的名称,默认值为entityManagerFactory 如果LocalEntityManagerFactoryBean在spring中的名称不是entityManagerFactory,该参数一定要指定,否则会出现找不到entityManagerFactory的例外 --><param-name>entityManagerFactoryBeanName</param-name><param-value>entityManagerFactory</param-value></init-param></filter><filter-mapping><filter-name>Spring OpenEntityManagerInViewFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>

springmvc-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:context="http://www.springframework.org/schema/context"    xmlns:mvc="http://www.springframework.org/schema/mvc"    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">    <!--注解驱动配置-->    <mvc:annotation-driven />    <!--自动扫描目录下所有的类文件 -->    <context:component-scan base-package="com.java.controller" />    <!--对模型视图名称的解析 -->    <bean id="viewResolver"        class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/jsp/" />        <property name="suffix" value=".jsp" />    </bean></beans>

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:aop="http://www.springframework.org/schema/aop"    xmlns:tx="http://www.springframework.org/schema/tx"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:p="http://www.springframework.org/schema/p"    xmlns:cache="http://www.springframework.org/schema/cache"    xmlns:jaxws="http://cxf.apache.org/jaxws"    xmlns:jpa="http://www.springframework.org/schema/data/jpa"    xsi:schemaLocation="                    http://www.springframework.org/schema/beans                    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd                    http://www.springframework.org/schema/tx                     http://www.springframework.org/schema/tx/spring-tx-3.1.xsd                    http://www.springframework.org/schema/aop                     http://www.springframework.org/schema/aop/spring-aop-3.1.xsd                    http://www.springframework.org/schema/context                          http://www.springframework.org/schema/context/spring-context-3.1.xsd                    http://www.springframework.org/schema/cache                     http://www.springframework.org/schema/cache/spring-cache-3.1.xsd                    http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd                     http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"                     default-lazy-init="true">    <!-- 启动组件扫描,排除@Controller组件,该组件由SpringMVC配置文件扫描 -->    <context:component-scan base-package="com.java">        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />    </context:component-scan>    <!-- 属性文件位置 -->    <context:property-placeholder location="classpath:jdbc.properties" />        <!-- 数据源 -->    <bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"        destroy-method="close">        <!-- 数据库驱动 -->        <property name="driverClass" value="${jdbc.driver}" />        <!-- 相应驱动的jdbcUrl-->        <property name="jdbcUrl" value="${jdbc.url}" />        <!-- 数据库的用户名 -->        <property name="username" value="${jdbc.username}" />        <!-- 数据库的密码 -->        <property name="password" value="${jdbc.password}" />    </bean>        <!-- 设置JPA实现厂商的特定属性 -->    <bean id="hibernateJpaVendorAdapter"        class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">        <!--方言 -->        <property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>    </bean>    <!-- JPA实体管理器工厂 -->    <bean id="entityManagerFactory"        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">        <property name="dataSource" ref="dataSource" />        <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" />        <!-- 扫描包下的entity -->        <property name="packagesToScan" value="com.java" />        <property name="jpaProperties">            <props>            <prop key="spring.jpa.open-in-view">true</prop>                <prop key="hibernate.hbm2ddl.auto">update</prop><!-- validate/update/create -->                <prop key="hibernate.show_sql">true</prop>                <prop key="hibernate.format_sql">true</prop>                     <!-- 建表的命名规则 -->                <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>                  </props>        </property>    </bean>               <!-- Jpa 事务配置 -->    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">        <property name="entityManagerFactory" ref="entityManagerFactory"/>    </bean>    <!-- Spring Data Jpa配置 -->    <jpa:repositories base-package="com.java"  transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory"/>        <!-- 使用annotation定义事务 -->    <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /></beans>

jdbc.properties

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/db_spring_mvc_jpa?characterEncoding=utf-8jdbc.username=rootjdbc.password=123456
pom.xml

<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>com.third.spring-mvc-jpa</groupId><artifactId>spring-mvc-jpa</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>spring-mvc-jpa</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>4.3.11.Final</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId><version>4.3.11.Final</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-ehcache</artifactId><version>4.3.11.Final</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.35</version></dependency><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.2.2</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.12</version></dependency><dependency><groupId>com.jolbox</groupId><artifactId>bonecp</artifactId><version>0.8.0.RELEASE</version></dependency><dependency><groupId>com.jolbox</groupId><artifactId>bonecp-spring</artifactId><version>0.8.0.RELEASE</version></dependency><dependency><groupId>com.jolbox</groupId><artifactId>bonecp-provider</artifactId><version>0.8.0-alpha1</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.7</version></dependency><dependency><groupId>cglib</groupId><artifactId>cglib-nodep</artifactId><version>3.2.0</version></dependency><dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.1</version></dependency><dependency><groupId>ant</groupId><artifactId>ant</artifactId><version>1.6.5</version></dependency><dependency><groupId>org.apache.avro</groupId><artifactId>avro</artifactId><version>1.7.7</version></dependency><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.2</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4</version></dependency><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency><dependency><groupId>net.sf.ezmorph</groupId><artifactId>ezmorph</artifactId><version>1.0.6</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.23</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>18.0</version></dependency><dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.20.0-GA</version></dependency><dependency><groupId>org.jboss.logging</groupId><artifactId>jboss-logging</artifactId><version>3.3.0.Final</version></dependency><!-- jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.5.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.5.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.5.0</version></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-jpa</artifactId><version>1.7.1.RELEASE</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.2</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.7</source><target>1.7</target></configuration></plugin></plugins></build></project>
控制层

DeptController.java

package com.java.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.servlet.ModelAndView;import com.java.model.Dept;import com.java.service.DeptService;/* *  * Dept查询是通过自定义sql语句查询 *  */@RestControllerpublic class DeptController {@Autowiredprivate DeptService deptservice;//查询所有部门信息@RequestMapping("getAllDept")public ModelAndView getAllDept() {ModelAndView model = new ModelAndView();model.addObject("listDept",deptservice.getAllDept() );model.setViewName("AllDept");return model;}//根据部门号查询部门及所有员工信息@RequestMapping("getAllMessage")public ModelAndView getAllMessage(@RequestParam(value="did") Long id) {System.out.println(id);ModelAndView model = new ModelAndView();Dept dept = deptservice.getAllMessage(id);model.addObject("allList",dept );model.setViewName("DeptAndEmp");return model;}//添加部门信息@RequestMapping(value="addDept",method=RequestMethod.POST,headers="application/json")public ModelAndView addDept(@RequestBody Dept dept) {ModelAndView model = new ModelAndView();deptservice.addDept(dept);model.setViewName("success");return model;}}

EmpController.java

package com.java.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.servlet.ModelAndView;import com.java.service.EmpService;/* * EMP 部门查询是通过jpa解析方法名查询 *  */@Controllerpublic class EmpController {@Autowiredprivate EmpService empservice;//查询所有员工信息t@RequestMapping("getAllEmp")public ModelAndView getAllEmp(){ModelAndView model = new ModelAndView();model.addObject("empList", empservice.getAllEmp());model.setViewName("AllEmp");return model;}//模糊查询员工信息@RequestMapping(value = "getLikeEmp",method=RequestMethod.GET)public ModelAndView getLikeEmp(@RequestParam(value = "name") String name) {ModelAndView model = new ModelAndView();System.out.println("name:"+name);model.addObject("empList", empservice.getLikeEmp("%"+name+"%"));model.setViewName("AllEmp");return model;}//通过名字查询员工信息@RequestMapping(value="getEmpByName")public ModelAndView getEmpByName() {ModelAndView model = new ModelAndView();model.addObject("empList", empservice.getEmpByName("lisi"));model.setViewName("AllEmp");return model;}}

数据层

EmpDao.java

package com.java.dao;import java.util.List;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.Query;import org.springframework.stereotype.Repository;import com.java.model.Emp;@Repositorypublic interface EmpDao extends JpaRepository<Emp, Long>{//模糊查询员工信息public List<Emp> findByEnameLike(String name);@Query("select e from Emp e where e.ename =?1")List<Emp> findByEname(String name);}

DeptDao.java

package com.java.dao;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.stereotype.Repository;import com.java.model.Dept;@Repositorypublic interface DeptDao extends JpaRepository<Dept,Long>{}

模型层

Dept

package com.java.model;/* *  * 单向的一对多 *  */import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.OneToMany;import javax.persistence.Table;import org.hibernate.annotations.Cascade;@Entity@Table(name = "dept")public class Dept {@Id@Column(name = "did")@GeneratedValue(strategy = GenerationType.AUTO)private Long did;private String dname;private String addres;@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,targetEntity=Emp.class)@JoinColumn(name = "did",nullable = false)private Set<Emp> sets;public Set<Emp> getSets() {return sets;}public void setSets(Set<Emp> sets) {this.sets = sets;}public Long getDid() {return did;}public void setDid(Long did) {this.did = did;}public String getDname() {return dname;}public void setDname(String dname) {this.dname = dname;}public String getAddres() {return addres;}public void setAddres(String addres) {this.addres = addres;}}

Emp

package com.java.model;import java.sql.Date;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name = "emp")public class Emp {@Id@GeneratedValue(strategy=GenerationType.AUTO)private Long eid;private String ename;private Date hiredate;private double salery;public Long getEid() {return eid;}public void setEid(Long eid) {this.eid = eid;}public String getEname() {return ename;}public void setEname(String ename) {this.ename = ename;}public Date getHiredate() {return hiredate;}public void setHiredate(Date hiredate) {this.hiredate = hiredate;}public double getSalery() {return salery;}public void setSalery(double salery) {this.salery = salery;}}

Service层

DeptService

package com.java.service;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.java.dao.DeptDao;import com.java.model.Dept;@Servicepublic class DeptService<T> {@Autowiredprivate DeptDao deptdao;//查询所有部门信息public List<Dept> getAllDept(){return deptdao.findAll();}//根据部门号查询所有信息public Dept getAllMessage(Long id){return deptdao.findOne(id);//return deptdao.getOne(id);}//添加部门信息public void addDept(Dept dept) {deptdao.saveAndFlush(dept);}}

EmpService

package com.java.service;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.Page;import org.springframework.stereotype.Service;import com.java.dao.EmpDao;import com.java.model.Emp;@Servicepublic class EmpService {@Autowiredprivate EmpDao empdao;//查询所有员工信息public List<Emp> getAllEmp(){return empdao.findAll();}//模糊查询员工信息public List<Emp> getLikeEmp(String name){return  empdao.findByEnameLike(name);}//通过名字查询信息public List<Emp> getEmpByName(String name){return empdao.findByEname(name);}}
最后是,,,结果:









阅读全文
0 0
原创粉丝点击