用户增删改查

先导入jar包:

编写User实体类:

public class User {private Integer id;private String name;private String sex;private Integer age;private String address;@Overridepublic String toString() {return "\nUser{" +"id=" + id +", name='" + name + '\'' +", sex=" + sex +", age=" + age +", address='" + address + '\'' +'}';}
//省略get set 构造方法

编写DAO接口:

public interface UserMapper {//查询所有用户public List<User> list();//添加用户int addUser(User user);//根据Id查询指定用户User getUserById(int id);//更改用户int updateUser(User user);//删除用户int delUser(Integer id);
}

编写SQL映射文件:
命名空间必须为接口完全限定类名,id值必须与接口方法名一致,

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.user.dao.UserMapper"><resultMap id="BaseresultMap" type="user"><id property="id" column="id"/><result property="name" column="name"/><result property="age" column="age"/><result property="sex" column="sex"/><result property="address" column="address"/></resultMap><select id="list" resultMap="BaseresultMap">select * from user</select><insert id="addUser" parameterType="user">insert into user(name,sex,age,address) values (#{name},#{sex},#{age},#{address})</insert><select id="getUserById" parameterType="int" resultMap="BaseresultMap">select * from user where id=#{id}</select><update id="updateUser" parameterType="user">update user set name=#{name},sex=#{sex},age=#{age},address=#{address} where id=#{id}</update><delete id="delUser" parameterType="int">delete from user where id=#{id}</delete>
</mapper>

编写MyBatis配置文件:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--设置别名-->
<typeAliases><package name="cn.user.pojo"/>
</typeAliases><mappers><!--加载SQL映射文件--><mapper resource="cn/user/dao/mapper/UserMapper.xml"/>
</mappers>
</configuration>

编写Service业务层:
UserService及实现类:


public interface UserService {public List<User> list();//查询int addUser(User user);//添加User getUserById(int id);//根据id查询int updateUser(User user);修改int delUser(Integer id);//删除
}

实现类:别忘了给类加注解,交给Spring容器管理

@Service("userService")
@Transactional
public class UserServiceImpl implements UserService {//注解方式为mapper赋值@Resource(name = "userMapper")private UserMapper mapper;@Overridepublic List<User> list() {return mapper.list();}@Overridepublic int addUser(User user) {return mapper.addUser(user);}@Overridepublic User getUserById(int id) {return mapper.getUserById(id);}@Overridepublic int updateUser(User user) {return mapper.updateUser(user);}@Overridepublic int delUser(Integer id) {return mapper.delUser(id);}
}

编写Spring配置文件:

<?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/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"><!--开启组件扫描--><context:component-scan base-package="cn.user.dao,cn.user.service"/><!--配置数据源--><context:property-placeholder location="classpath:database.properties"/><bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource"><property name="driverClassName" value="${db.driver}"/><property name="url" value="${db.url}"/><property name="username" value="${db.username}"/><property name="password" value="${db.password}"/></bean><!--配置SqlSessionFactoryBean--><bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory"><property name="configLocation" value="classpath:mybatis-config.xml"/><property name="dataSource" ref="dataSource"/></bean><!--扫描dao接口自动生成实现类--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><property name="basePackage" value="cn.user.dao"/></bean><!--配置事务处理对象--><bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager"><property name="dataSource" ref="dataSource"/></bean><!--注解方式开启事务管理--><mvc:annotation-driven transaction-manager="transactionManager"/>
</beans>

编写Controller控制器类:同样别忘了加注解。

@Controller
@RequestMapping("/user")
public class UserController {@Resource(name = "userService")//注解方法注入UserService实现类private UserService userService;@RequestMapping("/list")public String listUser(Model model){List<User> list = userService.list();model.addAttribute("users",list);return "main";}@GetMapping("/add")public String toAdd(@ModelAttribute("user") User user){return "add";}@PostMapping("/add")public void add(User user, HttpServletResponse response) throws IOException {int re = userService.addUser(user);response.getWriter().print(re);}@GetMapping("/update/{id}")public String toUpdate(@PathVariable("id") int id,Model model){User user = userService.getUserById(id);model.addAttribute("user",user);return "update";}@PostMapping("/update")public void update(User user, HttpServletResponse response) throws IOException {int re = userService.updateUser(user);response.getWriter().print(re);}//删除@GetMapping("/del/{id}")public String del(@PathVariable("id") Integer id){int re = userService.delUser(id);return "redirect:/user/list";}
}

编写SpringMVC配置文件:

<?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/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--开启组件扫描扫描controller包--><context:component-scan base-package="cn.user.controller"/><!--开启映射注解--><mvc:annotation-driven/><!--定义视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!--加载nvc配置文件时一同加载spring的配置文件--><import resource="classpath:application.xml"/>
</beans>

在web.xml中定义前端控制器,以及乱码处理等。。。。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.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>classpath:springmvc.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><!--处理中文乱码--><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></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--静态资源处理--><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.js</url-pattern><url-pattern>*.html</url-pattern><url-pattern>*.jpg</url-pattern><url-pattern>*.png</url-pattern><url-pattern>*.css</url-pattern></servlet-mapping>
</web-app>

编写页面开始测试:
main.jsp页面:查询所有用户

<head><title>所有用户</title><script type="text/javascript" src="${pageContext.servletContext.contextPath}/static/js/jquery-1.12.4.js"></script>
</head>
<body>
<a href="${pageContext.servletContext.contextPath}/user/add">添加用户</a>
<table border="1px" width="700px"><tr><td>序号</td><td>姓名</td><td>性别</td><td>年龄</td><td>地址</td><td>操作</td></tr><c:forEach items="${requestScope.users}" varStatus="i" var="user"><tr><td>${i.count}</td><td>${user.name}</td><td>${user.sex}</td><td>${user.age}</td><td>${user.address}</td><%--REST风格从页面到controller传递数据--%><td><a href="${pageContext.servletContext.contextPath}/user/update/${user.id}">修改</a><a href="${pageContext.servletContext.contextPath}/user/del/${user.id}">删除</a></td></tr></c:forEach>
</table>
</body>
</html>

点击添加进入到user/add方法Get请求:

