专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

SpringBoot搭建SSM项目的完整过程!

  01、新建一个springboot项目
  选择依赖和版本
  SpringBoot整合lombok
  lombok是一个快速生成javabean的一个工具工程和生成日志的工具。未来给我们提供了很大的遍历。
  需要在idea中安装插件和pom。xml中进行依赖才可以使用生效:
  pom。xml依赖如下:dependencygroupIdorg。projectlombokgroupIdlombokartifactIdoptionaltrueoptionaldependency复制代码SpringBoot在依赖的过程,为什么有的要加版本号,有的不加?dependencygroupIdorg。springframework。bootgroupIdspringbootstarterwebartifactIddependencydependencygroupIdmysqlgroupIdmysqlconnectorjavaartifactIdversion8。0。27versiondependencydependencygroupIdcom。baomidougroupIdmybatisplusbootstarterartifactIdversion3。5。2versiondependencydependencygroupIdorg。projectlombokgroupIdlombokartifactIdoptionaltrueoptionaldependency复制代码mysqlmybatisplus都不属于springboot父工程管理,自然必须把自己的version加上去!SpringBoot整合MybatisPlus和数据源
  1、在pom。xml中依赖如下:dependencygroupIdmysqlgroupIdmysqlconnectorjavaartifactIdversion8。0。27versiondependencydependencygroupIdcom。baomidougroupIdmybatisplusbootstarterartifactIdversion3。5。2versiondependency复制代码
  2、准备一个数据库表kssuserCREATETABLEkssuser(idintNOTNULLAUTOINCREMENT,usernamevarchar(255)CHARACTERSETutf8mb4COLLATEutf8mb40900aiciDEFAULTNULL,passwordvarchar(255)DEFAULTNULL,realnamevarchar(255)CHARACTERSETutf8mb4COLLATEutf8mb40900aiciDEFAULTNULL,genderintDEFAULTNULL,birthdaydateDEFAULTNULL,createtimedatetimeDEFAULTNULL,updatetimedatetimeDEFAULTNULL,PRIMARYKEY(id))ENGINEInnoDBAUTOINCREMENT2DEFAULTCHARSETutf8mb4COLLATEutf8mb40900aici;复制代码
  3、配置数据源和mybatis配置
  在项目的resource目录下的application。yaml配置如下:server:port:8080数据源配置spring:application:name:pugspringbootssmdatasource:type:com。zaxxer。hikari。HikariDataSourcedriverclassname:com。mysql。cj。jdbc。Driverurl:jdbc:mysql:127。0。0。1:3306ssmdb?serverTimezoneGMT2b8useUnicodetrueuseSSLfalsecharacterEncodingUTF8username:rootpassword:123456hikari:connectiontimeout:60000validationtimeout:3000idletimeout:60000logintimeout:5maxlifetime:60000maximumpoolsize:30minimumidle:10readonly:falsemybatisplus配置mybatisplus:configuration:logimpl:org。apache。ibatis。logging。stdout。StdOutImplmapperlocations:classpath:mapper。xml复制代码
  4、在resource新建一个mapper文件用来存放mybatis的xml文件
  5、springboot整合mybatispluspackagecom。ksd。pug;importorg。mybatis。spring。annotation。MapperScan;importorg。springframework。boot。SpringApplication;importorg。springframework。boot。autoconfigure。SpringBootApplication;SpringBootApplicationMapperScan(com。ksd。pug。mapper)publicclassPugSpringbootSsmApplication{publicstaticvoidmain(String〔〕args){SpringApplication。run(PugSpringbootSsmApplication。class,args);}}复制代码SpringBoot实现对用户表的CRUD操作
  01、pojopackagecom。ksd。pug。pojo;importcom。baomidou。mybatisplus。annotation。IdType;importcom。baomidou。mybatisplus。annotation。TableId;importcom。baomidou。mybatisplus。annotation。TableName;importlombok。AllArgsConstructor;importlombok。Data;importlombok。NoArgsConstructor;importlombok。ToString;importjava。io。Serializable;importjava。util。Date;DataAllArgsConstructorNoArgsConstructorToStringTableName(kssuser)publicclassUserimplementsSerializable{TableId(typeIdType。AUTO)privateIntegerid;privateStringusername;privateStringpassword;privateStringrealName;privateIntegergender;privateDatebirthday;}复制代码
  02、mapperpackagecom。ksd。pug。mapper;importcom。baomidou。mybatisplus。core。mapper。BaseMapper;importcom。ksd。pug。pojo。User;publicinterfaceUserMapperextendsBaseMapperUser{}复制代码
  03、service和serviceImplpackagecom。ksd。pug。service;importcom。baomidou。mybatisplus。extension。service。IService;importcom。ksd。pug。pojo。User;publicinterfaceIUserServiceextendsIServiceUser{}复制代码packagecom。ksd。pug。service;importcom。baomidou。mybatisplus。extension。service。impl。ServiceImpl;importcom。ksd。pug。mapper。UserMapper;importcom。ksd。pug。pojo。User;importlombok。extern。slf4j。Slf4j;importorg。springframework。stereotype。Service;Slf4jServicepublicclassIUserServiceImplextendsServiceImplUserMapper,UserimplementsIUserService{}复制代码
  04、controllerpackagecom。ksd。pug。controller;importcom。baomidou。mybatisplus。core。conditions。query。LambdaQueryWrapper;importcom。baomidou。mybatisplus。core。metadata。IPage;importcom。baomidou。mybatisplus。extension。plugins。pagination。Page;importcom。ksd。pug。config。exception。BusinessException;importcom。ksd。pug。config。results。Code;importcom。ksd。pug。config。results。Result;importcom。ksd。pug。pojo。User;importcom。ksd。pug。service。IUserService;importorg。springframework。beans。factory。annotation。Autowired;importorg。springframework。web。bind。annotation。;RestControllerRequestMapping(user)publicclassUserController{AutowiredprivateIUserServiceuserService;PostMappingpublicResultsave(Useruser){booleanflaguserService。saveOrUpdate(user);returnnewResult(flag?Code。SAVEOK:Code。SAVEERROR);}PutMappingpublicResultupdate(Useruser){booleanflaguserService。updateById(user);returnnewResult(flag?Code。UPDATEOK:Code。UPDATEERROR);}DeleteMapping({id})publicResultdelete(Integerid){booleanflaguserService。removeById(id);returnnewResult(flag?Code。DELETEOK:Code。DELETEERROR);}GetMapping({id})publicResultget(PathVariable(id)Integerid)throwsBusinessException{UseruseruserService。getById(id);模拟出现异常,使用条件控制,便于测试结果if(id10){thrownewBusinessException(查询出错了,请重试!,Code。GETERROR);}returnnewResult(null!user?Code。GETOK:Code。GETERROR,user);}GetMapping({pageNo}{pageSize})publicResultgetAll(PathVariableIntegerpageNo,PathVariableIntegerpageSize){1、设置分页PagepagenewPage(pageNo,pageSize);2、设置条件LambdaQueryWrapperUserlambdaQueryWrappernewLambdaQueryWrapper();3、查询分页返回IPagepage1userService。page(page,lambdaQueryWrapper);returnnewResult(null!page1?Code。GETOK:Code。GETERROR,page1);}}复制代码MybatisPlus的分页失效问题ConfigurationpublicclassMybatisPlusConfig{新的分页插件,一缓和二缓遵循mybatis的规则,需要设置MybatisConfigurationuseDeprecatedExecutorfalse避免缓存出现问题(该属性会在旧插件移除后一同移除)BeanpublicMybatisPlusInterceptormybatisPlusInterceptor(){MybatisPlusInterceptorinterceptornewMybatisPlusInterceptor();interceptor。addInnerInterceptor(newPaginationInnerInterceptor(DbType。MYSQL));returninterceptor;}}复制代码MybatisPlus的创建时间和更新时间回填问题定义个回填配置类Slf4jComponentpublicclassMyMetaObjectHandlerimplementsMetaObjectHandler{OverridepublicvoidinsertFill(MetaObjectmetaObject){log。info(startinsertfill。。。);defaultMetaObjectHandlersetFieldValByName(StringfieldName,ObjectfieldVal,MetaObjectmetaObject)this。setFieldValByName(createTime,newDate(),metaObject);this。setFieldValByName(updateTime,newDate(),metaObject);}OverridepublicvoidupdateFill(MetaObjectmetaObject){this。setFieldValByName(updateTime,newDate(),metaObject);}}复制代码在pojo中使用TableFiled(fillxxx)指定回填触发方法packagecom。ksd。pug。pojo;importcom。baomidou。mybatisplus。annotation。;importlombok。AllArgsConstructor;importlombok。Data;importlombok。NoArgsConstructor;importlombok。ToString;importjava。io。Serializable;importjava。util。Date;DataAllArgsConstructorNoArgsConstructorToStringTableName(kssuser)publicclassUserimplementsSerializable{TableId(typeIdType。AUTO)privateIntegerid;privateStringuserName;privateStringpassword;privateStringrealName;privateIntegergender;privateDatebirthday;TableField(fillFieldFill。INSERT)privateDatecreateTime;TableField(fillFieldFill。INSERTUPDATE)privateDateupdateTime;}复制代码
  数据库级别的解决方案
  首先将字段设置为timestamp,然后设置不是null,根据当前时间戳更新,在这里注意我们的createtime是不根据当前时间戳更新的!这种方式虽然可以但是不建议!
  在mysql低版本的时候可能会出现一个问题,你的sql语句无法导入,而导致这个的原因是有的他只可以设置一个timestamp(在这里提示:mysql5。7、mysql8。0是可以的!)MybatisPlus是怎么做到不写sql但是可以实现CRUD操作背后绝对是拼接SQL语句,然后调用mybatis底层执行sql。
  具体需要学习mp!
  作者:NakanoMay
  链接:https:juejin。cnpost7183739358883610680

