基于springboot用户信息增删改查源码【附源码】

基于springboot+mybatis+mysql+layui+html用户信息增删改查源码

本项目用于学习使用。

下载地址: 文件分享

点我下载 

开发工具:

idea   mysql   jdk1.8   navcat

开发技术:

后端:springboot+mybatis

前端:ayui+html

 

 

package com.zyyt.springboot.controller;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.zyyt.springboot.bean.ApiResult;
import com.zyyt.springboot.bean.Student;
import com.zyyt.springboot.service.StudentService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

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

@Controller
@RequestMapping("/student")
public class StudentController {

    @Resource
    private StudentService studentService;

    private String prefix = "student";

    @GetMapping()
    public String notice()
    {
        return prefix + "/list";
    }
    /**
     * 学生信息列表
     * @param student
     * @return
     */
    @RequestMapping("/list")
    @ResponseBody
    public Object list(int page, int limit,Student student){
        page = Math.max(page, 1);
        limit = limit < 1 ? 10: limit;
        Page<Student> studentpage = PageHelper.startPage(page, limit);
        studentService.queryStudentList(student);
        //重新封装返回参数,用于页面显示start
        Map<String, Object> result = new HashMap<>();
        result.put("data",studentpage.getResult());
        result.put("code",0);
        result.put("count",studentpage.getTotal());
        result.put("msg","学生信息列表");
        //重新封装返回参数,用于页面显示end
        return result;
    }
    /**
     * 修改公学生信息
     */
    @GetMapping("/edit")
    public String edit(Long id, ModelMap mmap) {
        Student student = studentService.queryStudentById(id);
        mmap.put("student", student);
        return prefix + "/edit";
    }
    /**
     * 学生信息查看
     * @param id 主键ID
     * @return
     */
    @RequestMapping("/queryStudentById")
    @ResponseBody
    public Object queryStudentById(long id) {
        Student student = studentService.queryStudentById(id);
        return student!=null ? ApiResult.success(student) : ApiResult.fail("学生信息不存在");
    }
    /**
     * 学生信息新增
     * @param student
     * @return
     */
    @RequestMapping("/addStudent")
    @ResponseBody
    public Object addStudent(@Validated Student student) {
        int cnt =  studentService.addStudent(student);
        return cnt>0 ? ApiResult.success("新增成功") : ApiResult.fail("新增失败");
    }
    /**
     * 学生信息更新
     * @param student
     * @return
     */
    @RequestMapping("/updateStudent")
    @ResponseBody
    public Object updateStudent(@Validated Student student) {
        int cnt =  studentService.updateStudentById(student);
        return cnt>0 ? ApiResult.success("修改成功") : ApiResult.fail("修改失败");
    }
    /**
     * 学生信息删除
     * @param id 主键ID
     * @return
     */
    @RequestMapping("/deleteStudentById")
    @ResponseBody
    public Object deleteStudentById(long id) {
        int cnt  =  studentService.deleteStudentById(id);
        return cnt>0 ? ApiResult.success("删除成功") : ApiResult.fail("删除失败");
    }
}

 

前端代码:

list

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>springboot+mybatis+mysql+layUI+thymeleaf测试</title>
    <link rel="stylesheet" type="text/css" href="https://www.layuicdn.com/layui/css/layui.css" />
    <script src="https://www.layuicdn.com/layui/layui.js"></script>
</head>
<body>
<!-- 内容主体 -->
<div class="main">
    <div class="books-pane">
        <button type="button" class="layui-btn layui-btn-fluid" id="btn_add"><i class="layui-icon">&#xe608;</i> 添加</button>
    </div>
    <div class="books-pane">
        <table class="layui-hide" id="student_table" lay-filter ="student_table"></table>
        <!--工具栏模板:-->
        <div type="text/html" id="toolbar" style="display: none;">
            <form class="layui-form layui-form-pane" lay-size="lg" style="text-align: left;height: 36px">
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label">关键字搜索</label>
                        <div class="layui-input-inline">
                            <input placeholder="姓名" type="text" name="keyword" autocomplete="off" class="layui-input">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <button class="layui-btn" lay-submit lay-filter="*">搜索</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>
