【springboot+mybatis实现CURD模版项目-Jesus】

springboot+mybatis实现CURD模版项目-Jesus

    • STEP 1 项目创建
  •    1.1 新建Spring Initializr项目
  •    1.2 选择需要的依赖 springboot有2.7.2直接选272
    • STEP 2 配置更改
  •    2.1更改maven配置
  •    2.2 检查项目配置jdk、sdk、jre版本一致
  •    2.3 检查pom文件,Maven-Reload project构建下载包,不报红即可
  •    2.4 删除properties文件,改用yaml配置文件
  •    2.5 启动一下
    • STEP 3 实现业务CRUD
  •    3.1 库中建表
  •    3.2 项目结构
  •    3.3 实体类、controller层、service层、mapper数据访问层、分别写代码
  •    3.4 启动类增加注解

目的:创建一个新项目Jesus(基于idea2022),实现CRUD,该项目作为学习模版。

————————————————————————————————————————

STEP 1 项目创建

   1.1 新建Spring Initializr项目

  在这里插入图片描述

   1.2 选择需要的依赖 springboot有2.7.2直接选272

  

STEP 2 配置更改

   2.1更改maven配置

在这里插入图片描述

   2.2 检查项目配置jdk、sdk、jre版本一致

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

   2.3 检查pom文件,Maven-Reload project构建下载包,不报红即可

   Maven的 Plugins 报红,执行命令mvn dependency:resolve-plugins,该命令的作用是:解决依赖关系,根据POM文件,下载或者更新该项目所依赖的库文件。
   pom文件会报版本不匹配,报错搜一下更新成适配版本就行了,下面是最终可用的pom文件。
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>Jesus</artifactId><version>0.0.1-SNAPSHOT</version><name>Jesus</name><description>Jesus</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.2</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><mybatis.spring.boot.version>2.1.3</mybatis.spring.boot.version><java.version>1.8</java.version><mysql.version>8.0.29</mysql.version><druid.version>1.2.6</druid.version><commons.lang.version>2.6</commons.lang.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web-services</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.spring.boot.version}</version></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>${commons.lang.version}</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid.version}</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

   2.4 删除properties文件,改用yaml配置文件

application.yml

spring:profiles:active: dev

application-dev.yml

server:port: 8080spring:datasource:username: root【数据库名】password: zxy000123【数据库密码】url: jdbc:mysql://localhost:3306/zxy【库名称】?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTCdriver-class-name: com.mysql.jdbc.Drivermybatis:mapper-locations: classpath:mapping/*Mapper.xmltype-aliases-package: com.example.entity
#showSql
logging:level:com:example:mapper : debug

   2.5 启动一下

在这里插入图片描述
在这里插入图片描述

STEP 3 实现业务CRUD

   3.1 库中建表

