我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java之SpringBoot怎么实现基本增删改查

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java之SpringBoot怎么实现基本增删改查

这篇文章主要讲解了“Java之SpringBoot怎么实现基本增删改查”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java之SpringBoot怎么实现基本增删改查”吧!

Java之SpringBoot怎么实现基本增删改查

根据上图所示,idea中我们有7个比较重要的模块需要建立

(1)controller包:如果学习过或者对SpringMVC有所了解的小伙伴,肯定知道,controller是控制层,相当于我们的接收浏览器信息并响应发送相关信息的地方,具体的还结合计算机网络相关知识,了解在浏览器中如何接收信息,并如何响应信息,在controller控制层下我们实现相关数据操纵(此处特别鸣谢我研究生生涯阶段的师兄给我讲解了很久关于Web编程方面的知识,收益良多。希望大家利用相关时间,多去查询资料和相关视频进行学习);
(2)entity包:这里存放我们的实体类,跟单纯学java里面建立类一模一样,没有区别;
(3)mapper包:SpringMVC中称之为持久层也就是(DAO层(数据访问对象)),这里可以直接对数据库进行操作,一般与第五个包mapping包连用;
(4)service包:SpringMVC中称之为业务逻辑层,所以这里存放的类都是处理相关的业务逻辑;
(5)mapping包:放在resources下面作为classpath,存放的mybatis文件,因为现在的SpringBoot集成性很强,把很多配置文件都可以放在一块,哪怕是没有太多的mybatis基础的小伙伴也可以进行学习。之所以说mapper包与mapping包是一起连用,是因为它们形成映射关系,它们两的结合使用来访问我们的数据库文件;
(6)application.yml:作为全局默认配置文件,适用于整个项目,要整合我们这么多的配置信息,这个配置文件肯定少不了(此处最好是使用yaml语言编写配置文件,因为编写相对而言简单明朗一些);
(7)application-dev.yml:这个算是具体某个环境的配置文件,具体要结合我们的实际项目。因为项目本身不只是开发环境,还有测试、生产等一系列环境。当我们做开发是用开发的环境配置application-dev.yml,当我们做测试的时候用测试的环境配置application-test.yml,当我们做生产的时候用的是生产的环境配置application-pro.yml。目前我们暂时只说开发环境,所以就只用到了一个配置文件application-dev.yml。具体的某个环境配置信息在使用时会覆盖applicaiton.yml的默认配置,所以,不用担心默认配置中的语句与环境配置中的语句发生冲突。

(1)程序入口

每个java程序都有程序入口,DemoApplication本身在我们初始化SpringBoot时就已经存在了,我们在这里不需要做过多的配置。

Java之SpringBoot怎么实现基本增删改查

package com.example.demo;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@MapperScan("com.example.demo.mapper")@SpringBootApplicationpublic class DemoApplication {    public static void main(String[] args) {        SpringApplication.run(DemoApplication.class, args);    }}

●@SpringBootApplication注解:是用来表示这是一个springboot项目的启动项类,目的是开启自动配置(其实它是继承于Configuration配置类,深解需要大家去剖析SpringBoot的原理)
●@MapperScan(“com.example.demo.mapper”)是为了扫描我们的mapper文件,进行有效访问相关数据库文件URL映射(这个注解的作用很大!)

(2)建立数据库文件

Java之SpringBoot怎么实现基本增删改查

Java之SpringBoot怎么实现基本增删改查

●相应的sql创建表语句如下所示:

