首先我们先创建项目 注意:创建SpringBoot项目时一定要联网不然会报错

项目创建好后我们首先对 application.yml 进行编译

#指定端口号
server:port: 8888
#配置mysql数据源
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/nba?serverTimezone=Asia/Shanghaiusername: rootpassword: root
#配置模板引擎 thymeleafthymeleaf:mode: HTML5cache: falsesuffix: .htmlprefix: classpath:/templates/mybatis:mapper-locations: classpath:/mapper/*.xmltype-aliases-package: com.bdqn.springboot  #放包名

注意:在 :后一定要空格,这是他的语法,不空格就会运行报错

接下来我们进行对项目的构建 创建好如下几个包 可根据自己实际需要创建其他的工具包之类的

mapper:用于存放dao层接口

pojo:用于存放实体类

service:用于存放service层接口,以及service层实现类

web:用于存放controller控制层

接下来我们开始编写代码

首先是实体类,今天做的是一个两表的简单增删改查

package com.baqn.springboot.pojo;import lombok.Data;@Data
public class Clubs {private int cid;private String cname;private String city;
}
package com.baqn.springboot.pojo;import lombok.Data;@Data
public class Players {private int pid;private String pname;private String birthday;private int height;private int weight;private String position;private int cid;private String cname;private String city;
}

使用@Data注解可以有效减少实体类中的代码数量,缩减了对于get/set和toString的编写

然后是mapper层

package com.baqn.springboot.mapper;import com.baqn.springboot.pojo.Players;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;import java.util.List;@Mapper
@Repository
public interface PlayersMapper {/*** 查询所有* @return*/List<Players> findAll();/*** 根据ID查询* @return*/Players findById(Integer id);/*** 新增* @param players* @return*/Integer add(Players players);/*** 删除* @param pid* @return*/Integer delete(Integer pid);/*** 修改* @param players* @return*/Integer update(Players players);
}

使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到Servicelmpl中。

然后是service层

package com.baqn.springboot.service;import com.baqn.springboot.pojo.Players;
import org.apache.ibatis.annotations.Param;import java.util.List;public interface PlayersService {List<Players> findAll();Players findById(Integer pid);Integer add(Players players);Integer delete(Integer pid);Integer update(Players players);
}
package com.baqn.springboot.service;import com.baqn.springboot.mapper.PlayersMapper;
import com.baqn.springboot.pojo.Players;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class PlayersServiceImpl implements  PlayersService{@Autowiredprivate PlayersMapper mapper;@Overridepublic List<Players> findAll() {return mapper.findAll();}@Overridepublic Players findById(Integer pid) {return mapper.findById(pid);}@Overridepublic Integer add(Players players) {return mapper.add(players);}@Overridepublic Integer delete(Integer pid) {return mapper.delete(pid);}@Overridepublic Integer update(Players players) {return mapper.update(players);}
}

最后是web层的controller控制类

