SpringMvc学习-增删改查
本节主要介绍SpringMVC简单的增删改查功能。
1.查询
dao中的代码
public List<WeatherPojo> getAllWeather(){
String sql="select * from weathertest";
List<WeatherPojo> pojos=new ArrayList<WeatherPojo>();
pojos= jdbcTemplate.query(sql,new RowMapper() {
@Override
public Object mapRow(ResultSet rs, int arg1) throws SQLException {
// TODO Auto-generated method stub
WeatherPojo weather=new WeatherPojo();
weather.setName(rs.getString("name"));
weather.setPassword(rs.getString("password"));
weather.setId(rs.getInt("id"));
return weather;
}
});
return pojos;
}
查询
同事,还可以写service和serviceimpl。需要对jdmctempl添加注解
@Autowired
private JdbcTemplate jdbcTemplate;
在impl中需要对dao添加注解
@Autowired
private WeatherDao weatherDao;
在controller中调用服务
@Autowired
private WeatherServiceImpl weatherService;
@RequestMapping(params="method=query")
public ModelAndView getAllWeather(HttpServletRequest request,HttpServletResponse response){
List<WeatherPojo> pojos=weatherService.getWeatherList();
request.setAttribute("weathers", pojos);
System.out.println(pojos.get(0).getName());
return new ModelAndView("weatherlist");
}
通过modelandview返回页面,页面代码如下:
<%@ page language="java" contentType="text/html; charset=utf-8"
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+"/";
%>
<!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>
<div><a href="<%=basePath %>weather.do?method=add">添加</a></div>
<div>
<table>
<thead>
<tr>
<th>姓名</th>
<th>说明</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach var="item" items="${weathers}">
<tr>
<td>${item.name }</td>
<td>${item.password }</td>
<td></td>
<td><a href="<%=basePath %>weather.do?method=edit&id=${item.id}">编辑</a><a href="<%=basePath %>weather.do?method=delete&id=${item.id}">删除</a></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</body>
</html>
list
2.增加
dao中代码
public void addWeather(WeatherPojo weather){
String sql="insert into weathertest(id,name,password) values("+weather.getId()+",'"+weather.getName()+"','"+weather.getPassword()+"')";
jdbcTemplate.execute(sql);
}
controller代码,get方法是进入新增页面,页面传递空对象。post方法为添加新的记录
@RequestMapping(params="method=add",method=RequestMethod.GET)
public ModelAndView addWeather(HttpServletRequest request,HttpServletResponse reponse){ request.setAttribute("weather", new WeatherPojo());
return new ModelAndView("weatheradd");
}
@RequestMapping(params="method=add",method=RequestMethod.POST)
public ModelAndView addWeather(WeatherPojo weather){ weatherService.addWeather(weather);
return new ModelAndView("redirect:/weather.do?method=query");
}
jsp页面代码
<%@ page language="java" contentType="text/html; charset=utf-8"
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" "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="<%=basePath%>weather.do?method=add" method="post">
<label for="id">id</label>
<input name="id"/><br>
<label for="name">name</label>
<input name="name"><br>
<label for="password">password</label>
<input name="password"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
3.修改
dao中代码:
public void editWeather(WeatherPojo weather){
String sql="update weathertest set name='"+weather.getName()+"',password='"+weather.getPassword()+"' where id="+weather.getId()+"";
jdbcTemplate.execute(sql);
}
controller代码
@RequestMapping(params="method=edit",method=RequestMethod.GET)
public ModelAndView editWeather(HttpServletRequest request,HttpServletResponse response){ int id=Integer.valueOf(request.getParameter("id"));
WeatherPojo weather=new WeatherPojo();
weather=weatherService.getWeatherById(id);
ModelAndView mav=new ModelAndView("editweather");
request.setAttribute("weather", weather);
System.out.println("--------"+weather.getId());
System.out.println("--------"+weather.getName());
System.out.println("--------"+weather.getPassword());
return mav;
}
@RequestMapping(params="method=edit",method=RequestMethod.POST)
public ModelAndView editWeather(WeatherPojo weather){
weatherService.editWeather(weather);
return new ModelAndView("redirect:/weather.do?method=query");
}
jsp页面:
<%@ page language="java" contentType="text/html; charset=utf-8"
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" "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="<%=basePath%>weather.do?method=edit" method="post">
<label for="id">id</label>
<input name="id" readonly="true" value="${weather.id }"/><br>
<label for="name">name</label>
<input name="name" value="${weather.name }"><br>
<label for="password" >password</label>
<input name="password" value="${weather.password }"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
4.删除
dao中代码:
//delete
public void deleteWeather(int id){ String sql="delete from weathertest where id="+id;
jdbcTemplate.execute(sql);
}
controller代码:
@RequestMapping(params="method=delete",method=RequestMethod.GET)
public ModelAndView deleteWeather(HttpServletRequest request,HttpServletResponse response){
int id=Integer.valueOf(request.getParameter("id"));
weatherService.deleteWeather(id);
//页面重定向
return new ModelAndView("redirect:/weather.do?method=query");
}
jsp代码:
<%@ page language="java" contentType="text/html; charset=utf-8"
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+"/";
%>
<!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>
<div><a href="<%=basePath %>weather.do?method=add">添加</a></div>
<div>
<table>
<thead>
<tr>
<th>姓名</th>
<th>说明</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach var="item" items="${weathers}">
<tr>
<td>${item.name }</td>
<td>${item.password }</td>
<td></td>
<td><a href="<%=basePath %>weather.do?method=edit&id=${item.id}">编辑</a><a href="<%=basePath %>weather.do?method=delete&id=${item.id}">删除</a></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</body>
</html>
SpringMvc学习-增删改查的更多相关文章
- springMVC实现增删改查
首先需要准备好一张数据库表我这里用emp这张表:具体代码: /* SQLyog 企业版 - MySQL GUI v8.14 MySQL - 5.1.73-community ************* ...
- Oracle的登陆问题和初级学习增删改查(省略安装和卸载)
1:学习Oracle首先需要安装Oracle,网上已经有很多很多教程了,这里不做叙述,自己百度即可,这里安装的标准版,个人根据需求安装学习或者企业开发即可.如果安装出错,自己百度Oracle的卸载即可 ...
- springMVC之增删改查
一.核心原理 1. 用于发送请求给server: /home.htm 2. 请求被DispatchServlet拦截到 3. DispatchServlet通过HandleMapping检查url有没 ...
- 基于SpringMVC的增删改查
废话不多说,直接开始步骤! 1.创建一个Dynamic Web Project 2.在WEB-INF包下的lib文件夹中引入相关jar commons-logging-.jar jstl.jar sp ...
- 【SpringBoot】11-1.Springboot整合Springmvc+Mybatis增删改查操作(下)
整合过程:https://www.isdxh.com/68.html 一.增--增加用户 1.创建实体类 package com.dxh.pojo; public class Users { priv ...
- 总结day5 ---- ,字典的学习,增删改查,以及字典的嵌套, 赋值运算
内容大纲: 一:字典的定义 二:字典的增加 >1:按照key增加, 无则增加,有则覆盖 >2:setdefault() ,无则增加,有则不变 三:字典的删除 >1:pop() ...
- SpringMVC之简单的增删改查示例(SSM整合)
本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...
- 基于springmvc、ajax,后台连接数据库的增删改查
前言 前段时间在博客园上找了一个springmvc的例子,照着学了一下,算是对springmvc有了一个初步的了解,打一个基础,下面是链接.(我只看了博客,视频太耗时间了) 博客链接:http://w ...
- idea+spring4+springmvc+mybatis+maven实现简单增删改查CRUD
在学习spring4+springmvc+mybatis的ssm框架,idea整合简单实现增删改查功能,在这里记录一下. 原文在这里:https://my.oschina.net/finchxu/bl ...
随机推荐
- gitolite随记
1.git clone源码 git clone git://github.com/sitaramc/gitolite 2.安装 gitolite/install -ln 3.建立git仓库 gitol ...
- 医院设置 codevs 2577
Floyd+二叉树 #include<iostream>#include<cstdlib>#include<cstdio>#include<cstring&g ...
- POJ1459 最大网络流
问题: POJ1459 涉及内容:最大网络流 分析: 本题问题看似非常复杂,实际上可以转化为单源点单汇点的最大网络流问题. 1)因为电量只在发电站产生,故增加源点S,构建从S到每个发电站的有向边,边的 ...
- python time模块函数
# -*-coding=utf-8 -*- __author__ = 'piay' import time def get_struct_time(): ''' 可以使用list或者字符串格式化 tm ...
- 列表:一个打了激素的数组3 - 零基础入门学习Python012
列表:一个打了激素的数组3 让编程改变世界 Change the world by program 列表的一些常用操作符 比较操作符 逻辑操作符 连接操作符 重复操作符 成员关系操作符 ...... ...
- IOS 推送原理
最近两天在研究ios的消息推送机制.研究这个东西,还是充满兴趣的. Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章 ...
- IOS 面试 --- 动画 block
1 谈谈对Block 的理解?并写出一个使用Block执行UIVew动画? 答案:Block是可以获取其他函数局部变量的匿名函数,其不但方便开发,并且可以大幅提高应用的执行效率(多核心CPU可直接处理 ...
- ORA-19502: write error on file "", blockno (blocksize=)/linux下磁盘空间满了解决办法--Virtualbox
今天,在测试环境启动数据库时,报错: SQL> startup; ORACLE instance started. Total System Global Area 285212672 byt ...
- position: absolute;绝对定位水平居中问题
position: absolute;绝对定位水平居中问题 用CSS让元素居中显示并不是件很简单的事情—同样的合法CSS居中设置在不同浏览器中的表现行为却各有千秋.让我们先来看一下CSS中常见的几种让 ...
- UVa 1449 - Dominating Patterns (AC自动机)
题目大意:给出多个字符串模板,并给出一个文本串,求在文本串中出现最多的模板,输出最多的次数并输出该模板(若有多个满足,则按输入顺序输出). 思路:赤裸裸的 AC自动机,上模板. 代码: #includ ...