CREATE TABLE `water` (  `id` int NOT NULL,  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,  `salary` double(10,2) NOT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_unicode_ci;

(3)建立User实体类

Java之SpringBoot怎么实现基本增删改查

package com.example.demo.entity;public class User {    private String name;    private Integer id;    private Double salary;    public User() {    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public Double getSalary() {        return salary;    }    public void setSalary(Double salary) {        this.salary = salary;    }    @Override    public String toString() {        return "User{" +                "name='" + name + '\'' +                ", id=" + id +                ", salary=" + salary +                '}';    }}

●这里想必大家不会陌生,这是纯Java基础都能编写出来的类,建立三个私有属性,一个空参构造器,相应的get、set方法,还重写了一个toString()方法。这里值得注意的点是在声明属性时,最好是使用包装类进行声明。
●在Java中跟mybatis相关的读取与录入,为何尽量使用包装类而不使用基本数据类型呢?
①在MySQL中没有给字段赋值默认为null,当你从数据库中查出来也是null,如果该字段在对应的Java代码中是int类型,null不能对应int类型,因为int代表的是基本数据类型,只能是基本的数字。
②实体类的属性可以给它赋值也可以不给它赋值,当你不给它赋值时,它拥有默认值,比如int的默认值就为0。但是主动为它设置值为0与它默认为0是两个不同的概念。比如,一个班的成绩:0代表某学生分数为0,而null代表这个学生该门考试没有成绩,这是两个不同的概念。

(4)建立UserMapper接口

Java之SpringBoot怎么实现基本增删改查

package com.example.demo.mapper;import com.example.demo.entity.User;import org.springframework.stereotype.Repository;import java.util.List;@Repositorypublic interface UserMapper {    //1.通过id查询用户信息    User getUser(int id);    //2.通过id删除用户信息    int delete(int id);    //3.更改用户信息    int update(User user);    //4.插入用户信息    int save(User user);    //5.查询所有用户信息    List<User> selectAll();}

●@Repository,注解它本身的作用便是标注数据访问组件,作为DAO对象,它将 DAO 导入 IoC 容器,并使未经检查的异常有资格转换为 Spring DataAccessException。通过这个注解能够报出更多发现不了的错误,更有利于对项目的维护和开发。其实@Repository不在接口上进行注明,我们的程序照样可以运行,因为在我们使用@MapperScan的时候,我们已经将我们的接口交给框架中的代理类,所以即便是我们不写,程序不会报错,只是我们在Service层写明接口的时候,IDEA会给出红色的波浪线。可以这样理解,标注@Repository是为了告诉编译器我将接口注入到了IoC容器了,你不要报错啦~
●相应地,写出增删查改和查询全部信息的五个方法。

(5)配置UserMapper.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.demo.mapper.UserMapper">    <resultMap id="BaseResultMap" type="com.example.demo.entity.User">        <result column="id" jdbcType="INTEGER" property="id" />        <result column="name" jdbcType="VARCHAR" property="name" />        <result column="salary" jdbcType="DOUBLE" property="salary" />    </resultMap>    <!--查询用户信息-->    <select id="getUser" resultType="com.example.demo.entity.User">        select * from water where id = #{id}    </select>    <!--删除用户信息-->    <delete id="delete" parameterType="int">        delete from water where id=#{id}    </delete>    <!--返回所有用户信息-->    <select id="selectAll"  resultType="com.example.demo.entity.User">        select * from water    </select>    <!--增加用户信息-->    <insert id="save" parameterType="com.example.demo.entity.User" >        insert into water        <trim prefix="(" suffix=")" suffixOverrides="," >            <if test="id != null" >                id,            </if>            <if test="name != null" >                name,            </if>            <if test="salary != null" >                salary,            </if>        </trim>        <trim prefix="values (" suffix=")" suffixOverrides="," >            <if test="id != null" >                #{id,jdbcType=INTEGER},            </if>            <if test="name != null" >                #{name,jdbcType=VARCHAR},            </if>            <if test="salary != null" >                #{salary,jdbcType=DOUBLE},            </if>        </trim>    </insert>    <!--根据id更改用户信息-->    <update id="update" parameterType="com.example.demo.entity.User">        update water        <set >            <if test="name != null" >                name = #{name,jdbcType=VARCHAR},            </if>            <if test="salary != null" >                salary = #{salary,jdbcType=DOUBLE},            </if>        </set>        where id = #{id,jdbcType=INTEGER}    </update></mapper>

●mapper namespace用于绑定mapper接口的,当你的namespace绑定接口后,你可以不用写接口实现类,mybatis会通过该绑定自动帮你找到对应要执行的SQL语句(通过mapper方法名进行绑定);
●resultMap 定义了一个id为BaseResultMap的标识,type代表使用哪种类作为我们所要映射的类;
●<select id="getUser" resultType="com.example.demo.entity.User">在这里中的id = “xxx” ,必须要和mapper接口方法名保持一致,如果不一致,程序会报相应的错误。

(6)建立UserService类

Java之SpringBoot怎么实现基本增删改查

package com.example.demo.service;import com.example.demo.entity.User;import com.example.demo.mapper.UserMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class UserService {    @Autowired    private UserMapper userMapper;    public User getUser(int id){            return userMapper.getUser(id);    }    public int delete(int id){        return userMapper.delete(id);    }    public int update(User user){        return userMapper.update(user);    }    public int save(User user){        return userMapper.save(user);    }    public List<User>  selectAll(){        return userMapper.selectAll();    }}

●这里我特别说明一下,private UserMapper userMapper既可以当做是引用数据类型,也可以作为接口对象进行使用,这里我们当接口对象使用(初次接触的时候肯定对这个会有些许疑问,很正常,因为我当时对于这个接口也纠结了很久哦);
●@Service表示我们在业务逻辑层进行操纵,属于自动配置的环节;
●相应的五个方法,通过对象得到相应返回值给UserMapper接口。

(7)建立UserController类

Java之SpringBoot怎么实现基本增删改查

package com.example.demo.controller;import com.example.demo.entity.User;import com.example.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import javax.xml.ws.Service;import java.util.List;@RestController@RequestMapping("/seven")public class UserController {    @Autowired    private UserService userService;    //通过id得到用户信息    @RequestMapping(value = "/getUser/{id}", method = RequestMethod.GET)    public String getUser(@PathVariable int id){        return userService.getUser(id).toString();    }    //通过id删除用户信息    @RequestMapping(value = "/delete", method = RequestMethod.GET)    public String delete(int id){        int result = userService.delete(id);        if(result >= 1){            return "删除成功!";        }else{            return "删除失败!";        }    }    //更改用户信息    @RequestMapping(value = "/update", method = RequestMethod.GET)    public String update(User user){        int result = userService.update(user);        if(result >= 1){            return "更新成功!";        }else{            return "更新失败!";        }    }    //插入用户信息    @RequestMapping(value = "/insert", method = RequestMethod.GET)    public int insert(User user){        return userService.save(user);    }    //查询所有用户的信息    @RequestMapping(value = "/selectAll")    @ResponseBody   //理解为:单独作为响应体,这里不调用实体类的toString方法    public List<User>  listUser(){        return userService.selectAll();    }}

●@RestController注解:就表示我们在控制层模块。控制层是作为SpringMVC最重要的一个环节,进行前端请求的处理,转发,重定向,还包括调用Service方法;
●@RequestMapping注解:处理请求和控制器方法之间的映射关系;
●@ResponseBody注解:将返回的数据结构转换为JSON格式响应到浏览器(这里说得比较笼统,只是简单滴给大家说明一下,水平还不够,认识还不深,不到之处还请见谅!);
●更多的注解解释,还需要大家多去学习一下SpringMVC和SpringBoot,这里面会详细地介绍,在这里我只是做了很粗略的说明而已(本人也是正接触不久,正在努力学习当中)。

(8)配置application.yml文件

Java之SpringBoot怎么实现基本增删改查

spring:  profiles:    active: dev

●语句很简单,指明我们要使用的开发环境配置文件

(9)配置application-dev.yml

Java之SpringBoot怎么实现基本增删改查

#服务器端口配置server:  port: 8081#数据库配置spring:  datasource:    username: 数据库名称    password: 账号密码    url: jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf-8&nullCatalogMeansCurrent=true&useSSL=true&&serverTimezone=Asia/Shanghai    driver-class-name: com.mysql.cj.jdbc.Driver#mybatis配置mybatis:  mapper-locations: classpath:mapping/*.xml  type-aliases-package: com.example.demo.entity#showSQLlogging:  level:    com.example.demo.entity: debug

●在开发配置文件当中,我们配置好我们的服务器端口号、数据库的配置、mybatis的配置和如何展示我们的Sql;
●其中要注意的是,数据库的配置中的username和password使用我们安装MySQL数据库时使用的账号名称和密码,url中的3306/紧跟着我们的数据库名称,如果建立的数据库名称不一致,也需要进行修改。

(10)效果展示

通过以上9个步骤,我们从第(1)个步骤程序入口处点击运行按钮,在浏览器中输入相应指令即可得到不同的展示信息:(到这一步,大概知道为啥要使用@MapperScan注解了吧,可以直接将扫描到的包文件交到代理类中,SpringBoot就是很人性化的框架!)

Java之SpringBoot怎么实现基本增删改查

①查询操作:http://localhost:8081/seven/getUser/1

Java之SpringBoot怎么实现基本增删改查

②删除操作:http://localhost:8081/seven/delete?id=14

Java之SpringBoot怎么实现基本增删改查

③更改操作:http://localhost:8081/seven/update?id=1&name=小丸子&salary=12000

Java之SpringBoot怎么实现基本增删改查

④插入操作:http://localhost:8081/seven/insert?id=15&name=浩子&salary=13000

Java之SpringBoot怎么实现基本增删改查

⑤查询全部用户信息:http://localhost:8081/seven/selectAll

Java之SpringBoot怎么实现基本增删改查

感谢各位的阅读,以上就是“Java之SpringBoot怎么实现基本增删改查”的内容了,经过本文的学习后,相信大家对Java之SpringBoot怎么实现基本增删改查这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java之SpringBoot怎么实现基本增删改查

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java之SpringBoot怎么实现基本增删改查

这篇文章主要讲解了“Java之SpringBoot怎么实现基本增删改查”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java之SpringBoot怎么实现基本增删改查”吧!根据上图所示,id
2023-07-05

SpringBoot怎么整合Mongodb实现增删查改

今天小编给大家分享一下SpringBoot怎么整合Mongodb实现增删查改的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一
2023-06-30

怎么用eclipse实现Java增删查改

要使用Eclipse实现Java的增删查改操作,你可以按照以下步骤进行:1. 创建一个Java项目:打开Eclipse,选择File -> New -> Java Project,输入项目名称并点击Finish。2. 创建一个Java类:在
2023-08-14

基于PHP怎么实现原生增删改查

这篇文章主要讲解了“基于PHP怎么实现原生增删改查”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于PHP怎么实现原生增删改查”吧!一、代码1、sql-- phpMyAdmin SQL Du
2023-06-30

如何实现java链表中的基本操作(增、删、查、改)

链表也是一个线性的数据结构,与数组不同的是,链表在内存中的存储方式是随机存储。下面给出涵盖链表四个操作的一个完整的例子,有几点需要注意的是:(一)在增删改查之前,都需要对给出的下标进行边界判断;(二)增加一个名为last的节点,可以方便在链表的尾部进行操作,省
如何实现java链表中的基本操作(增、删、查、改)
2020-02-26

java怎么实现数组的增删改查

本篇内容主要讲解“java怎么实现数组的增删改查”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java怎么实现数组的增删改查”吧!目录1.一维数组2.数组的扩容3.数组的复制1.直接将数组赋值给
2023-06-20

MongoDB怎么实现增删改查

这篇“MongoDB怎么实现增删改查”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MongoDB怎么实现增删改查”文章吧。一
2023-06-30

怎么使用Nodejs连接Mysql实现基本的增删改查操作

这篇文章将为大家详细讲解有关怎么使用Nodejs连接Mysql实现基本的增删改查操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。接下来示例代码的主要技术点包括基础框架KoaKoa-routerkoa-n
2023-06-15

SpringBoot怎么整合Mybatis与thymleft实现增删改查功能

这篇文章主要介绍“SpringBoot怎么整合Mybatis与thymleft实现增删改查功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot怎么整合Mybatis与thymlef
2023-07-04

Java双向链表的增删改查怎么实现

这篇文章主要介绍“Java双向链表的增删改查怎么实现”,在日常操作中,相信很多人在Java双向链表的增删改查怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java双向链表的增删改查怎么实现”的疑惑有所
2023-07-02

PHP怎么实现增删改查功能

这篇文章主要讲解了“PHP怎么实现增删改查功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP怎么实现增删改查功能”吧!sql:-- phpMyAdmin SQL Dump-- vers
2023-06-29

winform增删改查功能怎么实现

在 Winform 中实现增删改查功能,可以按照以下步骤进行操作:1. 设计界面:在 Winform 窗体上添加相应的控件,如文本框、按钮、表格等,用于输入和显示数据。2. 创建数据库连接:使用 ADO.NET 或 Entity Frame
2023-09-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录