<script type="text/html" id="lineBtns">
    <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script>
    layui.use(['element', 'table', 'form', 'jquery','laydate'], function () {
        var element = layui.element; //导航的hover效果、二级菜单等功能,需要依赖element模块
        var table = layui.table;
        var form = layui.form;
        var $ = layui.jquery;
        table.render({
            elem: '#student_table'
            , url: '/student/list'
            , toolbar: '#toolbar'
            , title: '学员信息列表'
            , cols: [
                [
                    {field: 'id',  title: '序号', sort: true}
                    , {field: 'name',title: '姓名'}
                    , {field: 'sex', title: '性别', align: "center", templet: function(d){if(d.sex == 0){return '男'}else{return '女'}}}
                    , {field: 'age', title: '年龄', sort: true}
                    , {field: 'time', title: '出生日期', sort: true, templet : "<div>{{layui.util.toDateString(d.time, 'yyyy-MM-dd')}}</div>"}
                    , {field: 'remarks', title: '简介'}
                    , {fixed: 'right',  align:'right', toolbar: '#lineBtns'}
                ]
            ], page: true
        });
        form.on('submit(*)', function (data) {
            layer.msg("根据姓名查找");
            table.reload('student_table', {
                url: '/student/list'
                , where: {name: data.field.keyword} //设定异步数据接口的额外参数
            });
            return false;
        });
        //监听行工具事件
        table.on('tool(student_table)', function(obj){ //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
            var data = obj.data,//获得当前行数据
            layEvent = obj.event; //获得 lay-event 对应的值
            if(layEvent === 'detail'){
                layer.msg('查看操作');
            } else if(layEvent === 'del'){
                layer.confirm('确定要删除当前信息吗?', function(index){
                    //向服务端发送删除指令
                    $.getJSON('/student/deleteStudentById',{id: data.id}, function(data){
                        if (data.status === 200) {
                            table.reload('student_table', {
                                url: '/student/list'
                            });
                            layer.msg(data.data);
                        } else if (data.status === 201) {
                            layer.msg(data.data);
                        }
                    });
                });
            } else if(layEvent === 'edit'){
                layer.open({
                    type: 2 ,
                    title:"修改学员信息",
                    area: ['500px', '600px'],
                    shadeClose:false,
                    content: "/student/edit?id="+data.id,
                });
            }
        });
        /**
         *   添加
         */
        $('#btn_add').on('click',function(index){
            layer.open({
                type: 2 ,
                title:"添加学员信息",
                area: ['500px', '600px'],
                shadeClose:false,
                content: "/student/add.html",
            });
        });
    });
</script>
</body>
</html>

add:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" type="text/css" href="https://www.layuicdn.com/layui/css/layui.css" />
    <script src="https://www.layuicdn.com/layui/layui.js"></script>
</head>
<body>
<div class="site-text" style="margin: 5%;">
    <form class="layui-form layui-form-pane" onsubmit="return false">
        <div class="layui-form-item">
            <div class="layui-form-item">
                <label class="layui-form-label">姓名</label>
                <div class="layui-input-block">
                    <input class="layui-input" type="text" name="name" lay-verify="required">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">性别</label>
                <div class="layui-input-block">
                    <input type="radio" name="sex" value="0" title="男" checked>
                    <input type="radio" name="sex" value="1" title="女">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">年龄</label>
                <div class="layui-input-block">
                    <input class="layui-input" type="text" name="age" lay-verify="required|number">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">出生年份</label>
                <div class="layui-input-block">
                    <input type="text" class="layui-input" id="time" name="time" placeholder="yyyy-MM-dd" lay-verify="required|date">
                </div>
            </div>
            <div class="layui-form-item layui-form-text">
                <label class="layui-form-label">备注</label>
                <div class="layui-input-block">
                    <textarea placeholder="请输入内容" class="layui-textarea" name="remarks" lay-verify="required"></textarea>
                </div>
            </div>
            <div class="layui-form-item">
                <div class="layui-input-block">
                    <button class="layui-btn" lay-submit lay-filter="addStudent">立即提交</button>
                    <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                </div>
            </div>
        </div>
    </form>
    <script>
        layui.use(['element', 'table', 'form', 'jquery','laydate'], function(){
            var form = layui.form;
            var $ = layui.jquery;
            var table = layui.table;
            //监听提交
            form.on('submit(addStudent)', function(data){
                $.ajax({
                    url: "../student/addStudent",
                    type: "POST",
                    data: data.field,
                    success: function (data) {
                        if (data.status === 200) {
                            layer.alert(data.data, { shift: -1 }, function () {
                                // 获得frame索引
                                var index = parent.layer.getFrameIndex(window.name);
                                //关闭当前frame
                                parent.layer.close(index);
                                //修改成功后刷新父界面
                                window.parent.location.reload();
                            });
                        } else if (data.status === 201) {
                            layer.msg(data.data);
                        }
                    },
                    error: function (xhr, status, error) {
                        layer.msg("网络出错")
                    }
                });
                return false;
            });
            /**
             * 时间插件
             **/
            var laydate = layui.laydate;
            laydate.render({
                elem: '#time'
            });
        });
    </script>
</div>
</body>
</html>

edit:

