基于SpringMVC+SpringJDBC的用户管理系统(增删查改)
鉴于MyBatis暂时不会用,所以用刚学的SpringJDBC代替,也很简洁。以下贴出几个重要的代码。
1.UserDaoImpl数据库操作实现类
package com.wxy.dao.impl; import com.wxy.pojo.User;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; @Repository("userDao")
public class UserDaoImpl{
//获取JdbcTemplate实例
@Resource(name="jdbcTemplate")
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
//执行SQL语句的方法
public void execute() {
jdbcTemplate.execute("create table account8( id int primary key auto_increment,"
+ "username varchar(50)," + "balance double)");
}
//添加用户 public void addUser(User user) {
String sql = "insert into user(id,name,age) value("+user.getId()+",'"+user.getName()+"',"+user.getAge()+")";
this.jdbcTemplate.update(sql);
}
//更新用户信息
public void updateUser(User user){
String sql = "update user set name='"+user.getName()+"',age="+user.getAge()+" where id="+user.getId()+"";
this.jdbcTemplate.update(sql);
}
//删除用户
public void deleteUser(int id) {
String sql = "delete from user where id =?";
jdbcTemplate.update(sql,id);
}
//查询所有用户
public List<User> query() {
String listSql = "select * from user";
RowMapper<User> rowMapper = new BeanPropertyRowMapper<User>(User.class);
List<User> users = this.jdbcTemplate.query(listSql,rowMapper);
return users;
}
}
UserDaoImpl
2.UserController数据绑定和页面跳转
package com.wxy.controller; import com.wxy.dao.impl.ServiceImpl;
import com.wxy.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List; @Controller("userController")
public class UserController {
@Resource(name="userService")
ServiceImpl userService;
public void setUserService(ServiceImpl userService) {
this.userService = userService;
} //跳转添加页面
@RequestMapping("touseradd")
public String useradd(){ return "useradd"; } //执行添加操作,并跳转至成功页面
@RequestMapping("/useradd.action")
public String add(Model model, User user){
userService.addUser(user);
return "success";
} //跳转至修改页面
@RequestMapping("/touserupdate")
public String userupdate(){ return "userupdate"; } //执行修改操作
@RequestMapping("/userupdate.action")
public String update(User user){
userService.updateUser(user);
return "success";
} //跳转至查询页面
@RequestMapping("/touserlist")
public String userselect(){ return "userlist"; } //执行查询操作
@RequestMapping("/userselect.action")
public String query(HttpServletRequest request, HttpServletResponse response) {
List looklist = userService.query();
request.setAttribute("looklist", looklist);
return "forward:touserlist";
} //执行删除操作
@RequestMapping("/delete.action")
public String delete(int id){
userService.deleteUser(id);
return "forward:userselect.action";
}
}
UserController
3.userlist.jsp显示用户信息
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<table align="center" border=2>
<tr bgcolor="#eeee99">
<td>序号</td>
<td>Id</td>
<td>Name</td>
<td>Age</td>
<td>选择</td>
<td>操作</td>
</tr>
<c:set var="j" value="1"></c:set>
<c:forEach var="lists" items="${requestScope.looklist }">
<tr>
<td>${j }</td>
<td>${lists.id }</td>
<td>${lists.name }</td>
<td>${lists.age}</td>
<td><a href="${pageContext.request.contextPath}/touserupdate?id=${lists.id}">修改</a></td>
<td><a href="${pageContext.request.contextPath}/delete.action?id=${lists.id}">删除</a></td>
</tr>
<c:set var="j" value="${j+1 }"></c:set>
</c:forEach>
</table>
<br>
<center>
<form action="${pageContext.request.contextPath }/userselect.action">
<input type="submit" value="刷新">
</form>
<form action="${pageContext.request.contextPath }/touseradd">
<input type="submit" value="返回添加">
</form>
</center>
</body>
</html>
userlist.jsp
4.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: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-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--<mvc:annotation-driven/>-->
<context:annotation-config/>
<!--配置数据源-->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/springjdbc"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<!--配置JDBC模板-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
<!--配置注入类-->
<bean id="userDao" class="com.wxy.dao.impl.UserDaoImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
<bean id="userService" class="com.wxy.dao.impl.ServiceImpl">
<property name="userDao" ref="userDao"/>
</bean>
<bean id="userController" class="com.wxy.controller.UserController">
<property name="userService" ref="userService"></property>
</bean>
<!-- 指定需要扫描的包 -->
<context:component-scan base-package="com.wxy.controller"></context:component-scan>
<context:component-scan base-package="com.wxy.dao.impl"></context:component-scan>
<!-- 定义视图解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 设置前缀 -->
<property name="prefix" value="/jsp/"></property>
<!-- 设置后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
springmvc-servlet.xml
配置方式XML和注解选用一种即可。
基于SpringMVC+SpringJDBC的用户管理系统(增删查改)的更多相关文章
- myBatis 实现用户表增删查改操作<方法1 没有使用接口的>(最终版)
在UserMapper.xml中添加增删改查 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYP ...
- myBatis 实现用户表增删查改操作<方法2 加入接口>(最终版)
这2种方法的区别:1.添加接口 2.运用接口来实现 其他的都一样 添加接口 //接口的名字和xml的名字一样,这样xml中的namespace就不用改 public interface UserMap ...
- node.js+express+mongoose实现用户增删查改案例
node.js+express+mongodb对用户进行增删查改 一.用到的相关技术 使用 Node.js 的 express 框架搭建web服务 使用 express 中间件 body-parse ...
- 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
- JAVA原生mvc实现用户信息的增删查改
笔者最近学完jsp和servlet,于是心血来潮的打算写个简单的用户案例 环境准备: 开发工具eclipse jdk-1.8.0_72 tomcat-9.0.5 前端部分: 1.自己手写了一套样式 2 ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- Sql Server的艺术(一) 视图的增删查改
视图是从一个或者多个表中查询数据的另一种方式.利用视图可以集中.简化定制数据库,同时还能保障安全. 视图其结构和数据是建立在对应的查询基础上的.和表一样,视图也是包括几个被定义的数据列和多个数据行,但 ...
- java实现简单的数据库的增删查改,并布局交互界面
一.系统简介 1.1.简介 本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...
- PHP与MYSQL结合操作——文章发布系统小项目(实现基本增删查改操作)
php和mysql在一起几十年了,也是一对老夫老妻了,最近正在对他们的爱情故事进行探讨,并做了一个很简单的小东西——文章发布系统,目的是为了实现mysql对文章的基本增删查改操作 前台展示系统有:文章 ...
随机推荐
- Blender之UILayout
目标 [x] 总结Blender面板布局 总结 Blender面板中界面组件是通过UILayout进行组织的. 其主要属性如下: row() 定义横向子布局. column() 定义竖向子布局. sp ...
- POJ 2286 The Rotation Game IDA*
(再一次感谢学长幻灯片) ID A* 随便自己yy了一下. 额嗯 思路什么的都没有问题 就是改不对.. 无奈地删代码...边删边交. 删啊删 哎呦 AC了 ... ... ... 找删的那一段 . o ...
- Oracle11g聚合函数
聚合函数就是基于多行数据返回一行结果,下面就是Oracle提供的一些列聚合函数: AVG COLLECT CORR CORR_* COUNT COVAR_POP COVAR_SAMP CUME_DIS ...
- Run as ant build每次都执行两次
因为用了selenium+testng+ant的框架,所以每次执行自动化,我就run as ant build.发现测试每次都执行两次,很奇怪.因为也没有影响到测试结果,所以一开始也就let it g ...
- 数据库操作通用函数,增强可重复利用性能C#,asp.net.sql2005
using System;using System.Data;using System.Data.SqlClient; namespace com.hua..li{ /// <summary&g ...
- js通过插件发送邮件
这个插件为SmtpJS 官网地址为 https://www.smtpjs.com/ 方法很简单 <script src="https://smtpjs.com/v2/smtp.js& ...
- C++ (带有默认参数的函数参数)缺省函数参数
缺省参数?在C++中,允许实参的个数与形参的个数不同.在声明函数原型时,为一个或者多个形参指定默认值,以后调用这个函数时,若省略某一个实参,c++则自动的以默认值作为相应参数的值. 实列说明:#inc ...
- revit二次开发之族的类型参数与实例参数的转换
1背景小伙伴在做revit二次开发的时候,可能需要在族环境中将族的类型参数与实例参数相互转换. 2思路1.使用族管理器FamilyManager,参见注释12.首先获取需要转换的参数(单个与批量),参 ...
- ListUtil集合操作常用方法类
* 集合操作常用方法类. * <p> * * @author 柯 */ public class ListUtil { /** * 判断List不为空,非空返回true,空则返回false ...
- 【剑指Offer】13、调整数组顺序使奇数位于偶数前面
题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 解题思 ...