package com.baqn.springboot.web;import com.baqn.springboot.pojo.Players;
import com.baqn.springboot.service.PlayersServiceImpl;
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 java.util.List;@Controller
public class PlayersController {@Autowiredprivate PlayersServiceImpl service;@RequestMapping("/findAll")public String findAll(Model model) {List<Players> allList = service.findAll();model.addAttribute("allList",allList);return "index";}@RequestMapping("/findById/{pid}")public String findById(Model model,@PathVariable("pid") Integer pid) {Players list = service.findById(pid);//System.out.println("---------------"+list.toString());model.addAttribute("list",list);return "update.html";}@RequestMapping("/add")public String add(Model model, Players players){Integer count = service.add(players);if (count>0){return "redirect:/findAll";}return "add";}@RequestMapping("/delete/{pid}")public String delete(Model model,@PathVariable("pid") Integer pid){Integer count = service.delete(pid);if (count>0){return "redirect:/findAll";}return null;}@RequestMapping("/a1")public String a1(Model model, Players players){return "add.html";}@RequestMapping("/update")public String update(Model model,Players plays){Integer count = service.update(plays);if (count>0){return "redirect:/findAll";}return null;}
}

注意:a1方法仅仅是用于跳转页面,并没有其他作用,如果有更好的跳转方法可以给我留言哦

现在准备工作都做完了,可以开始编写SQL语句了

mapper.xml可以写在下面resources里面也可以写在上面的mapper层里

如果写在上面的话需要在pom里面写一个资源过滤器,有兴趣的话可以去百度

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace=绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.baqn.springboot.mapper.PlayersMapper"><select id="findAll" resultType="com.baqn.springboot.pojo.Players">select * from clubs c , players pwhere c.cid = p.cid</select><select id="findById" resultType="com.baqn.springboot.pojo.Players">select * from clubs c , players pwhere c.cid = p.cid and p.pid=#{pid}</select><insert id="add" parameterType="com.baqn.springboot.pojo.Players">INSERT INTO `nba`.`players`(pname, birthday, height, weight, position, cid)VALUES (#{pname}, #{birthday}, #{height}, #{weight}, #{position}, #{cid});</insert><delete id="delete" parameterType="int">delete from players where pid = #{pid}</delete><update id="update" parameterType="com.baqn.springboot.pojo.Players">UPDATE `nba`.`players`<set><if test="pname != null">pname=#{pname},</if><if test="birthday != null">birthday=#{birthday},</if><if test="height != null">height=#{height},</if><if test="weight != null">weight=#{weight},</if><if test="position != null">position=#{position},</if><if test="cid != null">cid=#{cid}</if></set>WHERE `pid` = #{pid};</update>
</mapper>

注意:mapper.xml中的id里对应的是mapper层接口的方法,一定不能写错                                    

到现在为止我们的后端代码就已经完全搞定了,前端页面如下

主页 index.html

<html>
<head><title>Title</title>
</head>
<body>
<div align="center"><table border="1"><h1>美国职业篮球联盟(NBA)球员信息</h1><a th:href="@{/a1}">新增</a><tr><th>球员编号</th><th>球员名称</th><th>出生时间(yyyy-MM-dd)</th><th>球员身高(cm)</th><th>球员体重(kg)</th><th>球员位置</th><th>所属球队</th><th>相关操作</th></tr><!--/*@thymesVar id="abc" type=""*/--><tr th:each="list : ${allList}"><td th:text="${list.pid}"></td><td th:text="${list.pname}"></td><td th:text="${list.birthday}"></td><td th:text="${list.height}">${list.height}</td><td th:text="${list.weight}"></td><td th:text="${list.position}"></td><td th:text="${list.cname}"></td><td><a th:href="@{'/findById/'+${list.pid}}">修改</a><a th:href="@{'/delete/'+${list.pid}}">删除</a></td></tr></c:forEach></table>
</div>
</body>
</html>

新增页 add.html

<!DOCTYPE html>
<html><head><title>Title</title>
</head>
<body>
<div align="center"><h3 align="center">新增球员</h3><form action="/add"><p>球员名称:<input name="pname" id="pname"></p ><p>出生日期:<input name="birthday" id="birthday"></p ><p>球员升高:<input name="height" id="height"></p ><p>球员体重:<input name="weight" id="weight"></p ><p>球员位置:<input type="radio"  name="position" value="控球后卫"/>控球后卫<input type="radio"  name="position" value="得分后卫"/>得分后卫<input type="radio"  name="position" value="小前锋" />小前锋<input type="radio"  name="position" value="大前锋" />大前锋<input type="radio"  name="position" value="中锋"/>中锋</p ><p>所属球队:<select name="cid"><option value="1">热火队</option><option value="2">奇才队</option><option value="3">魔术队</option><option value="4">山猫队</option><option value="5">老鹰队</option></select></p ><input type="submit" value="保存"><input type="reset" value="重置"></form>
</div>
</body>
</html>

修改页 update.html

<!DOCTYPE html>
<html  xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body class="container"><div align="center"><h1>修改球员信息</h1><br/><form action="/update" method="get" id="form2"><table><tr><td colspan="2"></td></tr><tr><td>球员编号:</td><td><input type="text" name="pid"id="pid" th:value="${list.pid}"/></td></tr><tr><td>球员姓名:</td><td><input type="text" name="pname"id="pname" th:value="${list.pname}"/></td></tr><tr><td>出身日期:</td><td><input type="text" name="birthday"id="birthday" th:value="${list.birthday}"/></td></tr><tr><td>球员身高:</td><td><input type="text" name="height"id="height" th:value="${list.height}"/></td></tr><tr><td>球员体重:</td><td><input type="text" name="weight"id="weight" th:value="${list.weight}"/></td></tr><tr><td>球员位置:</td><td><input type="text" name="position"id="position" th:value="${list.position}"/></td></tr><tr><td>所属球队:</td><td><select name="cid" id="cid" th:value="${list.cid}"/><option value="">--请选择球队--</option><option value="1">热火队</option><option value="2">奇才队</option><option value="3">魔术队</option><option value="4">山猫队</option><option value="5">老鹰队</option></select></td></tr><tr><td colspan="2"><input type="submit" id="btn2" value="保存"/><input type="reset" id="wrap-clera" value="重置"/><a th:href="@{/index.html}"><input type="button" id="btn1" value="返回"/></a></td></tr></table></form></div>
</body>
</html>

数据库创建源码 -- 注意:我用的是MySQL数据库

create table clubs(cid int primary key auto_increment,cname varchar(50) not null,city varchar(50) not null
)create table players(pid int primary key auto_increment,pname varchar(50) not null,birthday datetime not null,height int not null,weight int not null,position varchar(50) not null,cid int not null
)alter  table  players  add  constraint  players_cid
foreign key(cid)  references  clubs(cid);insert into clubs values
(1,'热火队','迈阿密'),
(2,'奇才队','华盛顿'),
(3,'魔术队','奥兰多'),
(4,'山猫队','夏洛特'),
(5,'老鹰队','亚特兰大')insert into players values
(4,'多多','1989-08-08',213,186,'前锋',1),
(5,'西西','1987-10-16',199,162,'中锋',1),
(6,'南南','1990-01-23',221,184,'后锋',1)

最后给大家看一下页面展示

在地址栏输入:http://localhost:8888/findAll  进入到查询所有方法再跳转到idnex.html进行显示

点击新增跳转到新增页面

输入参数

然后点击保存 添加成功后跳转到idnex.html并显示数据

前端数据显示表面成功添加

点击修改 根据findById方法找到数据,并跳转到update.htnl页面进行显示

我们修改所属球队为 奇才队 点击保存

跳转到index.html页面并且数据成功修改

今天给大家带来的就是这些内容,感谢观看!

有问题可以在评论区指正,我会及时修改!

springboot+mybatis+thymleft 做一套简单增删改查相关推荐