<!DOCTYPE html>
<html lang="zh-cn" xmlns:th="http://www.thymeleaf.org">
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" type="text/css" href="https://www.layuicdn.com/layui/css/layui.css" />
    <script src="https://www.layuicdn.com/layui/layui.js"></script>
</head>
<body>
<div class="site-text" style="margin: 5%;">
    <form class="layui-form layui-form-pane" onsubmit="return false" th:object="${student}">
        <input name="id" th:field="*{id}"  type="hidden">
        <div class="layui-form-item">
            <div class="layui-form-item">
                <label class="layui-form-label">姓名</label>
                <div class="layui-input-block">
                    <input class="layui-input" type="text" name="name" th:field="*{name}" lay-verify="required">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">性别</label>
                <div class="layui-input-block">
                    <input type="radio" name="sex" th:field="*{sex}" value="0" title="男" checked>
                    <input type="radio" name="sex" th:field="*{sex}" value="1" title="女">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">年龄</label>
                <div class="layui-input-block">
                    <input class="layui-input" type="text" name="age" th:field="*{age}" lay-verify="required|number">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">出生年份</label>
                <div class="layui-input-block">
                    <input type="text" class="layui-input" id="time" name="time" th:field="*{time}" placeholder="yyyy-MM-dd" lay-verify="required|date">
                </div>
            </div>
            <div class="layui-form-item layui-form-text">
                <label class="layui-form-label">备注</label>
                <div class="layui-input-block">
                    <textarea placeholder="请输入内容" class="layui-textarea" name="remarks" th:field="*{remarks}" lay-verify="required"></textarea>
                </div>
            </div>
            <div class="layui-form-item">
                <div class="layui-input-block">
                    <button class="layui-btn" lay-submit lay-filter="updateStudent">立即提交</button>
                    <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                </div>
            </div>
        </div>
    </form>
    <script>
        layui.use(['element', 'table', 'form', 'jquery','laydate'], function(){
            var form = layui.form;
            var $ = layui.jquery;
            var table = layui.table;
            //监听提交
            form.on('submit(updateStudent)', function(data){
                $.ajax({
                    url: "../student/updateStudent",
                    type: "POST",
                    data: data.field,
                    success: function (data) {
                        if (data.status === 200) {
                            layer.alert(data.data, { shift: -1 }, function () {
                                // 获得frame索引
                                var index = parent.layer.getFrameIndex(window.name);
                                //关闭当前frame
                                parent.layer.close(index);
                                //修改成功后刷新父界面
                                window.parent.location.reload();
                            });
                        } else if (data.status === 201) {
                            layer.msg(data.data);
                        }
                    },
                    error: function (xhr, status, error) {
                        layer.msg("网络出错")
                    }
                });
                return false;
            });
            /**
             * 时间插件
             **/
            var laydate = layui.laydate;
            laydate.render({
                elem: '#time'
            });
        });
    </script>
</div>
</body>
</html>

sql:

-- ----------------------------
DROP TABLE IF EXISTS `t_student`;
CREATE TABLE `t_student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL COMMENT '姓名',
  `age` int(11) DEFAULT NULL COMMENT '年龄',
  `sex` int(11) DEFAULT NULL COMMENT '性别',
  `time` datetime DEFAULT NULL COMMENT '出生年月',
  `remarks` text COMMENT '备注',
  `createTime` datetime DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=134 DEFAULT CHARSET=utf8mb4 COMMENT='主键';

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot 是一个快速开发 Java 应用程序的框架,而 MyBatis 是一个优秀的持久层框架。将它们整合在一起可以方便地进行数据库操作,下面以整合实现表的增删改查为例,给出源码下载。 首先,我们需要创建一个 Spring Boot 项目并添加 MyBatis 依赖。在 pom.xml 文件中添加以下依赖项: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> ``` 然后在 application.properties 配置文件中添加数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 接下来创建一个实体类,例如 User: ```java public class User { private Long id; private String name; // 省略 getter 和 setter 方法 } ``` 再创建一个 Mapper 接口和对应的映射文件,例如 UserMapper 和 UserMapper.xml,在映射文件中编写对应的 SQL 语句。 最后,在 Controller 中注入 UserMapper,并编写增删改查的方法,例如: ```java @Autowired private UserMapper userMapper; @GetMapping("/users") public List<User> getAllUsers() { return userMapper.getAllUsers(); } @PostMapping("/users") public void addUser(@RequestBody User user) { userMapper.addUser(user); } // 省略删除和修改的方法 ``` 以上就是整合 Spring BootMyBatis 实现表的增删改查的方法。大家可以根据需求自行修改和完善。可以通过以下链接下载整合的源码:[Spring Boot 整合 MyBatis 源码](example.com)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿毕业分享网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值