CREATE TABLE `user` (`id` int(32) NOT NULL AUTO_INCREMENT,`userName` varchar(32) NOT NULL,`passWord` varchar(50) NOT NULL,`realName` varchar(32) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

   3.2 项目结构

   新建controller、entity、mapper、service文件夹在com.example.jesusu下
   新建mapping在resurces下
在这里插入图片描述

   3.3 实体类、controller层、service层、mapper数据访问层、分别写代码

entity—User.java

package com.example.jesus.entity;public class User {private Integer id;private String userName;private String passWord;private String realName;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassWord() {return passWord;}public void setPassWord(String passWord) {this.passWord = passWord;}public String getRealName() {return realName;}public void setRealName(String realName) {this.realName = realName;}@Overridepublic String toString() {return "User{" +"id=" + id +", userName='" + userName + '\'' +", passWord='" + passWord + '\'' +", realName='" + realName + '\'' +'}';}
}

Controller—UserController.java

package com.example.jesus.controller;import com.example.jesus.entity.User;
import com.example.jesus.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/testBoot")
public class UserController {@Autowiredprivate UserService userService;@RequestMapping("getUser/{id}")public String GetUser(@PathVariable int id){return userService.Sel(id).toString();}
}

Service—UserService.java

package com.example.jesus.service;import com.example.jesus.entity.User;
import com.example.jesus.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UserService {@AutowiredUserMapper userMapper;public User Sel(int id){return userMapper.Sel(id);}
}

Mapper—UserMapper.java

package com.example.jesus.mapper;import com.example.jesus.entity.User;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;@Repository
public interface UserMapper {User Sel(int id);
}

Mapper—UserMapping.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.jesus.mapper.UserMapper"><resultMap id="BaseResultMap" type="com.example.entity.User"><result column="id" jdbcType="INTEGER" property="id" /><result column="userName" jdbcType="VARCHAR" property="userName" /><result column="passWord" jdbcType="VARCHAR" property="passWord" /><result column="realName" jdbcType="VARCHAR" property="realName" /></resultMap><select id="Sel" resultType="com.example.entity.User">select * from user where id = #{id}</select></mapper>

   3.4 启动类增加注解

   加上注解用于给出需要扫描的mapper文件路径
   @MapperScan(“com.example.mapper”)

package com.example.jesus;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@MapperScan("com.example.jesus.mapper") //扫描的mapper
@SpringBootApplication
public class JesusApplication {public static void main(String[] args) {SpringApplication.run(JesusApplication.class, args);System.out.println("启动Jesus项目成功");}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/595975.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言中的乐观锁与悲观锁

改变一个数值的三个步骤 把想修改的数值从某个地方取出来将取出来的数值修改为期望值把修改后的数值保存到原来的地方 问题 如果在做第2步时&#xff0c;有另一个过程&#xff08;进程或线程&#xff09;对同一个数值进行同样的操作&#xff08;取值、修改&#xff09;&…

grep笔记240103

常用选项&#xff1a;&#xff1a; -i&#xff1a;忽略大小写进行匹配。 -v&#xff1a;反向匹配&#xff0c;只打印不匹配的行。 -n&#xff1a;显示匹配行的行号。 -r&#xff1a;递归查找子目录中的文件。 -l&#xff1a;只打印匹配的文件名。 -c&#xff1a;只打印匹配的行…

11-2 RHEL8配置YUM软件仓库及安装拼音输入法

配置本地YUM源 一、虚拟机关机>>虚拟机设置>>CD/DVD&#xff0c;关联ISO镜像文件&#xff0c;勾选“启动时连接”&#xff0c;点确定 二、开启虚拟机&#xff0c; 使用root用户登录。用df -h 命令可以看到光驱已经正常连接了。如果看不到/dev/sr0&#xff0c;需…

探索 Vue 实例方法的魅力:提升 Vue 开发技能(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Unity 关于点击不同物品移动并触发不同事件

关于点击不同物品触发不同事件 可以实现在界面中点击不同的物体&#xff0c;移动到物品附近位置&#xff0c;然后触发对应的事件。 首先建立一个公共管理的类&#xff1a; public class InteractionObject : MonoBehaviour {private NavMeshAgent PlayerAgent;private bool …

铁塔基站数字化管理监测解决方案

截至2023年10月&#xff0c;我国5G基站总数达321.5万个&#xff0c;占全国通信基站总数的28.1%。然而&#xff0c;随着5G基站数量的快速增长&#xff0c;基站的能耗问题也逐渐日益凸显&#xff0c;基站的用电给运营商带来了巨大的电费开支压力&#xff0c;降低5G基站的能耗成为…

vue +WebSDK_V3.3.0/本地调试和打包成dist部署还有所不同!!

1.在index.html中引入js文件 <!-- 实时对讲 --><script src"./static/js/jquery-1.7.1.min.js"></script><script src"./static/js/jsVideoPlugin-1.0.0.min.js"></script><script id"videonode" src"./s…

Object-c初步学习 四

1.category的用法 不修改对象源文件的方式下&#xff0c;给类添加方法 为Student类添加方法 // // NSObjectStudyCategory.h // #import <Foundation/Foundation.h> #import "Student.h" #pragma mark 类名后面的&#xff08;test&#xff09;代表Category…

CCF录用率怎么看?如何挑选合适的会议

写在前面 写此文是因为有同学问我如何确定自己能投稿的会议。首先&#xff0c;不建议直接用他人汇总好的数据&#xff08;截稿时间和录用率&#xff09;&#xff0c;如果遇到更新不及时的很有可能耽误自己的工作。 平常&#xff0c;我都会自己收集预计投稿时间的会议信息&…

6张思维导图,js基础(基本概念,操作符,语句,Date,函数,数组,字符串)

一&#xff0c;js基本概念 二 &#xff0c;js操作符 三&#xff0c;js基本语句 四&#xff0c;Date 常基本用方法汇总 五&#xff0c;数组基本及常用方法汇总 六&#xff0c;字符串基本及常用方法汇总 满满的都是干货。 附送250套精选项目源码 源码截图 源码获取&#xff1a;…

Ansible、Saltstack、Puppet自动化运维工具介绍

本文主要是分享介绍三款主流批量操控工具Ansible、Saltstack、Puppet主要对比区别&#xff0c;以及Ansible和saltstack的基础安装和使用示例&#xff0c;如果觉得本文对你有帮助&#xff0c;欢迎点赞、收藏、评论&#xff01; There are many things that can not be broken&am…

【Java干货教程】Stream流详解

一、Stream流的简介 1.1、Stream流的概述 Stream是Java 8 API添加的一个新的抽象&#xff0c;称为流Stream&#xff0c;以一种声明性方式处理数据集合&#xff08;侧重对于源数据计算能力的封装&#xff0c;并且支持序列与并行两种操作方式。 Stream流是从支持数据处理操作的…

Java读取Oracle的Clob类型数据,由Clob转String

问题场景&#xff1a; 从Oracle读取出来的字段是Clob类型数据&#xff0c;因需要对其进行操作&#xff0c;则转成字符串类型 调用方法&#xff1a; Clob clobDDL (Clob) map.get("ClobDDL"); String str ClobToString(clobDDL); 转化方法&#xff1a; /*** clob…

机器学习中的监督学习基本算法-线性回归简单介绍

机器学习中的监督学习算法有很多&#xff0c;如下所示&#xff1a; 监督学习算法:线性回归、逻辑回归、K-近邻算法(KNN)、BP神经网络、朴素贝叶斯算法、随机森林、决策树、支持向量机。 本小节主要重点讲解线性回归 线性回归 线性回归是一种用于建立和预测变量之间线性关系的…

npm发布js工具包

一、创建项目 1、在github上创建一个项目&#xff0c;然后拉取至本地&#xff0c;进入项目目录2、执行 npm init 生成json文件3、创建 src/index.ts 入口文件和 src/isObject.ts 工具方法 src/index.ts export { default as isObject } from ./isObject src/isObject.ts /…

[C#]yolov8-onnx在winform部署手势识别模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 是一个 SOTA 模型&#xff0c;它建立在以前 YOLO 版本的成功基础上&#xff0c;并引入了新的功能和改进&#xff0c;以进一步提升性能和灵活性。具体创新包括一个新的骨干网络、一个新…

专题一:递推与递归

递归 例题 递归实现指数型枚举 从 1∼n这 n个整数中随机选取任意多个&#xff0c;输出所有可能的选择方案。 输入格式 输入一个整数 n。 输出格式 每行输出一种方案。 同一行内的数必须升序排列&#xff0c;相邻两个数用恰好 1 个空格隔开。 对于没有选任何数的方案&#xff0c…

抖店申请流程是什么?

我是电商珠珠 想要入驻抖店的人很多&#xff0c;但是知道流程的新手却没有几个。 从开店资料到入驻流程&#xff0c;我来具体的跟大家讲一讲。 第一个&#xff0c;新手开店资质 1、营业执照 营业执照是入驻门槛之一&#xff0c;营业执照类型分为两类&#xff0c;一类为企业…

鸿蒙4.0开发实战(ArkTS)-闹钟制作

闹钟功能要求 展示指针表盘或数字时间。添加、修改和删除闹钟。展示闹钟列表&#xff0c;并可打开和关闭单个闹钟。闹钟到设定的时间后弹出提醒。将闹钟的定时数据保存到轻量级数据库。 闹钟主界面 闹钟界面包括当前时间、闹钟列表、添加闹钟子组件&#xff0c;具体包括以下…

共享企业文件数据信息:实用方法与技巧分享

在当下快节奏的企业办公生活中&#xff0c;如何有效且高效的进行企业文件数据信息共享&#xff0c;保持企业竞争力&#xff0c;是许多企业团队面临的问题。 诚然&#xff0c;社交媒体工具的出现可以缓解企业信息共享协作的痛点。然而&#xff0c;多平台工具的交叉使用又使企业…