环境

  • IDEA
  • Mysql 8.0.15
  • Tomcat 9
  • Maven

目的

  • 为加深MySql数据库,Spring,javaWeb以及Mybatis知识,学习一些简单的前端知识

数据库环境

创建一个存放用户的数据库表

drop table if exists user1;
create table user1(
id int unsigned auto_increment key,
username varchar(20) not null unique comment '编号',
age tinyint unsigned not null default 18 comment '年龄',
sex varcahr(10) not null default '保密' comment '性别',
addr varchar(30) not null,
married tinyint(1) not null,
salary float(8,2) not null default 0 comment '薪水'
)engine=innodb charset=utf8;insert user1 values(1,'张逢杰',23,'男','杭州',0,3000.00);
insert user1(username,age,sex,addr,married,salary) values('queen',22,'女','魔仙堡',0,2500.00);
insert user1 set username='imooc',age=21,sex='女',addr='上海',salary=40000);
insert user1 values(null,'张三',20,'男','上海',0,12999),
(null,'三',90,'男','上海',0,129),
(null,'张',89,'男','上海',0,1299),
(null,'李四',67,'男','上海',0,12999),
(null,'王五',56,'男','上海',0,1999),
(null,'赵六',45,'男','上海',0,2999),
(null,'祥子',34,'男','上海',0,12),
(null,'骆驼',23,'男','上海',0,199);insert user1 values(null,'小小朱',22,'女','成都',0,3400),
(null,'朱零元',26,'女','杭州',0,9400),
(null,'aka小朱',22,'女','广州',0,8400),
(null,'朱财奴',20,'女','广州',0,7400),
(null,'阿朱',19,'女','魔仙堡',1,6400),
(null,'啊哲',18,'男','海盐',0,5300),
(null,'哲哥',31,'女','魔仙堡',1,6700),
(null,'怡妹妹',29,'女','魔仙堡',1,6800);

基本环境搭建

1.新建一个Maven项目,ssmbuild,添加web的支持
2.导入相关的pom依赖

<dependencies><!--Junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!--数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.17</version></dependency><!-- 数据库连接池 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency><!--Servlet - JSP --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--Mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.2</version></dependency><!--Spring--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.1.9.RELEASE</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.8</version></dependency></dependencies>

3.由于maven的约定大于配置,还需要maven资源过滤设置

<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>

4.建立基本结构和配置框架

  • com.zfj.pojo
  • com.zfj.dao
  • com.zfj.service
  • com.zfj.controller
  • mybatis-config.xml
<?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></configuration>
  • 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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"></beans>

MyBatis层的编写

1.数据库配置文件database.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/ssmbuild?&userSSL=false&serverTimezone=UTC
username=root
password=root

2.关联数据库
3.编写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="com.zfj.pojo"/></typeAliases><!--映射文件--><mappers><mapper resource="com/zfj/dao/User1Mapper.xml"/></mappers></configuration>

4.编写数据库对应的实体类 com.zfj.pojo.User1