中超联赛主办方拟于10月中旬前完成补赛,主场无法办赛球队将移至第三方赛区按照中国足协发布的通知,中超各俱乐部须选派董事长或总经理级别的负责人代表参加于9月7日下午举行的职业联赛工作会议。据悉,除维护赛风赛纪外,联赛赛程调整方案的推出亦是当天会议的重点内39岁金莎官宣恋情!与男友已交往半年,女恋约会对象也已结婚最近,真人秀披荆斩棘的哥哥2强势回归,上线两周风头便已经完全盖过了浪姐3,再加上芒果台对其肉眼可见的偏爱,以至于谭维维唐诗逸薛凯琪等没有后续资源的姐姐热度直线下滑。最新一季如此,浪阿黛尔深爱富保罗,20亿美元成坚强后盾,詹皇可和天后买NBA球队詹姆斯的经纪人富保罗也是人生赢家,他认识詹姆斯的时候只是一个贩卖球衣的小贩后来跟詹姆斯混慢慢成为一个经纪人,现在富保罗为詹姆斯,戴维斯,西蒙斯,特雷杨,沃尔,格林等球员做经纪人,一两笔交易斩获15个首轮!湖人可得当心,别陷入安吉设计的圈套安吉的运作能力究竟有多强大呢?昔日的绿军步入重建期之后,球队以二轮秀小托马斯为核心,硬是能够让这位175CM身高的后卫打出场均接近30分的进攻火力,更加难得的是能够利用整体的防守来官宣!王霜队友签约皇马女足,合同2年,转会费22。5万欧元在加盟路易斯维尔竞技之后,中国球员王霜与瑞典中场弗雷雅奥洛夫松一见如故,在场内和场外都擦出火花。可在新一轮联赛开打前,她却不得不与奥洛夫松告别。据皇马官方网站透露奥洛夫松与女队签约牛逼的散户有多能忍?大部分的时间都是在等,真正操作的时候很少最牛的散户有多能忍?他们大部分的时间都在等待机会,少部分的时候才是再操作。这些人对于生活跟身体更为重视,不会总盯着股市的情况和不断地操作,一直在默默的等待机会的到来,机会一到,立马豪车也卖不动了文荆玉疫情下消费普遍疲软,但高端消费却逆市火热,成了这两年一个独特的经济现象。数据也佐证了这个现象的真实性。贝恩公司今年初发布的报告显示,中国高端消费品市场2021年消费总额接近4液晶面板持续下跌,电视价格还要降今年的彩电市场可谓是进入了寒冬,从入夏以来,价格就一直在持续走低。据多家分析机构判断,这也是因为上游供应商恢复产能之后投入了大量人力物力,但是却遇到市场需求收缩,导致的供需关系失衡大动作!核电巨头入局,投资1000亿中国基金报记者文夕联手核电巨头出手千亿投资,聚丙烯龙头有大动作。9月6日,东华能源(002221)公告披露,公司与中国核工业集团有限公司(中核集团)签署战略合作协议,双方未来五年内人民币汇率跌破6。9!存钱,还有必要吗?你是不是这样的人努努力力上班,勤勤恳恳工作,辛辛苦苦存钱,赚到钱存在银行,却不敢花钱的人?你是不是这样的人不开花呗借呗不开信用卡甚至会为大额贷款恐慌,害怕负债的人?你是不是这样的人医疗器械企业新锐百强榜单背后的创新力量行业向新而行近日,国家高性能医疗器械创新生态峰会暨重大项目启动活动在深举办,会上公布了2022中国高性能医疗器械企业新锐100强企业榜单(以下简称榜单)。该榜单由工业和信息化部批复组建的国家高
我心中的top级养肤面霜,可别叫它平替了大家好,我是艾夏。以前都是分享一些护肤心得和爱用物,这次打算说点不一样的,给大家带来的是千元面霜介绍。这个栏目主要是想带大家全方位了解贵价护肤品,尤其是成分表背后的隐藏闪光点。我也每周学习一个美容仪小知识每周学习一个美容仪小知识今天要学习的是射频美容仪射频原理射频能够作用在真皮层促进胶原蛋白的再生射频通过高频率的电磁波,将带电粒子高速移动,在这个过程中,能量会深入到真皮层同时温度升秋天这样洗澡,不仅生病还会短命!想要长寿,要少做4件事经过一整天奔波,再加上新陈代谢作用,皮肤上会残留外界灰尘脱落的皮脂汗液等。洗澡能去除皮肤上的残留物,帮助疏通经络,改善血液循环,缓解一整天的疲劳感,有助于睡眠。然而,秋季洗澡要谨慎爱你入心,相思入骨爱你入心,相思入骨闲下来,总会想起你,想起你的笑,想起你的好,想起你的味道,总之,所有的想念,都是我说不出口的秘密。这么晚了,还没有收到你的信息,心里有一点着急,赶紧掏出手机,在微男人的这些模样,只会展现给他最爱的女人文森屿鹿林每个人都是多面性的,面对不同的人,会展现出不同的模样。生活中,我们每个人都身兼多个角色,在不同的场合,面对不同的人时,会展现出不一样的自己。有些人不需要知道太多,有些人不山北江南一望中,雁飞不到楚天空山北江南一望中,雁飞不到楚天空,衡阳路远无消息,何处潇湘有信鸿。昔曾南去随胡雁,今又北来伴塞鸿,莫道衡阳夜雨梦魂中。路远意如何,风雨潇湘家山千里外,南飞雁字几行多。万里程,凭栏独立晨读盛夏少年,肆意生长盛夏,就在不经意间过去了,连带着我无畏生长的年少和激昂的青春。连雨不知春去,一晴方觉夏深。我从屋内打着哈欠出来时,十二三岁的侄子正跃跃欲试,想要摘下高枝上黄澄澄的枇杷。他信心满满,我也知道自己嘴笨写在最后。大家好,我是泽鹏。第一次看到仙贝这篇稿子时,我其实挺受触动。我也属于是大人眼里的不太会来事的年轻人,无法夸夸其谈,甚至每次一想到要去长辈家里做客,都会有些头疼。和仙贝不同风碎倒影相知如镜群山水面上绵亘一座浮雕黛青色养眼,林木繁茂白房子错落有致,浮云从凹陷处溢出,散漫飘远血管那么多条,运煤车深入腹地树上野果,被飞鸟纷纷啄食向着对岸呼唤一声,回音充满岁月柔情大片茶园,害群之马,错的不仅仅是一条马人们反思的时候,第一反应就是痛恨敌人,谴责他们的残忍狠毒,毫无人性,接下来会分析下当时的历史环境。终究还是避重就轻的多。伟人一针见血落后就要挨打!我们反思的重点其实是为什么落后,为9月19号,尝试写读书笔记的第6天!告诉自己别轻易放弃忙碌的一天结束了!今天是尝试写读书笔记的第6天,确实不知道应该写点什么?放弃实在是太容易了,理由也可以有很多。但想坚持下去,只要告诉自己写就完了,哪怕随便写点什么。我就是想试试逼自
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网