搭建SSM框架的配置文件
pom.xml所需要的基本依赖和插件:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<!--逆向生成带分页的插件-->
<dependency>
<groupId>com.itfsw</groupId>
<artifactId>mybatis-generator-plugin</artifactId>
<version>1.0.5</version>
</dependency>
<!--2.Spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<!--3.SpringMvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<!--import org.junit.Test @Test-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--4.c3p0-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!--pojo转换成 json -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.3</version>
</dependency>
<!--servlet 2.5 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<!--此处的servlet仅在编译和测试的时候使用,运行的时候不使用,使用的是tomcat中的servlet-->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
插件:这里Tomcat做测试用,注意Tomcat中的servlet与依赖中的servlet的冲突,可以配置依赖servlet的scope,<scope>provided</scope>
插件中的 <pluginManagement>是插件管理,如果要运行Tomcat,需要注释掉这个插件管理
<plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><path>/</path><port>8080</port><uriEncoding>UTF-8</uriEncoding></configuration></plugin> 配置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" id="WebApp_ID" version="3.0"> <!--web.xml:优先加载springmvc、而后加载spring,spring中在加载mybatis--> <!--全局、监听、骑马、异步走、servlet优先补充维生素c--> <!--1、全局监听器--> <context-param> <!--1-1、配置spring核心配置文件,并关联监听器--> <!--contextConfigLocation是全局监听器的一个属性--> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/applicationContext.xml</param-value> </context-param> <!--1-2、设置监听器ContextLoaderListener,利用属性contextConfigLocation关联spring核心配置文件,并自动加载核心配置文件--> <listener> <!--上下文加载监听器--> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!--2、通过编码格式过滤器过滤,并设置post方法中的request请求中文乱码编码 拦截所有请求,request和response 设置编码编码格式拦截器的属性encoding,类似于给set方法赋值 再连接到编码格式拦截器 --> <filter> <!--2.1、这里对监听器拦截的事件进行关联。ec起关联作用--> <filter-name>ec</filter-name> <!--2.2、提前找到CharacterEncodingFilter编码格式拦截器类提前拦截--> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!--2-3、局部初始化参数,给CharacterEncodingFilter编码格式拦截器的encoding属性设置编码格式--> <init-param> <param-name>encoding</param-name> <param-value>Utf-8</param-value> </init-param> </filter> <!--2.4、对所有的请求进行拦截用/*--> <filter-mapping> <filter-name>ec</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--3、使用servlet配置mvc,这里是配置springmvc的参数--> <servlet> <servlet-name>ds</servlet-name> <!--DispatcherServlet是mvc核心处理servlet,所有的servlet都归结于此--> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!--contextConfigLocation是核心处理的servlet类的属性--> <param-name>contextConfigLocation</param-name> <!--mvc核心配置文件--> <param-value>classpath:mvc/MVC.xml</param-value> </init-param> <!--启动优先加载mvc,1为--> <load-on-startup>1</load-on-startup> </servlet> <!--拦截所有的servlet请求--> <servlet-mapping> <servlet-name>ds</servlet-name> <!--/表示拦截的是servlet请求,被/*包含了--> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> 配置springmvc的核心配置文件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--web.xml优先加载mvc(servlet层),在mvc核心配置文件中:启动注解:mvc特有的注解,开启mvc注解驱动,拼接jsp路径--> <!--1、手动开启controller层类特有的注解,利用包扫描的方式--> <context:component-scan base-package="com.controller"/> <!--2、开启SpringMVC特有的注解,包括方法和属性的注解--> <!--annotation-driven注释驱动--> <!--2-1、设置响应编码:string、json--> <mvc:annotation-driven> <!--2-1、converters转换器--> <mvc:message-converters> <!--string的http信息转换器:这里的源码编码格式为Charset.forName("ISO-8859-1"),覆盖它--> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <!--为bean的有参构造设置编码--> <constructor-arg value="UTF-8"></constructor-arg> </bean> <!--这里的MappingJackson2HttpMessageConverter源码中父类的编码格式为utf-8,不用在设置有参构造的编码--> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> </mvc:message-converters> </mvc:annotation-driven> <!--3、mvc默认的处理器:在web.xml中,配置mvc拦截servlet请求,并不能拦截jsp请求,如果拦截了静态资源的请求,就转交默认servlet 处理,如果不是静态请求,就转交dispatcherservlet核心servlet处理 --> <mvc:default-servlet-handler></mvc:default-servlet-handler> <!--4、视图解析器,在controller中进行页面跳转的时候没有请求和响应,只能通过return来返回一个字符换,他的文件前后缀名就在这里拼接好--> <!--内部的资源视图解析器:就是web-INF下的资源--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--前缀--> <property name="prefix" value="/WEB-INF/jsp/"></property> <!--后缀--> <property name="suffix" value=".jsp"></property> </bean> </beans> 配置spring核心配置文件:appliacationContext.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: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/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!--controller层有mvc来托管,dao由mybatis托管,剩下service层,spring除了托管service层还要托管mybatis的部分代码--> <!--1、开启service层的注解:这里通过包扫描的方式--> <context:component-scan base-package="com.service"/> <!--托管部分mybatis的代码--> <!--2、加载db.properties --> <context:property-placeholder location="classpath:properties/db.properties"/> <!--3、数据源:这里通过c3p0连接数据池--> <bean id="ds" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <!--4、开启事务管理:需要jdbc依赖--> <bean id="tx" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!--关联数据源--> <property name="dataSource" ref="ds"></property> </bean> <!--5、开启事物的注解:@Transactional--> <tx:annotation-driven transaction-manager="tx"/> <!--6、spring去托管mybatis部分代码--> <bean id="fb" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--加载数据源,关联数据源--> <property name="dataSource" ref="ds"></property> <!--加载mybatis核心配置文件--> <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/> <!--利用包扫描的方式加载映射文件--> <property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean> <!--7、上面加载映射文件的时候利用了包扫描,利用包扫描加载映射文件要将映射文件和接口类放在同一个文件夹下。 这里要做的就是关联接口和映射文件 MapperScannerConfigurer映射扫描配置--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--指定接口路径--> <property name="basePackage" value="com.mapper"/> <property name="sqlSessionFactoryBeanName" value="fb"/> </bean> </beans> mybatis核心配置文件:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!--spring托管了mybatis部分代码后,这里只需要配置预置输出和别名--> <!--1、预制输出--> <settings> <!-- 可以在控制台输出日志信息:sql语句和参数 --> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> <!-- 2.表示类型别名 --> <typeAliases> <!-- 2.1每一个类型的别名 type属性表示别名对应的类型地址 alias表示起的别名--> <typeAlias type="java.util.List" alias="list"/> <!--<typeAlias type="com.kgc.pojo.Emp" alias="emp"/>--> <!-- package表示包,利用包的形式进行扫描包之下的所有的类,别名就是当前类名 --> <package name="com.pojo"/> </typeAliases> </configuration>
db.properties:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/kgc1?zeroDateTimeBehavior=convertToNull
jdbc.username=root
jdbc.password=123456
mbg逆向生成配置文件:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><!-- 生成配置文件 --><generatorConfiguration> <context id="DB2Tables" targetRuntime="MyBatis3"> <!--<!–分页插件–>--> <plugin type="com.itfsw.mybatis.generator.plugins.LimitPlugin"/> <commentGenerator> <!-- 是否去除注释,true表示是,false否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!-- 1.连接数据库信息 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/kgc1?characterEncoding=UTF-8" userId="root" password="123456"> </jdbcConnection> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 2.pojo类的生成配置 targetPackage表示目标文件夹 targetProject表示当前目标文件夹所放置的目标地址 --> <javaModelGenerator targetPackage="com.pojo" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 3.sql映射文件生成配置 --> <sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 4.mapper接口配置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.mapper" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 5.数据库表和实体类映射 --> <table tableName="emp" domainObjectName="Emp"> </table> <table tableName="dept" domainObjectName="Dept"> </table> </context></generatorConfiguration> MbgTest逆向生成启动方法:import org.junit.Test;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback; import java.io.File;import java.util.ArrayList;import java.util.List; public class MbgTest { @Test public void create() throws Exception { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("mbg.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); }}
show.jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/6/24 0024
Time: 下午 7:25
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>数据展示页面</title>
<script src="/js/jquery-3.3.1.min.js"/>
</head>
<body>
<%--搜索框--%>
<form id="myForm" action="/emp/show" method="post" style="text-align: center">
姓名:<input type="text" name="name" value="${page.name}">
生日:<input type="date" name="startBirth" value="<fmt:formatDate value='${page.startBirth}' pattern='yyyy-MM-dd'/>" >-
<input type="date" name="endBirth" value="<fmt:formatDate value='${page.endBirth}' pattern='yyyy-MM-dd'/>" >
部门:<select name="deptId" >
<option value="0">--请选择--</option>
<c:forEach var="dept" items="${depts}">
<option value="${dept.did}"
<c:if test="${dept.did==page.deptId}">selected=true</c:if>
>${dept.dname}</option>
</c:forEach>
</select>
<input type="hidden" id="pageNum" name="currPage" value="1">
<input type="submit" value="搜索">
</form>
<%--数据展示页面--%>
<table border="1" cellpadding="10" cellspacing="1">
<tr>
<td>编号</td>
<td>姓名</td>
<td>年龄</td>
<td>性别</td>
<td>生日</td>
<td>津贴</td>
<td>工资</td>
<td>部门</td>
</tr>
<c:forEach var="emp" items="${list}">
<tr>
<td>${emp.id}</td>
<td>${emp.name}</td>
<td>${emp.age}</td>
<td>${emp.sex}</td>
<td>${emp.birth}</td>
<td>${emp.bonus}</td>
<td>${emp.salary}</td>
<td>${emp.deptid}</td>
</tr>
</c:forEach>
</table>
<%--分页区--%>
<table align="center" cellpadding="10" cellspacing="10" border="1">
<tr>
<td><a href="javascript:goPage(1)">首页</a></td>
<td><a href="javascript:goPage(${page.currPage-1})">上一页</a></td>
<c:forEach var="i" begin="1" end="${page.totalPage}">
<td><a href="javascript:goPage(${i})">${i}</a></td>
</c:forEach>
<td><a href="javascript:goPage(${page.currPage+1})">下一页</a></td>
<td><a href="javascript:toPage()">跳转</a>到第<input size="2" type="text" value="${page.currPage}" id="go">页</td>
<td><a href="javascript:goPage(${page.totalPage})">尾页</a></td>
</tr>
</table>
</body>
<!--js部分-->
<script>
function goPage(page) {
var total=${page.totalPage};
if(page>total){
page=total;
}
if(page<1){
page=1;
}
$("#pageNum").val(page);
$("#myForm").submit()
}
function toPage() {
var page=$("#go").val();
goPage(page)
}
</script>
</html>
add.jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/6/25 0025
Time: 上午 10:35
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="/emp/add2" method="post">
姓名:<input type="text" name="name"/> <br>
年龄:<input type="text" name="age"/><br>
性别:<input type="text" name="sex"/><br>
生日:<input type="date" name="birth"/><br>
津贴:<input type="text" name="bonus"/><br>
工资:<input type="text" name="salary"/><br>
部门:<select name="deptid">
<c:forEach var="dept" items="${depts}">
<option value="${dept.did}">${dept.dname}</option>
</c:forEach>
</select><br>
<input type="submit" value="提交">
</form>
</body>
</html>
update.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="/emp/update2" method="post">
<input type="hidden" name="id" value="${emp.id}">
姓名:<input type="text" name="name" value="${emp.name}"/> <br>
年龄:<input type="text" name="age" value="${emp.age}"/><br>
性别:<input type="text" name="sex" value="${emp.sex}"/><br>
生日:<input type="date" name="birth"
value="<fmt:formatDate value='${emp.birth}' pattern='yyyy-MM-dd'/>" /><br>
津贴:<input type="text" name="bonus" value="${emp.bonus}"/><br>
工资:<input type="text" name="salary" value="${emp.salary}"/><br>
部门:<select name="deptid">
<c:forEach var="dept" items="${depts}">
<option value="${dept.did}" <c:if test="${dept.did==emp.deptid}" >selected='true'</c:if> >
${dept.dname}
</option>
</c:forEach>
</select><br>
<input type="submit" value="提交">
</form>
</body>
</html>
service层:
import com.mapper.DeptMapper;
import com.mapper.EmpMapper;
import com.pojo.Dept;
import com.pojo.Emp;
import com.pojo.EmpExample;
import com.pojo.PageBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class EmpServiceImpl implements IEmpService {
@Autowired
private DeptMapper deptMapper;
@Autowired
private EmpMapper empMapper;
@Override
public List<Dept> selectDept() {
return null;
}
@Override//分页查询所有员工
public List<Emp> selectAll(PageBean page) {
//1.条件 name startBirth endBirth deptId
EmpExample e = new EmpExample();
//条件拼接
EmpExample.Criteria c = e.createCriteria();
if(page.getName()!=null){
c.andNameLike("%"+page.getName()+"%");
}
if(page.getStartbirth()!=null){
c.andBirthGreaterThanOrEqualTo(page.getStartbirth());
}
if(page.getEndBirth()!=null){
c.andBirthLessThanOrEqualTo(page.getEndBirth());
}
if(page.getDeptid()!=null&&page.getDeptid()!=0){
c.andDeptidEqualTo(page.getDeptid());
}
//分页
//查询总记录数
int count = (int) empMapper.countByExample(e);
int size = page.getSize();
int totalPage=(count%size==0)?(count/size):(count/size+1);
page.setCount(count);
page.setTotalPage(totalPage);
int startRow=(page.getCurrPage()-1)*size;
e.limit(startRow,size);
List<Emp> list = empMapper.selectByExample(e);
for(Emp emp:list){
Dept dept = deptMapper.selectByPrimaryKey(emp.getDeptid());
emp.setDept(dept);
}
return list;
}
@Override//查询所有的部门
public List<Dept> selectDepts() {
return deptMapper.selectByExample(null);
}
@Override
public int deleteById(int id) {
return empMapper.deleteByPrimaryKey(id);
}
@Override
public int addEmp(Emp emp) {
return empMapper.insertSelective(emp);
}
@Override
public Emp selectById(int id) {
return empMapper.selectByPrimaryKey(id);
}
@Override
public int updateEmp(Emp emp) {
return empMapper.updateByPrimaryKeySelective(emp);
}
}
pagebean:
public class PageBean {
//分页四大参数
private Integer currPage=1;
private Integer size=3;
private Integer count;
private Integer totalPage;
//搜索框查询条件
private Integer deptid;
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
private Date Startbirth;
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
private Date EndBirth;
private String name;
controller:
import com.pojo.Dept;
import com.pojo.Emp;
import com.pojo.PageBean;
import com.service.IEmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@Controller
@RequestMapping("/emp")
public class EmpController {
@Autowired
private IEmpService service;
//新增页面跳转
@RequestMapping("/add1")
public String add1(Model m){
//查询所有的部门--中下拉框展示所有的部门
List<Dept> depts=service.selectDepts();
m.addAttribute("depts",depts);
return "add";
}
//实现新增
@RequestMapping("/add2")
public String add2(Emp emp){
int i=service.addEmp(emp);
return "redirect:/emp/show";//去show方法 重查
}
//1.查询单条 2.页面跳转
@RequestMapping("/update1/{id}")
public String update1(@PathVariable String id, Model m){
Emp e=service.selectById(Integer.parseInt(id));
m.addAttribute("emp",e);
//查询所有的部门--中下拉框展示所有的部门
List<Dept> depts=service.selectDepts();
m.addAttribute("depts",depts);
return "update";//转发到update.jsp
}
//执行修改
@RequestMapping("/update2")
public String update2(Emp emp){
int i=service.updateEmp(emp);
return "redirect:/emp/show";//去show方法 重查
}
@RequestMapping("/deleteById/{id}")
public String deleteById(@PathVariable String id){
int i=service.deleteById(Integer.parseInt(id));
//删除后重查数据库
return "redirect:/emp/show";//去show方法 重查
}
//取调存转
@RequestMapping("/show")
public ModelAndView show(PageBean page, ModelAndView mvc){
//查询所有部门下拉框展示
List<Dept> depts=service.selectDept();
//模糊分页查询
List<Emp> list=service.selectAll(page);
//存
mvc.addObject("depts",depts);
mvc.addObject("list",list);
mvc.addObject("page",page);
//转-页面跳转
mvc.setViewName("show");
return mvc;
}
}
转载于:https://www.cnblogs.com/xiaoshenke/p/11110774.html
搭建SSM框架的配置文件相关推荐
- 使用maven搭建ssm框架的javaweb项目
目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...
- eclipse + maven搭建SSM框架
eclipse + maven搭建SSM框架 0.系统环境 1)Windows 10 企业版 2)JDK 1.8.0_131 3)Eclipse Java EE IDE for Web Develop ...
- MyEclipse使用Maven创建web项目+搭建SSM框架教程
MyEclipse使用Maven创建web项目+搭建SSM框架教程 博文中的代码:链接:http://pan.baidu.com/s/1o8tqIMI 密码:m3si 安装maven和配置 1.下载m ...
- 使用idea搭建SSM框架,并成功运行。
1.搭建环境 1. 前4步跟搭建Spring项目环境是一样的,请参考本人博客的Spring框架学习01. 2.在pom.xml中引入相关依赖 相关测试依赖 <dependency>< ...
- 使用idea搭建ssm框架,并实现简单的CRUD和分页查询功能
1.使用idea搭建ssm框架步骤,请参考本人博客 2.项目搭建好,创建以下目录 3.在pom.xml文件中引入依赖 <?xml version="1.0" encoding ...
- Eclipse中使用Maven搭建SSM框架
Eclipse中不使用Maven搭建SSM框架:https://www.cnblogs.com/xuyiqing/p/9569459.html IDEA中使用Maven搭建SSM框架:https:// ...
- SpringBoot搭建SSM框架项目,支持JSP页面
以下就是SpringBoot搭建SSM框架项目,集成使用jsp(超详细)的全部内容. 看完如果对你有帮助,感谢点赞支持! 文章目录 1.创建项目,选择Spring Initializr创建一个Spri ...
- SSM框架整合配置文件
SSM框架整合配置文件 SSM框架整合的各个基本配置文件的模板,学习狂神SSM视频总结的配置笔记,方便以后SSM项目的搭建复用. 1. 项目的整体结构 2 基本环境配置 2.1 相关的Maven依赖: ...
- ssm框架 html搭建,搭建SSM框架
根据上篇文章搭建好开发环境后,就可以着手搭建SSM框架的开发架构了 1.打开eclipse 2.新建动态web项目 3.在项目的WebContent目录下的WEB-INF目录下的lib目录下复制所需的 ...
最新文章
- MindSpore特性支持类
- CVPR2020论文点评: AdderNet(加法网络)
- 深度学习之误差反向传播法
- 线结构光平面标定矩阵变换算子
- IE 下 href 的 BUG
- Silverlight 2.0学习笔记——XAML
- MyEclipse安装后需要进行的配置
- question regarding UI configuration type
- Docker和宿主机操作系统文件目录互相隔离的实现原理
- 【ArcGIS遇上Python】从入门到精通系列之第一章:ArcGIS Python简介
- 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(5)--(P4P的解析解)
- Android:adb进程问题
- css3 -- 过渡与动画
- 简单个人网页设计作业 静态HTML个人博客主页 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页设计作业
- Calib 工具说明
- osgearth各版本源码下载
- web字体文件过大优化方案
- 计算机控制原理 实验,计算机控制原理实验-直流电机实验.doc
- 什么是二维条码与及特点
- 苹果手机配什么无线蓝牙耳机好?适配苹果手机的蓝牙耳机推荐
热门文章
- linux read函数_浅谈Linux内核IO体系之磁盘IO
- python sftp连接_python 进行ftp服务器和sftp服务器连接
- java集合迭代器_java集合迭代器
- mysql空间数据类型的使用_MYSQL 空间数据类型用法
- 2020年面向前端开发人员的10个最佳CSS框架
- 24岁大专非科班转行前端开发可行性有多少?
- 汇编语言:程序如下,编写code段中的代码,将a段和b段中的数据一次相加,结果放到c段中
- python 线性回归 约束_PyTorch线性回归和逻辑回归实战示例
- 网站二次开发如何防止别人打包源码_企业网站制作前需注意的几个事项
- ffmpeg源码分析_ffmpeg音视频同步的几种策略