  @GetMapping("/add")public String toAdd(@ModelAttribute("user") User user){return "add";}

准备好user对象跳转到add.jsp添加页面:

<html>
<head><title>添加用户</title><script type="text/javascript" src="${pageContext.servletContext.contextPath}/static/js/jquery-1.12.4.js"></script>
</head>
<body><fm:form id="addfrom" modelAttribute="user">姓名:<fm:input path="name"/><br>性别:<fm:radiobutton path="sex" value="男" checked="checked"/>男<fm:radiobutton path="sex" value="女"/>女<br>年龄:<fm:input path="age"/><br>地址:<fm:input path="address"/><br><input type="button" value="添加" id="tianjia"></fm:form><script type="text/javascript">$(function () {$("#tianjia").click(function () {/*序列化表单中的数据*/var input = $("#addfrom").serialize();$.post("${pageContext.servletContext.contextPath}/user/add",input,function (data) {if (data!=-1){alert("添加成功");window.location.href="${pageContext.servletContext.contextPath}/user/list";}else{alert("添加失败");}});});});</script>
</body>
</html>

异步方式添加用户,点击添加按钮跳转到user/add方法Post请求方式:然后返回结果data,添加成功跳转到user/list方法,然后在跳转到main.jsp页面

 @PostMapping("/add")public void add(User user, HttpServletResponse response) throws IOException {int re = userService.addUser(user);//返回执行结果response.getWriter().print(re);}

点击修改超链接传入当前用户ID跳转到user/update方法Get请求:

@GetMapping("/update/{id}")public String toUpdate(@PathVariable("id") int id,Model model){//根据id查出要修改的用户对象User user = userService.getUserById(id);把用户存入model中在jsp页面中显示model.addAttribute("user",user);//跳转到update.jsp页面return "update";}

update.jsp页面:异步方式修改用户信息

<html>
<head><title>修改用户</title><script type="text/javascript" src="${pageContext.servletContext.contextPath}/static/js/jquery-1.12.4.js"></script>
</head>
<body><fm:form id="updatefrom" modelAttribute="user"><fm:hidden path="id"/>姓名:<fm:input path="name"/><br>性别:<fm:radiobutton path="sex" value="男" checked="checked"/>男<fm:radiobutton path="sex" value="女"/>女<br>年龄:<fm:input path="age"/><br>地址:<fm:input path="address"/><br><input type="button" value="修改" id="xiugai"></fm:form><script type="text/javascript">$(function () {$("#xiugai").click(function () {/*序列化表单中的数据*/var input = $("#updatefrom").serialize();$.post("${pageContext.servletContext.contextPath}/user/update",input,function (data) {if (data!=-1){alert("修改成功");window.location.href="${pageContext.servletContext.contextPath}/user/list";}else{alert("修改失败");}});});});</script>
</body>
</html>

点击修改跳转到user/update方法POST请求方式:返回然后返回执行结果data修改成功后跳转到user./list方法跳转到main.jsp页面。

@PostMapping("/update")public void update(User user, HttpServletResponse response) throws IOException {int re = userService.updateUser(user);//返回给update.jsp页面执行结果response.getWriter().print(re);}

点击删除传入当前用户id并跳转到/user/del方法中get请求:

 //删除@GetMapping("/del/{id}")//接受用户的id值public String del(@PathVariable("id") Integer id){int re = userService.delUser(id);return "redirect:/user/list";}

删除成功后重定向到user/list方法然后跳转到main.jsp页面

SMM框架简单用户增删改查相关推荐

  1. salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)...

    此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...

  2. SSM整合--简单的增删改查--修改用户信息

    SSM整合--简单的增删改查 修改用户信息 修改用户信息 ## 根据id查找用户信息,显示在employ_update页面 ## 进行修改信息后,提交表单,保存数据### 1.根据id查询用户信息 h ...

  3. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] arg ...

  4. SpringMVC_实现简单的增删改查

    实现简单的增删改查 1:创建User的javabean package com.doaoao.bean; public class User {private String name;private ...

  5. mybatis学习4之使用注解开发实现简单的增删改查

    前言 使用注解完成简单的增删改查操作 本质:反射机制的体现 原理:动态代理 一.需要注意什么 1.注解在接口上实现 2.需要在核心配置文件上绑定接口,使用类绑定或者包绑定时,接口和它的Mapper配置 ...

  6. Struts2 注解开发实现简单的增删改查,超详细教程

    声明:此文是原创,如果需要转载请注明出处:https://blog.csdn.net/hunter_max/article/details/80575542 上一篇博客<Struts2 注解开发 ...

  7. mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数

    mybatis复习02,简单的增删改查 创建数据表 user_info 在项目中创建数据表对应的实体类 UserInfo.java 在pom.xml文件中引入依赖 创建核心配置文件mybatis-co ...

  8. myBatis 简单的增删改查

    myBatis 简单的增删改查 前面已经讲到用接口的方式编程.这种方式,要注意的一个地方就是.在User.xml 的配置文件中, mapper namespace="com.fjh.inte ...

  9. Hibernate简单实现增删改查

    Hibernate简单实现增删改查 2020.08.10 用了一下午时间入门了Hibernate给和我一样想学的小白分享一下 hibernate是一个对象关系映射框架 它对jdbc进行了封装只需要调用 ...

  10. 微信小程序小案例——简单数据增删改查模拟

    微信小程序小案例--简单数据增删改查模拟 应同学导师之邀,要做一个微信小程序,虽然没接触过,本着不会就学的态度就接了.这里就简单记录下制作过程,方便以后自己查找.(此处是粗糙版本,练习用的数据模拟)也 ...

最新文章

  1. 禁用引导模态区域之外的单击以关闭模态
  2. docker add-host hostAliases配置/etc/hosts
  3. CentOS配置Tair
  4. 连接数据库的方法---ODBC
  5. 读《Javascript高级程序设计》中的javascript事件处理程序(事件侦听器)心得
  6. 【Docker】Mac下Docker启动Kubernetes处于一直启动中(卡死)
  7. StarkWare发布零知识证明工具链
  8. vrrp协议_虚拟路由冗余协议VRRP原理介绍
  9. 服务器重置密码后无法启动不了怎么办,Windows Server 2008 R2 忘记密码的处理方法...
  10. 如何用DOM4J编程使用xml schema
  11. 汇编语言·易遗忘知识点汇总ing
  12. JAVA计算机毕业设计钢材商贸公司网络购销管理系统Mybatis+系统+数据库+调试部署
  13. java 运维系统_Java 应用运维
  14. MySQL例题一 综合案例(多条件组合查询)
  15. 旋转矩阵和角速度之间的关系
  16. Android 通过adb禁止某个应用上网
  17. 通信协议整理之 SPI 通信
  18. CSS 开源资源大全收集
  19. 读此一席话,胜读十年书:最牛情场职场语录大全
  20. C语言函数:错误信息打印函数,strerror()与perror()

热门文章

  1. WIN7点击右下角 安全删除硬件并弹出媒体 无反应解决方法
  2. 又是一年深秋时--西湖枫叶随拍
  3. python 小数点位数_python小数位数
  4. grep exclude
  5. windows10自带我的文档等路径修改
  6. JVM从入门到入魔(一) 类加载机制
  7. 大一C语言大作业_网吧收费管理系统
  8. 泛微oa流程表单之HTML表单字段必填验证的添加与移除
  9. word文档页码从正文页开始编号
  10. 如何关闭android键盘,软键盘怎么关,教您如何关闭软键盘