idea2023 springboot2.7.5+mybatis+jsp 初学单表增删改查

  1. 创建项目


    因为2.7.14使用量较少,特更改spring-boot为2.7.5版本



    配置端口号

打开Sm01Application类,右键运行启动项目,或者按照如下箭头启动

启动后,控制台提示如下信息表示成功

此刻在浏览器中输入:http://localhost:8081/hello 就可以看到如下得效果,就表示你成功了。

  1. 加入mybatis
    2.1在pom中加入,如下依赖
xml 复制代码
       <!--lombok不仅方便编写,同时也让我们的代码更简洁。比如常见的Getter&Setter、toString()、构造函数等等。-->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.20</version>
		</dependency>
       <!--C标签库得使用-->
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<!--mysql驱动-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.33</version>
		</dependency>
		<!--mybatis启动器-->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.2.2</version>
		</dependency>

2.2在application.properties中增加如下配置

xml 复制代码
spring.datasource.url=jdbc:mysql://localhost:3306/jdbc08
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml

2.3 在resources 下创建一个文件夹叫mapper

2.4在src下创建bean层,

java 复制代码
@Data
public class DeptBean {

    private int did;
    private String dname;

}

2.5在src下创建mapper层,并写接口

java 复制代码
@Mapper
public interface DeptMapper {
    public void addDept(String name);
    public void delDept(int id);
    public void updateDept(DeptBean deptBean);

    public DeptBean byidDept(int id);
    public List<DeptBean> allDept();
}

2.6 在resource下得mapper文件夹中新建一个文件DeptMapper.xml,如下得com.example.sm_01是项目中的包名

如下请注意:namespace的路径为2.5步中类的全路径

xml 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.sm_01.mapper.DeptMapper">

    <insert id="addDept" >
        insert into tb_dept (dname) values (#{values})
    </insert>

    <delete id="delDept">
        delete  from tb_dept where did=${id}
    </delete>

    <update id="updateDept" parameterType="com.example.sm_01.bean.DeptBean">
        update tb_dept set dname=#{dname} where did=#{did}
    </update>

    <select id="byidDept" resultType="com.example.sm_01.bean.DeptBean">
        select * from tb_dept where did=#{id}
    </select>

    <select id="allDept" resultType="com.example.sm_01.bean.DeptBean">
        select * from tb_dept
    </select>
</mapper>

2.7在src下创建service层,创建如下类

java 复制代码
@Service
public class DeptService {

    @Autowired
    private DeptMapper deptMapper;

    public void addDeptService(String name){
        deptMapper.addDept(name);
    }

    public void delDeptService(int id){
        deptMapper.delDept(id);
    }

    public void updateDeptService(DeptBean deptBean){
        deptMapper.updateDept(deptBean);
    }

    public DeptBean byidDeptService(int id){
        return deptMapper.byidDept(id);
    }

    public List<DeptBean> allDeptService(){
        return deptMapper.allDept();
    }

}

2.8在src下创建controller层,并创建如下类:

java 复制代码
@Controller
public class DeptController {
    @Autowired
    private DeptService deptService;

    @RequestMapping("addDept")
    public String addDept(String dname){
        deptService.addDeptService(dname);
        return "allDept";
    }

    @RequestMapping("allDept")
    public String allDept(Model model){
        model.addAttribute("alldept",deptService.allDeptService());
        return "deptAll.jsp";
    }

    @RequestMapping("byidDept")
    public String byidDept(int id ,Model model){
        model.addAttribute("byidDept",deptService.byidDeptService(id));
        return "deptUpdate.jsp";
    }

    @RequestMapping("delDept")
    public String delDept(int id){
        deptService.delDeptService(id);
        return "allDept";
    }

    @RequestMapping("updateDept")
    public String updateDept(DeptBean deptBean){
        deptService.updateDeptService(deptBean);
        return "allDept";
    }
}

如上操作后:代码目录如下:

接下来我们创建jsp目录:

2.9 点击File -->project stru...





然后就看到webapps目录一个小篮圈,然后请在这个目录下新建jsp

若是这里jsp访问404,则请将weapps目录修改为webapp

deptAdd.jsp

html 复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
  <form action="addDept"  method="post">
      部门名称:<input type="text" name="dname" />
      <input type="submit" value="添加">
  </form>
</body>
</html>

deptAll.jsp

html 复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java"  isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <c:forEach items="${alldept}" var="dd">
      ${dd.dname}
        <a href="delDept?id=${dd.did}">del</a>
        <a href="byidDept?id=${dd.did}">update</a>
        <br/>
    </c:forEach>
</body>
</html>

deptUpdate.jsp

html 复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="updateDept"  method="post">
    <input type="hidden" name="did" value="${byidDept.did}">
    部门名称:<input type="text" name="dname" value="${byidDept.dname}"/>
    <input type="submit" value="修改">
</form>
</body>
</html>

如上已完成,若想下载完整代码,请去资源寻找

相关推荐
懒鸟一枚2 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
我命由我123453 小时前
执行 Gradle 指令报错,无法将“grep”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
考虑考虑3 小时前
Sentinel安装
java·后端·微服务
碎碎念_4923 小时前
SpringBoot + Vue 前后端分离从 0 到 1 完整环境配置流程
vue.js·spring boot·后端
凤凰院凶涛QAQ5 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
掘金_答案6 小时前
上线那天,一个 ConcurrentHashMap 差点送走我的 AI 客服——3 天排查 JVM 血泪史
java·后端·架构
猿与禅6 小时前
CosId 分布式 ID 生成器完全教程:从架构原理到生产落地
java·shardingsphere·雪花算法·分布式id·高性能·cosid·号段模式
MindUp6 小时前
企业网盘权限模型解析:多层级访问控制与审计能力选型指南
java·linux·运维
NG4776 小时前
【软件设计与体系结构】-策略设计模式
java·设计模式·软件工程
程序员天天困7 小时前
优雅记录操作日志:从注解到 SpEL 的全链路实践与开源方案对比
java·后端