public class User1 {private int id;private String username;private int age;private String sex;private String addr;private int married;private float salary;//无参,有参,getset,tostring。。。

5.编写Dao层的Mapper接口

public interface User1Mapper {//增加一个用户int addUser(User1 user1);//根据id删除一个用户int deleteUserById(int id);//更新用户int updateUser(User1 user1);//根据id查询,返回一个用户User1 queryUserById(int id);//查询出所有的用户,返回list集合List<User1> queryAllUser();//根据姓名查找用户User1 queryUserByName(String username);
}

6.编写接口对应的Mapper.xml文件。

<?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="com.zfj.dao.User1Mapper"><!--add--><insert id="addUser" parameterType="User1">insert into ssmbuild.user1(username, age, sex, addr, married, salary)VALUES (#{username},#{age},#{sex},#{addr},#{married},#{salary})</insert><!--delete--><delete id="deleteUserById" parameterType="int">delete  from ssmbuild.user1 where id=#{id}</delete><update id="updateUser" parameterType="User1">update ssmbuild.user1set username=#{username},age=#{age},sex=#{sex},addr=#{addr},married=#{married},salary=#{salary}where id=#{id}</update><select id="queryUserById" resultType="User1">select * from ssmbuild.user1 where id=#{id}</select><select id="queryAllUser" resultType="User1">select * from ssmbuild.user1</select><select id="queryUserByName" resultType="User1">select * from ssmbuild.user1 where username=#{username}</select>
</mapper>

7.编写Service层的接口和实现类

  • 接口
public interface User1Service {//增加一个用户int addUser(User1 user1);//根据id删除一个用户int deleteUserById(int id);//更新用户int updateUser(User1 user1);//根据id查询,返回一个用户User1 queryUserById(int id);//查询出所有的用户,返回list集合List<User1> queryAllUser();User1 queryUserByName(String username);
}
  • 实现类
public class User1ServiceImpl implements User1Service {private User1Mapper user1Mapper;public void setUser1Mapper(User1Mapper user1Mapper) {this.user1Mapper = user1Mapper;}public int addUser(User1 user1) {return user1Mapper.addUser(user1);}public int deleteUserById(int id) {return user1Mapper.deleteUserById(id);}public int updateUser(User1 user1) {return user1Mapper.updateUser(user1);}public User1 queryUserById(int id) {return user1Mapper.queryUserById(id);}public List<User1> queryAllUser() {return user1Mapper.queryAllUser();}public User1 queryUserByName(String username) {return user1Mapper.queryUserByName(username);}
}

就此,底层需求操作编写完毕

spring层

1.配置Spring整合MyBatis,可供选择的又c3p0,druid连接池;
2.编写spring整合MyBatis的相关配置文件;spring-dao.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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--1.关联数据库文件--><context:property-placeholder location="classpath:database.properties"/><!--2.数据库连接池--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${driver}"/><property name="jdbcUrl" value="${url}"/><property name="user" value="${username}"/><property name="password" value="${password}"/></bean><!--3.配置sqlSessionFactory对象--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:mybatis-config.xml"/></bean><!--4.配置扫描dao包的接口--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.zfj.dao"/><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/></bean></beans>

3.Spring整合service层

<?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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--扫描service相关的bean--><context:component-scan base-package="com.zfj.service"/><bean id="User1ServiceImpl" class="com.zfj.service.User1ServiceImpl"><property name="user1Mapper" ref="user1Mapper"/></bean><!--配置事务管理器--><bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager"><!--注入数据库连接池--><property name="dataSource" ref="dataSource"/></bean></beans>

SpringMVC层

1.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>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--encodingFilter--><filter><filter-name>encodingFilter</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>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--Session过期时间--><session-config><session-timeout>15</session-timeout></session-config></web-app>

2.spring-mvc.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:mvc="http://www.springframework.org/schema/mvc"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 https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--注解驱动--><mvc:annotation-driven/><!--静态资源默认servlet配置--><mvc:default-servlet-handler/><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!--扫描相关的bean--><context:component-scan base-package="com.zfj.controller"/></beans>

3.Spring配置文件整合,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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><import resource="spring-mvc.xml"/><import resource="spring-service.xml"/><import resource="spring-dao.xml"/>
</beans>

配置文件暂时结束,下面进行Controller和视图层编写

1.UserController类编写,

package com.zfj.controller;import com.zfj.pojo.User1;
import com.zfj.service.User1Service;
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.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.List;/*** @Author zfj* @create 2019/12/4 23:16*/
//@Controller
@Controller
@RequestMapping("/user")
public class User1Controller {@Autowiredprivate User1Service user1Service;//查询所有的用户@RequestMapping("/allUser")public String allUser(Model model){List<User1> user1s = user1Service.queryAllUser();model.addAttribute("list",user1s);return "allUser";}//点击【添加】时,跳转到添加页面@RequestMapping("/toAddUser")public String toAddUser(){return "addUser";}//添加用户@RequestMapping("/addUser")public String addUser(User1 user1){user1Service.addUser(user1);return "redirect:/user/allUser";}//点击【修改】时,跳转到修改页面@RequestMapping("/toUpdateUser")public String toUpdateUser(Model model,int id){User1 user1 = user1Service.queryUserById(id);model.addAttribute("user1",user1);return "updateUser";}//修改用户@RequestMapping("/updateUser")public String updateUser(User1 user1){user1Service.updateUser(user1);return "redirect:/user/allUser";}//删除@RequestMapping("/deleteUser/{id}")public String deleteUser(@PathVariable("id") int id){user1Service.deleteUserById(id);return "redirect:/user/allUser";}//根据姓名查询用户@RequestMapping("/queryUserByName")public String queryUserByName(String username,Model model){User1 user1 = user1Service.queryUserByName(username);List<User1> list=new ArrayList<User1>();list.add(user1);if(user1==null){list = user1Service.queryAllUser();model.addAttribute("error","未查到");}model.addAttribute("list",list);return "allUser";}}

2.编写首页index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>$Title$</title><style>a{text-decoration:none;color: black;font-size: 20px;}h3{width: 180px;height: 38px;margin: 100px auto;text-align:center;line-height: 38px;background:deepskyblue;border-radiusz:4px;}</style></head><body><h3><a href="${pageContext.request.contextPath}/user/allUser">测试</a></h3></body>
</html>


3.用户列表页面 allUser.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><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 引入 Bootstrap --><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body><div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><small>用户列表--显示所有用户</small></div></div></div><div class="row"><div class="col-md-4 column"><a class="btn btn-primary" href="${pageContext.request.contextPath}/user/toAddUser">新增用户</a><a class="btn btn-primary" href="${pageContext.request.contextPath}/user/allUser">显示所有用户</a></div><div class="col-md-4 column"></div><div class="col-md-4 column"><form class="form-inline" action="${pageContext.request.contextPath}/user/queryUserByName" method="post"><span style="color: red">${error}</span><input type="text" name="username" placeholder="请输入要查询的用户名称" class="form-control"><input type="submit" class="btn btn-primary" value="查询"></form></div></div><div class="row clearfix"><div class="col-md-12 column"><table class="table table-hover table-striped"><thead><tr><th>编号</th><th>姓名</th><th>年龄</th><th>性别</th><th>地址</th><th>婚否</th><th>薪资</th><th>操作</th></tr></thead><tbody><c:forEach var="user" items="${list}"><tr><td>${user.id}</td><td>${user.username}</td><td>${user.age}</td><td>${user.sex}</td><td>${user.addr}</td><td>${user.married}</td><td>${user.salary}</td><td><a href="${pageContext.request.contextPath}/user/toUpdateUser?id=${user.id}">修改</a>  &nbsp;&nbsp;|&nbsp;&nbsp;<a href="${pageContext.request.contextPath}/user/deleteUser/${user.id}">删除</a></td></tr></c:forEach></tbody></table></div></div></div></body>
</html>


4.添加用户界面

5.修改用户界面

6.删除

7.查询用户

查不到的会提示,并返回所有信息

--------------------------------------------------------------------------------------
这是本菜鸟的第二个SSM整合的案例,感谢秦疆老师的帮助

整合SSM (用户的增删改查)相关推荐

  1. Python中用户管理(用户的登陆、用户的增删改查)

    一.用户登陆 题目要求: 1.系统里面有多个用户,用户的信息目前保存在列表里面 users = ['root','westos'] passwd = ['123','456'] 2.用户登陆(判断用户 ...

  2. 基于 spring boot 实现用户的增删改查

    基于登录实现后 在此我们更深一步地实现用户的增删改查(用户登录的实现在我的另一篇文章中) 其实从整体上来说,用户的增删改查和用户登录大同小异 主要是处理好各个层之间的关系 这里源码奉上 实体类 bea ...

  3. SSH(Struts 2.3.31 + Spring 4.1.6 + Hibernate 5.0.12 + Ajax)框架整合实现简单的增删改查(包含分页,Ajax 无刷新验证该用户是否存在)...

    软件152 余建强 该文将以员工.部门两表带领大家进入SSH的整合教程: 源码下载:http://download.csdn.net/detail/qq_35318576/9877235 SSH 整合 ...

  4. ajax servlet增删改查,Servlet ajax 文件上传和JDBC+Servler用户表增删改查

    昨天晚上帮一个妹子,应该是大二或者大三的.解决了Servlet+JDBC实现用户表的增删改查功能,当时妹子遇到的问题是文件上传和日期格式处理不太会. 我让她把代码发我,我本地调试,结果发现坑很多,就是 ...

  5. java ssm框架做增删改查,使用SSM框架组合实现增删改查的功能

    基于ssm框架组合的增删改查功能 ssm框架组合之前已经搭建完成了,下面基于该框架组合实现增删改查的功能,首先创建一个数据库和一张表: CREATE DATABASE `ssmteam` /*!401 ...

  6. SSH三大框架实现用户登录及用户表增删改查的测试

    #配置文件: applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <b ...

  7. SSM框架——Mybatis增删改查

    目录 目录 环境配置 增删改查的实现 查询全部 查询单个ID 添加用户 修改用户 删除用户 增删改查-使用注解开发 思路流程:搭建环境-->导入Mybatis--->编写代码---> ...

  8. Spring整合JDBCTemplate实现数据库增删改查操作

    SpringJDBC: 正常jdbc连接数据库流程: 1.注册驱动 2. 获取连接 2. 获取Statement或者PreparedStatement对象 3. 执行sql操作 4. 处理结果集 查询 ...

  9. springboot整合IDAP,实现增删改查

    看了网上很多资料,大多是用于查询认证.增删改很少,特在此整理一下.供大家学习. 注:前置条件,ad域证书已经导入到jdk(大家可以查看我另一篇关于ad证书导入到jdk中) 1.idea创建spring ...

最新文章

  1. 如何编写常见语言带默认参数值的函数
  2. 当安全遇到大数据 “永恒之蓝”也将无所遁形!
  3. Win11如何查看电池情况 Win11查看电池情况的方法
  4. php数字从大到小生成,php输入几个数从大到小排序的案例
  5. 补习系列(4)-springboot 参数校验详解
  6. Python基础100题
  7. 如何用css实现类似简书的纵向导航/竖排导航
  8. 几种常见的微服务架构方案简述——ZeroC IceGrid、Spring Cloud、基于消息队列
  9. python调用文件可以干嘛_Python完成读取并保存文件类的详细介绍
  10. 基于k8s安装配置kubeflow
  11. mysql导出csv 分隔符_导出到CSV文件,CSV文件好像是以逗号为分隔符的吧?如果数据库字段里含有逗号怎么处理?比如说下面这个字...
  12. h3c comware 使用 freeradius 统一认证---草稿
  13. word文档如何在方框内打钩
  14. 计算机进入不了管理器,电脑没有桌面且任务管理器打不开怎么办
  15. 字符串:1.给定一个字符串s,分割s使得s的每一个子串都是回文串
  16. 企业电子招投标采购系统之项目说明和开发类型源码
  17. 关于加速度传感器方面内容汇总
  18. Oracle 执行计划(Explain Plan)
  19. Linux 系统增加硬盘
  20. 【OS】什么是YUM?如何配置本地YUM源?

热门文章

  1. 福利来啦,软件测试入行者的福音,测试项目实战它来了
  2. Java 求解零钱兑换
  3. 动态分配IP-DHCP协议详解
  4. 页面表格怎么添加序号
  5. 霍尔编码器电机与TB6612电机驱动相关学习
  6. 贴片元件拖锡法焊接教程(图解)
  7. Ubuntu下git版本升级
  8. 吴恩达——机器学习(正规方程)
  9. OpenCV库的学习笔记(三)Changing Colorspaces
  10. 江苏成人高考低于录取分数10分,能被录取吗