  1. springboot使用JdbcTemplate完成对数据库的增删改查

    上一篇对springboot有一个简单的介绍以及使用一个简单的例子熟悉了一下springboot写法的简单流程.这一篇介绍springboot使用JdbcTemplate完成对数据库的增删改查. 首先 ...

  2. java调用oracle删除,使用IDEA对Oracle数据库进行简单增删改查操作

    1.1 java中的数据存储技术 在java中,数据库存取技术可分为如下几类: 1.jdbc直接访问数据库 2.jdo(java data object)是java对象持久化的新的规范,也是一个用于存 ...

  3. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  4. 【无标题】vue 简单增删改查表格

    <template><div><h2>table简单增删改查</h2><input type="text" v-model=& ...

  5. mysql创建数据表列子,MySQL 创建数据库及简单增删改查

    MySQL 创建数据库及简单增删改查 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 登入: Enter passwor ...

  6. python操作数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  7. Vue+Mysql+SpringBoot简单增删改查

    关于Spring篇 关于mybatis+maven基本知识掌握总结 maven中spring+springmvc+mybatis整合详细配置 SpringBoot+Mybatis+Redis基础配置 ...

  8. 保姆级Spring+Mybatis整合的简单增删改查功能实现

    Springboot和Mybatis整合实现增删改查等 0.文章中pageHelper相关的操作是分页查询的东西与本文无关 1.首先创建一个Springboot的项目 1.1Java一般选择的是8,看 ...

  9. 基于SpringBoot开发一个Restful服务,实现增删改查功能

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:虚无境 cnblogs.com/xuwujing/p/8260935.html 前言 在去 ...

最新文章

  1. 计算机用户账户添加,windows添加用户账户
  2. 通过AOP控制事务的案例
  3. 清除BSS段的一般做法
  4. 牛客-139 I. Substring(后缀数组 or 后缀自动机)
  5. 不规则对话框的又一实现
  6. linux cd是什么目录,linux-cd命令
  7. cocos2d-x史上最著名的诗
  8. Linux内核中Makefile、Kconfig和.config的关系
  9. 从非结构化数据到特色数据指标,AI如何更懂金融?
  10. 数学建模算法与应用学习day4——综合评价与决策方法
  11. sad代价计算_基于改进代价计算和自适应引导滤波的立体匹配
  12. 电池SOC仿真系列-基于双卡尔曼滤波(KF+UKF)算法的电池SOC估算
  13. [每日一氵] Python 写程序专用 log 分享
  14. 【原创整理】软件测试自我记录(目前携程+招银网络科技)
  15. 程序员的呓语---萎缩的情商
  16. 我发现智能无人机课程里面讲了无人机建模这方面的理论知识
  17. Mybatis重点知识 与SQLMapper大全
  18. Leetcode 435. Non-overlapping Intervals
  19. 外贸怎么做之一:写客户开发信之前需要做什么准备?
  20. “需要Mi crosoft .NET Framework 3.5 Service Pack 1”规则失败。

热门文章

  1. html里面怎么设置搜索框,html搜索框怎么做
  2. 【QT小记】QT中如何弹起菜单
  3. html超链接字体颜色怎么改DW,请问 dreamweaver怎么设置不同文本的超链接颜色?...
  4. Hive分桶表创建clustered by()
  5. 计算机应用3d建模难学吗,什么是3D建模,跟数学建模有关系吗?
  6. 服务器u盘备份系统,套娃自动备份unraid系统u盘
  7. 成都扬帆际海教育咨询:伊朗电商领域有待开发
  8. 阿里老学长:大厂校招招聘流程及考核标准解读(附面经建议)
  9. 2021网易游戏研发岗笔试题解及感想
  10. 电子科技大学就是全球第一的大学