IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> IDEA实现SpringBoot项目的EasyDemo(web+mysql) -> 正文阅读

[Java知识库]IDEA实现SpringBoot项目的EasyDemo(web+mysql)

写在开头,该Demo借鉴了http://t.csdn.cn/zKUVm?在基础上做了深入探索!

目的:分享一个简单的SpringBoot项目,通过该项目了解SpringBoot的各层框架之间的关联。

具体的SpringBoo项目层级关联:参照http://t.csdn.cn/CdquD

controller层—>service层(serviceImpl实现Iservice接口)—>mapper层—>mapper.xml文件

bean层等同于entiy,实体类层。

该Demo的整体框架结构参照第一篇文章,newDemo(http://t.csdn.cn/5dbga,在此基础上我延伸出来了关于Leader类的相关增删改查的功能和实现,也是通过这个实现才理解了各个层级之间的关联。

项目结构如下图

?

首先是最外层的操作页面
index.html

代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>NewDemo</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<div id="header" style="background-color:#FFA500;">
    <h2 style="margin-bottom:0;">Depart院系信息</h2>
    <button style="margin: 20px auto;width: 120px;height: 45px;" onclick="getAll()">查看院系信息</button>
    <button style="margin: 20px auto;width: 120px;height: 45px;" onclick="getRandAll()">随机查看单条院系信息</button>
</div>
<div id="header1" style="background-color:#00cdff;">
    <h2 style="margin-bottom:0;">Leader领导信息</h2>
    <button style="margin: 20px auto;width: 120px;height: 45px;" onclick="getLeaderAll()">查看领导信息</button>

    <input class="a-b-c" type="text" placeholder="请输入姓名" style="width: 200px;height: 40px;margin-left: 40px;">
    <button style="margin: 20px auto;width: 120px;height: 45px;" onclick="getAppointLeader()">查詢指定领导信息</button>

    <input class="a-b-c-d" type="text" placeholder="请输入待删除的领导排名(数字)" style="width: 200px;height: 40px;margin-left: 40px;">
    <button style="margin: 20px auto;width: 120px;height: 45px;" onclick="getDeleteLeader()">删除指定领导信息</button>
</div>
<div id="header2" style="background-color:#36dd91;">
    <h2 style="margin-bottom:0;">新增Leader领导信息</h2>
    <input id="name" type="text" placeholder="请输入姓名" style="width: 200px;height: 40px;">
    <input id="ranking" type="text" placeholder="请输入顺位" style="width: 200px;height: 40px;">
    <button style="margin: 20px auto;width: 120px;height: 45px;" onclick="getAddLeader()">新增领导信息</button>
</div>
<div id="header3" style="background-color:#45aebd;">
    <h2 style="margin-bottom:0;">编辑Leader领导信息</h2>
    <input id="editid" type="text" placeholder="请输入待修改的用户id" style="width: 50px;height: 40px;" onchange = "getLeaderdata()">
    <input id="editname" type="text" placeholder="请输入姓名" style="width: 200px;height: 40px;">
    <input id="editranking" type="text" placeholder="请输入顺位" style="width: 50px;height: 40px;">
    <button style="margin: 20px auto;width: 120px;height: 45px;" onclick="getEditLeader()">编辑领导信息</button>
</div>
<div id="footer" style="background-color:#3ea3f4;clear:both;text-align:center;">
    <div class="result" id="result"></div>
</div>

</body>
<script>
    function getAll(){
        $.ajax({
            type: "get",
            url: "depart/selectAll",
            data: {
            },
            success:function (data) {
                console.log(data)
                $("#result").empty()
                for(var i = 0;i < data.length;i++){
                    $("#result").append(JSON.stringify(data[i]) + "<br>")
                }
            },
        });
    }
    function getRandAll(){
        $.ajax({
            type: "get",
            url: "depart/selectId",
            data: {
            },
            success:function (data) {
                console.log(data)
                $("#result").empty()
                for(var i = 0;i < data.length;i++){
                    $("#result").append(JSON.stringify(data[i]) + "<br>")
                }
            },
        });
    }
    function getLeaderAll(){
        $.ajax({
            type: "get",
            url: "leader/selectAll",
            data: {
            },
            success:function (data) {
                console.log(data)
                $("#result").empty()
                for(var i = 0;i < data.length;i++){
                    $("#result").append(JSON.stringify(data[i]) + "<br>")
                }
            },
        });
    }
    function getAppointLeader(){
        var Name = $('.a-b-c').val();
        // var Name = document.getElementById("leadername1").value;
        alert(Name);
        $.ajax({
            type: "get",
            url: "leader/" + Name,
            // data: {
            // },
            success:function (data) {
                console.log(data)
                $("#result").empty()
                for(var i = 0;i < data.length;i++){
                    $("#result").append(JSON.stringify(data[i]) + "<br>")
                }
            },
        });
    }
    function getDeleteLeader(){
        var rk = $('.a-b-c-d').val();
        $.ajax({
            type: "delete",
            url: "leader/" + rk,
            // data: {
            // },
            success:function (data) {
                console.log(data)
                alert(data)
                // $("#result").empty()
                // for(var i = 0;i < data.length;i++){
                //     $("#result").append(JSON.stringify(data[i]) + "<br>")
                // }
            },
        });
    }
    function getAddLeader(){
        var leaderName = document.getElementById("name").value;
        var ranKing1 = document.getElementById("ranking").value;
        var ranKing = parseInt(ranKing1);
        // alert(leaderName+ranKing);
        // var form = {
        //     leaderName: leaderName,
        //     ranKing: ranKing,
        // };
        this.form = {
            leaderName: leaderName,
            ranKing: ranKing,
        };
        alert(this.form);
        $.ajax({
            contentType : 'application/json',
            type: "post",
            url: "leader",
            dataType:"json",
            data:JSON.stringify(this.form),
            // data: this.form,
            success:function (data) {
                console.log(data)
                alert(data)
                $("#result").empty()
                for(var i = 0;i < data.length;i++){
                    $("#result").append(JSON.stringify(data[i]) + "<br>")
                }
            },
        });
    }


    function getLeaderdata(){
        var vid = document.getElementById("editid").value;
        var id = parseInt(vid);
        $.ajax({
            type: "get",
            url: "leader/selectid/" + id,
            success:function (data) {
                $("#result").empty()
                $("#result").append(JSON.stringify(data) + "<br>")
                // alert(data.leaderName);
                // alert(data.ranKing);
                $("#editname").attr("value",data.leaderName);
                $("#editranking").attr("value",data.ranKing);
                // for(var i = 0;i < data.length;i++){
                //     $("#result").append(JSON.stringify(data[i]) + "<br>")
                // }
            },
        });
    }

    function getEditLeader(){
        var id1 = document.getElementById("editid").value;
        var leaderName = document.getElementById("editname").value;
        var ranKing1 = document.getElementById("editranking").value;
        var ranKing = parseInt(ranKing1);
        var id = parseInt(id1);
        // alert(leaderName+ranKing);
        // var form = {
        //     leaderName: leaderName,
        //     ranKing: ranKing,
        // };
        this.form = {
            id:id,
            leaderName: leaderName,
            ranKing: ranKing,
        };
        $.ajax({
            contentType : 'application/json',
            type: "put",
            url: "leader",
            dataType:"json",
            data:JSON.stringify(this.form),
            // data: this.form,
            success:function (data) {
                console.log(data)
                alert(data)
                $("#result").empty()
                for(var i = 0;i < data.length;i++){
                    $("#result").append(JSON.stringify(data[i]) + "<br>")
                }
            },
        });
    }
</script>
</html>

然后是Controller层? ? ?

LeaderController

代码如下

package com.example.newdemo.controller;

import com.example.newdemo.bean.Leader;
import com.example.newdemo.service.LeaderService;
import com.example.newdemo.service.LeaderServiceImpl;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("/leader")
public class LeaderController {
    @Resource
    private LeaderService leaderService = new LeaderServiceImpl();

    @GetMapping(value = "/selectAll")
    public List<Leader> selectAll() {
        List<Leader> list = leaderService.selectAll();
        return list;
    }

    @GetMapping(value = "/{Name}")
    public List<Leader> selectRanKing(@PathVariable("Name") String Name) {
        List<Leader> list = leaderService.selectRanKing(Name);
        return list;
    }
    @DeleteMapping(value = "/{rk}")
    public int deleteRanKing(@PathVariable("rk") int rk) {
        int iresult = leaderService.deleteRanKing(rk);
        return iresult;
    }

    @PostMapping
    public int addleader(@Validated @RequestBody Leader leader) {
        int iresult = leaderService.insertLeader(leader);
        return iresult;
    }

    @GetMapping(value = "/selectid/{id}")
    public Leader selectid(@PathVariable("id") int id) {
        Leader list = leaderService.selectid(id);
        return list;
    }

    @PutMapping
    public int editleader(@Validated @RequestBody Leader leader) {
        int iresult = leaderService.editleader(leader);
        return iresult;
    }
}

再然后是Service层? 先入LeaderService再入LeaderServiceImpl

LeaderService

代码如下

package com.example.newdemo.service;

import com.example.newdemo.bean.Leader;

import java.util.List;

public interface LeaderService {
    public List<Leader> selectAll();

    public List<Leader> selectRanKing(String Name);

    public int deleteRanKing(int rk);

    public int insertLeader(Leader leader);

    public Leader selectid(int id);

    public int editleader(Leader leader);

    }

LeaderServiceImpl

代码如下

package com.example.newdemo.service;

import com.example.newdemo.bean.Leader;
import com.example.newdemo.mapper.LeaderMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("leaderService")
public class LeaderServiceImpl implements LeaderService{
    @Autowired
    private LeaderMapper leaderMapper;

    @Override
    public List<Leader> selectAll() {
        return leaderMapper.selectAll();
    }

    @Override
    public List<Leader> selectRanKing(String Name) {
        return leaderMapper.selectRanKing(Name);
    }

    @Override
    public int deleteRanKing(int rk) {
        return leaderMapper.deleteRanKing(rk);
    }

    @Override
    public int insertLeader(Leader leader) {
        return leaderMapper.insertLeader(leader);
    }

    @Override
    public Leader selectid(int id) { return leaderMapper.selectid(id); }

    @Override
    public int editleader(Leader leader) {
        return leaderMapper.editleader(leader);
    }
}

Service层代码处理完成后转入到Mapper层,在Mapper层实现底层数据的操作,在Mapper层可简单的通过@Select@Insert@Update@Delete直接操作,也可以通过将底层操作封装到mapper.xml中,各有优缺点。该项目使用的是直接在Mapper中操作数据。

LeaderMapper

代码如下

package com.example.newdemo.mapper;

import com.example.newdemo.bean.Leader;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface LeaderMapper {
    @Select({
            "select",
            "id, leaderName, ranKing",
            "from leaderments"
    })
    List<Leader> selectAll();

    @Select({
            "select",
            "id, leaderName, ranKing",
            "from leaderments where leaderName = #{Name}"
    })
    List<Leader> selectRanKing(String Name);

    @Delete({
            "delete",
            "from leaderments where ranKing = #{rk}"
    })
    int deleteRanKing(int rk);

    @Insert({
            "insert into leaderments (leaderName, ranKing) values(#{leaderName}, #{ranKing})"
    })
    int insertLeader(Leader leader);

    @Select({
            "select",
            "id, leaderName, ranKing",
            "from leaderments where id = #{id}"
    })
    Leader selectid(int id);

    @Update({
            "update leaderments set leaderName = #{leaderName}, ranKing = #{ranKing} where id = #{id}"
    })
    int editleader(Leader leader);

}

Bean层的Leader实体

Leader

代码如下

package com.example.newdemo.bean;

public class Leader {
    private String id;
    private String leaderName;
    private Integer ranKing;
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getLeaderName() {
        return leaderName;
    }

    public void setLeaderName(String leaderName) {
        this.leaderName = leaderName;
    }

    public Integer getRanKing() {
        return ranKing;
    }

    public void setRanKing(Integer ranKing) {
        this.ranKing = ranKing;
    }
}

数据库表名称和结构见下图

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 22:41:23  更:2022-07-04 22:41:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:17:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码