范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

IDEASpringBootplus实现增删改查(CRUD)

  一、前言Mybatis :数据持久化框架 Mybatis-Plus :对Mybatis进行了增强,它封装了基本的增删改查操作,使我们自己不需要再去写很多重复的代码,大大解放了生产力! 二、创建项目新建项目时选择Spring Initializer。 也可以选择maven新建,但是不建议新手,因为要自己导入依赖,会给自己搞懵 打开IDEA,选择New Project >>> 创建项目文件结构、选择jdk版本 一般选择Java version8 然后下一步 Next 选择项目需要的依赖 首先点击web选择spring web,再点击SQL选择MySQL driver 等,然后再一路Finish到新建完成。
  查看项目 修改pom.xml文件 <?xml version="1.0" encoding="UTF-8"?>      4.0.0              org.springframework.boot         spring-boot-starter-parent         2.6.5                    com.hao     demo     0.0.1-SNAPSHOT     demo     demo              1.8                                org.springframework.boot             spring-boot-starter-web                                        org.springframework.boot             spring-boot-devtools                                        org.projectlombok             lombok                                        mysql             mysql-connector-java                                        com.baomidou             mybatis-plus-boot-starter             3.2.0                                        org.springframework.boot             spring-boot-starter-jdbc                                                           org.springframework.boot                 spring-boot-maven-plugin                             
  创建成功后删除src下面的test目录
  说明:
  中 spring-boot-starter-parent 帮我们做了SpringBoot相关依赖包的版本号管理,所以有些依赖包不需要我们自己去写
  但像 mybatis-plus-boot-starter 它是不属于spring-boot相关的, parent中没有做版本号管理,所以还需要手动写一下。 三、目录结构
  四、sql和application.yml
  4.1 导入sql语句 CREATE TABLE `user_info` ( 	`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT "用户id", 	`username` VARCHAR(20) NOT NULL DEFAULT "" COMMENT "用户名" COLLATE "utf8mb4_general_ci", 	`password` VARCHAR(100) NOT NULL DEFAULT "" COMMENT "密码" COLLATE "utf8mb4_general_ci", 	`create_time` DATETIME NOT NULL COMMENT "创建时间", 	PRIMARY KEY (`id`) USING BTREE );
  说明:创建一个数据库,然后运行上述sql语句,生成用户表,主要就下面四个字段 id 用户id 自增主键 username 用户名 password 密码 create_time 创建时间
  4.2 修改application.yml配置文件
  把文件里的application.properties修改成yml格式 yml更加便于管理,看起来也更舒适 server:   port: 8887 #端口号可以自定义 spring:   devtools:    #这个就是前面我下的热部署,自行了解     restart:       enabled: true  #开启       additional-paths: src/main/java        exclude: WEB-INF/**   freemarker:     cache: false     datasource:     driver-class-name: com.mysql.cj.jdbc.Driver     username: root #自己的数据库账号     password: 123456  #自己的密码     url: jdbc:mysql:///test?characterEncoding=utf-8&serverTimezone=UTC  #"?"号前面是数据库名称 我的是test   "///"默认为localhost:3306 如果你的不是默认端口自行修改    #配置MP和在控制台打印sql语句 mybatis-plus:   mapper-locations: classpath*:/mapper/**/*.xml   configuration:     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  logging:   level:     com:       hao:         mapper: debug  //这里根据自己的路径添加debug 五,修改程序的启动入口类DemoApplication
  作用是扫描到mapper里面中的类,注意路径要和项目中实际路径一致
  @MapperScan(value = "com.对应自己的路径.mapper") package com.hao;  import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @MapperScan("com.hao.mapper") @SpringBootApplication public class DemoApplication {      public static void main(String[] args) {         SpringApplication.run(DemoApplication.class, args);     }  }  六,在实体类包中新建UserInfo.java,使之与数据库中的字段一一对应 我的包叫pojo 也可以叫entitypackage com.hao.pojo;  import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data;  import java.time.LocalDateTime; //@Data 就是lombok 的注解 自动生成了set get @Data  @TableName(value = "user_info")  //@TableName 对应你的数据库表名 public class UserInfo {     @TableId(value = "id",type = IdType.AUTO)  //@TableId 说明这条数据自增长也是对应数据库自增长的     private Integer id;     private String username;     private String password;     private LocalDateTime createTime; }
  说明:这里类成员变量和数据库字段对应,Mybatis自动做了驼峰法到下划线的转换
  如:数据库 create_time -> 类变量 createTime 七,在mapper包中新建UserInfoMapper接口package com.hao.mapper;  import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hao.pojo.UserInfo;  public interface UserInfoMapper extends BaseMapper { }
  说明:BaseMapper 类封装了dao层基本的增删改查操作 八,在src/main/resources/maping文件夹下新建UserInfoMapper的映射文件UserInfoMapper.xml<?xml version="1.0" encoding="UTF-8" ?>    
  说明:这里的namespace和上述的UserInfoMapper路径对应一致 九,在service里新建 impl和UserInfoService 接口类package com.hao.service;  import com.baomidou.mybatisplus.extension.service.IService; import com.hao.pojo.UserInfo;  public interface UserInfoService extends IService { }
  说明:这里IService封装了service层基本的增删改查 十,在service里的impl新建UserInfoServiceImpl 类package com.hao.service.impl;  import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hao.mapper.UserInfoMapper; import com.hao.pojo.UserInfo; import com.hao.service.UserInfoService; import org.springframework.stereotype.Service;  @Service public class UserInfoServiceImpl extends ServiceImpl implements UserInfoService { }  十一,在controller里新建 UserInfoController类package com.hao.controller;  import com.hao.pojo.UserInfo; import com.hao.service.UserInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*;  import java.time.LocalDateTime; import java.util.List;  @RestController @RequestMapping("/userInfo") public class UserInfoController {     @Autowired     private UserInfoService userInfoService;      //增加     @PostMapping("/add")     public Boolean add(@RequestBody UserInfo userInfo) {         userInfo.setCreateTime(LocalDateTime.now());         return userInfoService.save(userInfo);     }      //删除     @GetMapping("delete/{id}")     public Boolean delete(@PathVariable Integer id) {         return userInfoService.removeById(id);     }      //修改     @PostMapping("/update")     public Boolean update(@RequestBody UserInfo userInfo) {         return userInfoService.updateById(userInfo);     }      //查询     @GetMapping("/get/{id}")     public UserInfo get(@PathVariable Integer id) {         return userInfoService.getById(id);     }      //查询全部     @GetMapping("/list")     public List list() {         return userInfoService.list();     }  }
  说明:增删改查接口,基本上不需要自己写sql,直接调用Mybatis-Plus封装好的接口。  没啥好讲的 十二,使用Postman进行测试
  到这里就完成了增删改查操作,接下来我们对上面的代码在Postman中进行验证
  1.新增一条信息 http://localhost:8887/userInfo/add
  2.通过用户id删除用户 http://localhost:8887/userInfo/delete/215
  3.根据用户id更新用户信息 http://localhost:8887/userInfo/update?id=1
  这里要注意要用JSON的方式写参数
  4.通过用户id获取信息: http://localhost:8887/userInfo/get/1
  5.打印所有信息 http://localhost:8887/userInfo/list
  三条信息全部打印出来了
  原文链接:IDEA SpringBoot-Mybatis-plus 实现增删改查(CRUD) - wnrun - 博客园

策略游戏新作铁血联盟3发布公告,预告片正式发布今天THQNordic公布了铁血联盟系列游戏新作铁血联盟3,在发布游戏新消息的同时还公布了游戏的预告片和相关截图,一起来看看详情吧!在铁血联盟3中,玩家将化身为雇佣兵展开战斗和冒险日本TSUTAYA游戏周榜公布破晓传说第一瓦里奥第二今天日本TSUTAYA商店发布了上一周,也就是在9月13日到9月19日期间的游戏销量排行榜,其中可以看到销量冠军仍然是破晓传说PS版,PS5版本的该作则排在第四位,足见破晓传说的受PCGamer盘点2021年PC游戏佳作,哪个是你的菜?每年都有无数的PC游戏和玩家们见面,无论是3A大作还是独立佳作都能伴随玩家们度过一段美好的时间,今天和小编一起来看看PCGamer盘点的2021年PC游戏佳作,看其中又没有你的菜。Steam每日特惠忍龙莱莎极品飞车等游戏史低优惠价Steam平台经常有很多优惠活动,除了特殊节日的大型优惠活动之外,还有周一收伞和发行商周末等日常特惠活动,几乎是只要你想找一定能找到优惠活动。毕竟限时优惠活动如果不买,那就等于是亏刺猬索尼克游戏卡以43万美元拍卖成交,业界震动最近的一次拍卖中,美版MD经典游戏刺猬索尼克以43万零500美元的高价成交,也引起了游戏业界的震动。目前还不清楚究竟是哪位买家收购了这盘游戏卡。而索尼克之父中裕司在自己的推特上发文华为畅享20Pro荒野乱斗城市总决赛将引爆!精彩连连看近日,华为畅享20Pro与荒野乱斗联合举办华为线下体验店城市赛,经过激烈角逐后,现已迎来总决赛的比拼。在这场比赛中,不仅让许多玩家找到了快乐游戏时光,更让不少用户通过华为畅享20P前置4K拍大片vivoS系列助力少数民族年轻人展示真自我科技的进步与发展,让现在的年轻人在生活中玩转时尚与潮流,譬如流行的短视频文化,每个人都可以参与其中,而这仅仅只需要一部手机。最近vivoS系列手机就通过一部4K短片展示了少数民族年一加8T正式发布硬件升级明显,价格让人意外机身搭配了6。55英寸柔性AMOLED120Hz高刷屏,前后双光感,8192级自动亮度调节,高通865处理器。相机后置4800万主摄1600万超广角500万微距200万人像四摄,前华为FreeBudsPro智慧动态降噪体验如何?用了回不去由于工作和住处相隔较远,我通勤基本都是靠地铁,每天通勤路上的噪音都非常大,因此一直想着给自己换一款降噪耳机。前段时间,我看到华为推出了支持智慧动态降噪的华为FreeBudsPro无眼保健操开始啦,开学季推荐几款十分养眼的5G手机智能手机发展到今天,其硬件配置的发展速度已经远超我们的想象,我们在追求强悍性能的同时,也开始综合考虑产品的综合体验。现在的手机不仅可以满足我们日常工作和学习的需求,同时还在很多场景锐薄绝杀,满血出击荣耀首款游戏本27日零点首销2020年9月16日,主题为生活与你,一起升级第二季的荣耀智慧生活新品发布会在北京正式召开,其中备受用户期待的荣耀猎人游戏本V700在此次发布会上正式亮相!官方售价7499元起,9
腾讯在中国互联网的江湖地位2021年的中国互联网注定是一个寒冬,流量红利见顶,资本整体看衰,政策监管加强等等都在一步步束缚互联网公司的扩张,作为中国互联网公司双极之一的腾讯各项业务线的现状是什么样的,以后的注意!这15款APP涉嫌隐私不合规,未征同意就收集信息国家计算机病毒应急处理中心近期通过互联网监测发现15款移动应用存在隐私不合规行为,违反网络安全法个人信息保护法相关规定,涉嫌超范围采集个人隐私信息。1未向用户明示申请的全部隐私权限年底该兑现各种承诺了开源眼看就要到年末了,一串flag要对象,对于投行大白来说,有两个承诺,一个是乌托邦系列的最后一篇文章,一个是开源项目,文章慢慢写,先把开源项目整上去。对于开源项目,计划是一系列下载即vue视频播放vueplayer安装npminstallvuevideoplayerS配置main。jsimportVideoPlayerfromvuevideoplayerrequire(video。jsdis数字经济建设又一重要方向有新突破!低轨通信卫星批产后,还有哪些方向值得布局?财联社1月19日讯,近日,数字经济的建设因一则重磅文件来到市场关注的风口浪尖,概念板块掀起涨停潮。在这份文件中,除了网络安全数字货币等,也提到了积极稳妥推进空间信息基础设施演进升级数字化经济数字经济,是一个长逻辑,数字化,信息化,不是一两天就完成的,计算机已经有几十年历史了,现在我们还在提数字化,对吧?这是一个长逻辑。国家给的目标是,到2025年,数字经济要增长5倍,爱奇艺app严重毒害儿童作为一个孩子的父亲,我满怀愤慨,也深感危机地向大家反映爱奇艺平台播放内容不适,严重毒害儿童的问题。事情的起因是这样的一直以来,我的孩子每天晚上7点左右都会在平板电脑上通过爱奇艺AP骁龙888手机清仓促销,价格直降千元以上,哪款性价比最高?红米k40pro性价比最高。RedmiK40Pro正面搭载了一块6。67英寸24001080P直屏,并支持最高120Hz刷新率,屏幕材质为三星E4,拥有比E3材质更高的亮度更低的功游戏本价格突然雪崩?其实一切早有预兆昨晚小雷闲而无事打开拼多多,打算看看百亿补贴又有什么好东西的时候,眼睛突然就瞄到了联想拯救者几个大字,喔?游戏本也有折扣?让我看看什么价?结果不看不知道一看吓一跳,Ryzen758你手机里装了哪些社交软件?手机里装的社交软件有哪些呢,今天我来讲一下我手机里装的社交软件1微信现在已经全部普及了,和朋友聊天已经是是必不可少的社交工具了,在朋友圈里发布动态心情和各种各样的事情,还可以做为用2021马克布克破肉使用两个月总结外观买了的人都说好,没买的人都说差性能强是真强,但是真正能将其性能完全发挥出来的用户少之又少,日常办公乞丐版足矣散热热?我买来两个月了,除了太阳直晒外壳热了,他就没热过,感觉风扇都