幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

阿里一手爆出Springboot整合MybatisPlus(

  新建springboot项目
  开发工具:idea2019。2,maven3
  pom。xmldependencygroupIdorg。springframework。bootgroupIdspringbootstarterartifactIddependencydependencygroupIdorg。springframework。bootgroupIdspringbootstarterwebartifactIddependencydependencygroupIdmysqlgroupIdmysqlconnectorjavaartifactIdscoperuntimescopedependencydependencygroupIdorg。projectlombokgroupIdlombokartifactIdoptionaltrueoptionaldependency!mybatisplus代码生成器dependencygroupIdcom。baomidougroupIdmybatisplusbootstarterartifactIdversion3。2。0versiondependencydependencygroupIdcom。baomidougroupIdmybatisplusgeneratorartifactIdversion3。2。0versiondependencydependencygroupIdorg。freemarkergroupIdfreemarkerartifactIdversion2。3。28versiondependencydependencygroupIdcom。alibabagroupIdfastjsonartifactIdversion1。2。47versiondependencyapplication。yml:server:port:8081servlet:contextpath:spring:datasource:driverclassname:com。mysql。cj。jdbc。Driverurl:jdbc:mysql:127。0。0。1:3306demo?serverTimezoneAsiaShanghaiuseUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLfalseallowPublicKeyRetrievaltrueusername:rootpassword:lyjajackson:dateformat:yyyyMMddHH:mm:sstimezone:GMT8serialization:writedatesastimestamps:falsemybatisplus:configuration:mapunderscoretocamelcase:trueautomappingbehavior:fulllogimpl:org。apache。ibatis。logging。stdout。StdOutImplmapperlocations:classpath:mapperMapper。xmlglobalconfig:逻辑删除配置dbconfig:删除前logicnotdeletevalue:1删除后logicdeletevalue:0mybatisplus分页插件MybatisPlusConfig:packagecom。example。conf;importcom。baomidou。mybatisplus。extension。plugins。PaginationInterceptor;importorg。springframework。context。annotation。Bean;importorg。springframework。context。annotation。Configuration;配置分页插件ConfigurationpublicclassMybatisPlusConfig{分页插件BeanpublicPaginationInterceptorpaginationInterceptor(){returnnewPaginationInterceptor();}}mybatisplus自动生成代码GeneratorCodeConfig。java:packagecom。example。conf;importcom。baomidou。mybatisplus。core。exceptions。MybatisPlusException;importcom。baomidou。mybatisplus。core。toolkit。StringUtils;importcom。baomidou。mybatisplus。generator。AutoGenerator;importcom。baomidou。mybatisplus。generator。config。;importcom。baomidou。mybatisplus。generator。config。rules。NamingStrategy;importcom。baomidou。mybatisplus。generator。engine。FreemarkerTemplateEngine;importjava。util。Scanner;自动生成mybatisplus的相关代码publicclassGeneratorCodeConfig{publicstaticStringscanner(Stringtip){ScannerscannernewScanner(System。in);StringBuilderhelpnewStringBuilder();help。append(请输入tip:);System。out。println(help。toString());if(scanner。hasNext()){Stringiptscanner。next();if(StringUtils。isNotEmpty(ipt)){returnipt;}}thrownewMybatisPlusException(请输入正确的tip!);}publicstaticvoidmain(String〔〕args){代码生成器AutoGeneratormpgnewAutoGenerator();全局配置GlobalConfiggcnewGlobalConfig();StringprojectPathSystem。getProperty(user。dir);gc。setOutputDir(projectPathsrcmainjava);gc。setAuthor(astupidcoder);gc。setOpen(false);实体属性Swagger2注解gc。setSwagger2(false);mpg。setGlobalConfig(gc);数据源配置DataSourceConfigdscnewDataSourceConfig();dsc。setUrl(jdbc:mysql:127。0。0。1:3306demo?serverTimezoneUTCuseUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLfalseallowPublicKeyRetrievaltrue);dsc。setDriverName(com。mysql。cj。jdbc。Driver);dsc。setUsername(root);dsc。setPassword(lyja);mpg。setDataSource(dsc);包配置PackageConfigpcnewPackageConfig();pc。setModuleName(scanner(模块名));pc。setParent(com。example);pc。setEntity(model。auto);pc。setMapper(mapper。auto);pc。setService(service);pc。setServiceImpl(service。impl);mpg。setPackageInfo(pc);自定义配置InjectionConfigcfgnewInjectionConfig(){OverridepublicvoidinitMap(){todonothing}};如果模板引擎是freemarkerStringtemplatePathtemplatesmapper。xml。ftl;如果模板引擎是velocityStringtemplatePathtemplatesmapper。xml。vm;自定义输出配置ListFileOutConfigfocListnewArrayList();自定义配置会被优先输出focList。add(newFileOutConfig(templatePath){OverridepublicStringoutputFile(TableInfotableInfo){自定义输出文件名,如果你Entity设置了前后缀、此处注意xml的名称会跟着发生变化!!returnprojectPathsrcmainresourcesmapperpc。getModuleName()tableInfo。getEntityName()MapperStringPool。DOTXML;}});cfg。setFileCreate(newIFileCreate(){OverridepublicbooleanisCreate(ConfigBuilderconfigBuilder,FileTypefileType,StringfilePath){判断自定义文件夹是否需要创建checkDir(调用默认方法创建的目录);returnfalse;}});cfg。setFileOutConfigList(focList);mpg。setCfg(cfg);配置模板TemplateConfigtemplateConfignewTemplateConfig();配置自定义输出模板指定自定义模板路径,注意不要带上。ftl。vm,会根据使用的模板引擎自动识别templateConfig。setEntity(templatesentity2。java);templateConfig。setService();templateConfig。setController();templateConfig。setXml(null);mpg。setTemplate(templateConfig);策略配置StrategyConfigstrategynewStrategyConfig();strategy。setNaming(NamingStrategy。underlinetocamel);strategy。setColumnNaming(NamingStrategy。underlinetocamel);strategy。setSuperEntityClass(com。baomidou。mybatisplus。extension。activerecord。Model);strategy。setEntityLombokModel(true);strategy。setRestControllerStyle(true);strategy。setEntityLombokModel(true);公共父类strategy。setSuperControllerClass(com。baomidou。ant。common。BaseController);写于父类中的公共字段strategy。setSuperEntityColumns(id);strategy。setInclude(scanner(表名,多个英文逗号分割)。split(,));strategy。setControllerMappingHyphenStyle(true);strategy。setTablePrefix(pc。getModuleName());mpg。setStrategy(strategy);mpg。setTemplateEngine(newFreemarkerTemplateEngine());mpg。execute();}}测试
  建表:
  执行GeneratorCodeConfig。java文件,输入表名user:
  解决方法:在数据库连接中配置添加allowPublicKeyRetrievaltrue
  查看生成的文件;
  添加扫描mapper注解
  启动springboot的application启动类:会报错,提示找不到mapper文件,我们需要在springboot启动类上添加扫描mapper的注解:packagecom。example;importorg。mybatis。spring。annotation。MapperScan;importorg。springframework。boot。SpringApplication;importorg。springframework。boot。autoconfigure。SpringBootApplication;SpringBootApplicationMapperScan(com。example。mapper)publicclassDemoApplication{publicstaticvoidmain(String〔〕args){SpringApplication。run(DemoApplication。class,args);}}
  UserController。java中新增接口:AutowiredprivateIUserServiceuserService;PostMapping(getUser)publicUsergetUser(){returnuserService。getById(1);}
  postman测试:
  没问题。
  上面是mybatisplus测试成功,下面我们继续测试我们自己写的sql是否成功。
  在resources目录下新建mapper文件夹,新建UserMapper。xml文件:lt;?xmlversion1。0encodingUTF8?!DOCTYPEmapperPUBLICmybatis。orgDTDMapper3。0ENhttp:mybatis。orgdtdmybatis3mapper。dtdmappernamespacecom。example。mapper。auto。UserMapper!查找用户信息selectidfindAllUserresultTypecom。example。model。auto。Userselectfromuserselectmapper
  UserMapper。javapackagecom。example。mapper。auto;importcom。baomidou。mybatisplus。core。mapper。BaseMapper;importcom。example。model。auto。User;importjava。util。List;pMapper接口authorastupidcodersince20200513publicinterfaceUserMapperextendsBaseMapperUser{publicListUserfindAllUser();}
  IUserService:packagecom。example。service;importcom。baomidou。mybatisplus。extension。service。IService;importcom。example。model。auto。User;importjava。util。List;p服务类authorastupidcodersince20200513publicinterfaceIUserServiceextendsIServiceUser{publicListUserfindAllUser();}
  UseServiceImpl。java:packagecom。example。service。impl;importcom。example。model。auto。User;importcom。example。mapper。auto。UserMapper;importcom。example。service。IUserService;importcom。baomidou。mybatisplus。extension。service。impl。ServiceImpl;importorg。springframework。beans。factory。annotation。Autowired;importorg。springframework。stereotype。Service;importjava。util。List;p服务实现类authorastupidcodersince20200513ServicepublicclassUserServiceImplextendsServiceImplUserMapper,UserimplementsIUserService{AutowiredprivateUserMapperuserMapper;OverridepublicListUserfindAllUser(){returnuserMapper。findAllUser();}}
  UserController。java:packagecom。example。controller;importcom。example。model。auto。User;importcom。example。service。IUserService;importorg。springframework。beans。factory。annotation。Autowired;importorg。springframework。web。bind。annotation。PostMapping;importorg。springframework。web。bind。annotation。RequestMapping;importorg。springframework。web。bind。annotation。RestController;importjava。util。List;p前端控制器authorastupidcodersince20200513RestControllerRequestMapping(user)publicclassUserController{AutowiredprivateIUserServiceuserService;PostMapping(getUser)publicUsergetUser(){returnuserService。getById(1);}PostMapping(findAllUser)publicListUserfindAllUser(){returnuserService。findAllUser();}}
  测试findAllUser接口:
  常用的工具类:
  ResultInfo。javapackagecom。example。conf;importlombok。Data;importjava。io。Serializable;返回结果类统一封装DatapublicclassResultInfoimplementsSerializable{状态码privateIntegercode;消息privateStringmessage;数据对象privateObjectresult;privateIntegertotal;无参构造器publicResultInfo(){super();}publicResultInfo(Statusstatus){super();this。codestatus。code;this。messagestatus。message;}publicResultInforesult(Objectresult){this。resultresult;returnthis;}publicResultInfomessage(Stringmessage){this。messagemessage;returnthis;}publicResultInfototal(Integertotal){this。totaltotal;returnthis;}只返回状态,状态码,消息paramcodeparammessagepublicResultInfo(Integercode,Stringmessage){super();this。codecode;this。messagemessage;}只返回状态,状态码,数据对象paramcodeparamresultpublicResultInfo(Integercode,Objectresult){super();this。codecode;this。resultresult;}返回全部信息即状态,状态码,消息,数据对象paramcodeparammessageparamresultpublicResultInfo(Integercode,Stringmessage,Objectresult){super();this。codecode;this。messagemessage;this。resultresult;}}
  Status。javapackagecom。example。conf;枚举类对象publicenumStatus{公共SUCCESS(2000,成功),UNKNOWNERROR(9998,未知异常),SYSTEMERROR(9999,系统异常),INSUFFICIENTPERMISSION(4003,权限不足),WARN(9000,失败),REQUESTPARAMETERERROR(1002,请求参数错误),登录LOGINEXPIRE(2001,未登录或者登录失效),LOGINCODEERROR(2002,登录验证码错误),LOGINERROR(2003,用户名不存在或密码错误),LOGINUSERSTATUSERROR(2004,用户状态不正确),LOGOUTERROR(2005,退出失败,token不存在),LOGINUSERNOTEXIST(2006,该用户不存在),LOGINUSEREXIST(2007,该用户已存在);publicintcode;publicStringmessage;Status(intcode,Stringmessage){this。codecode;this。messagemessage;}}附录:
  一份详尽的yml配置文件(关于数据源的配置比较详尽):server:port:8085servlet:contextpath:testspring:redis集群redis:host:127。0。0。1port:6379timeout:20000集群环境打开下面注释,单机不需要打开cluster:集群信息nodes:xxx。xxx。xxx。xxx:xxxx,xxx。xxx。xxx。xxx:xxxx,xxx。xxx。xxx。xxx:xxxx默认值是5一般当此值设置过大时,容易报:ToomanyClusterredirectionsmaxRedirects:3password:lyjaapplication:name:testjedis:pool:maxactive:8minidle:0maxidle:8maxwait:1database:0autoconfigure:exclude:com。alibaba。druid。spring。boot。autoconfigure。DruidDataSourceAutoConfiguredatasource:dynamic:设置默认的数据源或者数据源组,默认值即为masterprimary:masterstrict:falsedatasource:master:driverclassname:com。mysql。cj。jdbc。Driverurl:jdbc:mysql:127。0。0。1:3306test?serverTimezoneAsiaShanghaiuseUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLfalseusername:rootpassword:lyja数据源配置druid:druid连接池监控statviewservlet:enabled:trueurlpattern:druidloginusername:adminloginpassword:admin初始化时建立物理连接的个数initialsize:5最大连接池数量maxactive:30最小连接池数量minidle:5获取连接时最大等待时间,单位毫秒maxwait:60000配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒timebetweenevictionrunsmillis:60000连接保持空闲而不被驱逐的最小时间minevictableidletimemillis:300000用来检测连接是否有效的sql,要求是一个查询语句validationquery:selectcount()fromdual建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。testwhileidle:true申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。testonborrow:false归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。testonreturn:false是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。poolpreparedstatements:false要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。maxpoolpreparedstatementperconnectionsize:50配置监控统计拦截的filters,去掉后监控界面sql无法统计filters:stat,wall通过connectProperties属性来打开mergeSql功能;慢SQL记录connectionproperties:druid。stat。mergeSql:truedruid。stat。slowSqlMillis:500合并多个DruidDataSource的监控数据useglobaldatasourcestat:truefilter:stat:logslowsql:trueslowsqlmillis:1000mergesql:truewall:config:multistatementallow:trueservlet:multipart:开启multipart上传功能enabled:true文件写入磁盘的阈值filesizethreshold:2KB最大文件大小maxfilesize:200MB最大请求大小maxrequestsize:215MBmybatisplus:configuration:mapunderscoretocamelcase:trueautomappingbehavior:fulllogimpl:org。apache。ibatis。logging。stdout。StdOutImplmapperlocations:classpath:mapperMapper。xmlglobalconfig:逻辑删除配置dbconfig:删除前logicnotdeletevalue:1删除后logicdeletevalue:0logging:level:root:infocom。example:debug
  总结:
  所有的面试题目都不是一成不变的,特别是像一线大厂,上面的资料只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。最后给大家分享Spring系列的学习笔记和面试题,包含spring面试题、springcloud面试题、springboot面试题、spring教程笔记、springboot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档。私信博主(777)领取,祝大家更上一层楼!!!
  原文作者:易水寒
  原文出处:https:www。cnblogs。comliuyjtopp12976396。html

德国赛四强出炉,韩国日本成最大赢家,中国4胜2负表现一般北京时间3月11日凌晨,国际羽联超级300德国公开赛四强出炉,韩国、日本成为了最大赢家,各自斩获了6个四强名额。中国国家队方面,取得了4胜2负,陆光祖伤退,王祉怡12不敌山口茜……2022电商领域简评电商领域2022年仍然保持着较高的增长势头,网上零售额突破8万亿元,占社会消费品零售总额的比重不断提升。实物商品网上零售额占网上零售额的80以上,其中生鲜和非标品是电商公司重点……是否即将宣布已经取消对澳大利亚煤炭出口贸易限制?商务部回应来源:商务部网站2023年3月16日,商务部召开例行新闻发布会。【路透社记者】:据报道,尽管自2020年底以来对澳大利亚煤炭出口实施了贸易限制,但港口和海关部门已被……开箱拆解新品达尔优A98水透版,更好看更便宜更实用说起达尔优的a98,作为最早量产的客制化机械键盘,从最早的机甲版本发展到现在,已经有非常多的版本可以选择,用的方案到现在已经非常成熟了,,所以最近他们又搞了个新产品,结合了当下……美人图集宋轶宋轶真是一个美人坯子,穿什么都好看,我zui开始认识宋轶的时候是看《伪装者》,她在里面扮演于曼丽,她有各种各样的旗袍,或清chun或风情万种,每种都好爱啊!小姐姐在剧中的……中医老中医常用改善腰突症的小方子。王少杰。为了让你尽早摆脱腰腿痛的折磨,我把一个效果好的方子分享给你,赶紧把它保存下来。这个小方子包含两类药,一类是活血化瘀,行气止疼的……韦世豪严鼎皓李扬选择武汉三镇原因分析1,前锋韦世豪、中场严鼎皓、后卫李扬加盟武汉三镇只差官宣,已有足球报李璇,足球报记者鲁蜜等一众知名记者发文证实。2,武汉三镇引进这三名球员没有大合同,也没有高额转会费,是……火星探索终有成果,美国2008年拍摄的火星照片上,发现了大树这是一张NASA于2008年在火星上拍摄的一张照片。仔细看,火星的表面似乎有些黑色物体。这些物体形状好似灌木丛和大树,且这张照片拍摄的宽度粗略估计为1公里。以这个比例来看……美丽乡村游助力乡村振兴4月8日,浙江省诸暨市赵家镇东溪村举行的春日山野市集设置免费摊位,推广优质农副产品以及网红美食,吸引游客前来了解选购。当日,浙江省诸暨市赵家镇举办春日乡村旅游主题活动,开……广西老牌中药企业,桂林三金产品渠道双优化,一体两翼振翅飞(报告出品方分析师:方正证券唐爱金章钟涛)1五十余载征程,造就广西龙头中药企业1。1广西老牌中药领军企业,秉承一体两翼战略开展新征程桂林三金是一家广西老牌中药领军企……20种餐饮技术分享,配方到克总有一款适合你,先收藏起来作者寄语:十三香的调料图有点草率了,主要跟大家分享这个香料配方味道非常不错,有的一整纸就是别人的半辈子,配方的真假先不说,大家试一个配方的时间也就一天,好配方是大家慢慢的摸索尝……最全人工智能龙头股1、底座:算力。算力资源是人工智能和数字经济发展的重要底座,也是重金烧钱的地方。主要包括AI芯片、GPU、服务器、云计算、数据中心等。(寒武纪、景嘉微、海光信息、龙……
那么多人穿卡哈特,都是在跟风?如果前些年提起Carhartt,人们第一时间想到的会是它更时髦的支线CarharttWIP,会主动忽略更加便宜,但劳保性更强,也更加保守的主线。然而到了这两年,情况似乎掉转过来……郑州三月份去哪里赏花?收藏起来吧头条创作挑战赛一秒入夏的郑州火热起来了,周末去哪里了玩让大朋友小朋友犯难,今天小编就收集整理一下郑州市区内三月份赏花的地方,行动起来吧、出去纾解一下内心的焦虑和不安吧。迎……医院人满为患?应对甲流别恐慌,连花清瘟治疗效果好近日,家住北京通州的李先生,因孩子高烧持续不退,前往医院就诊。没想到儿科急诊已经挂到了300多号,且大多数都是发热症状。家长们纷纷表示,担心孩子感染甲流,一出现症状便赶往医院检……马洛塔国米不会因欧冠分心,斯佩齐亚和波尔图同样重要直播吧3月11日讯在本轮意甲联赛前,国米总经理马洛塔称球队不会因欧冠分心,斯佩齐亚和波尔图同样重要。国米将在下周中迎来和波尔图的欧冠18决赛次回合,马洛塔首先表示:球队不……23999元起雷蛇新款灵刃18上架可选RTX406070本月初,雷蛇发布灵刃18游戏本,处理器可选酷睿i913950HX13980HX,显卡可选RTX4060、RTX4070、RTX4080和RTX4090。京东购买地址……商丘穴又称补脾穴,中医补脾止泻的穴位,治疗脾虚便溏泄泻的要穴健康2023商丘穴又称补脾穴,中医说商丘穴是补脾止泻的要穴,是治疗脾虚便溏腹泻的要穴。商丘穴是真的拥有这么神奇的功效吗?其实,穴位的名字已经很清楚告诉你答案了。搞明白了丘……带你走进深藏在河南平顶山的千年古寺千年古寺历风雨香山九老吟诗篇鸟瞰香山寺在国内众多的香山寺中,地处我市新华区、宝丰县交界处的香山寺可谓历史悠久,声名远播。香山寺全名为香山普门禅寺,始建于东汉年……国乒选手最大的赢家,就是陈梦和王楚钦,有望成就大满贯头条创作挑战赛国乒终于公布了男女队教练员的分配情况,教练员钟金勇分管国乒老将陈梦,孙颖莎的主管教练依然是邱贻可。但是王曼昱的主管教练换成了徐辉,这个名不见经传的教练跟肖战……算法的社会责任算法决策下,薅羊毛动了谁的奶酪砍价商品免费拿,邀请好友一起砍!面对某电商平台弹出的营销页面,用户小郑选取了一款价值数千元的手机,在24小时内将砍价链接群发给28位好友,仅以3。22元之差与手机失之交臂……曼联一夜2大收获!争四对手丢分主力决赛停赛,7天后首冠或到手在刚刚过去的这一夜,曼联可谓是收获满满,看到曼城被诺丁汉森林逼平,相信不少球迷都已经开始梦想逆袭死敌了。不过相比之下,纽卡斯尔输给利物浦,无疑更让曼联笑开花,因为这意味着他们的……跨越时空的会面,剧版巅峰之作名侦探柯南贝克街的亡灵封神之作经典重温《名侦探柯南:贝克街的亡灵》4月4日于中国大陆重映这部剧场版自2002年上映以来,无论是影片内容、质量还是口碑都一直都广受到海内外观众的盛赞好评……阿里最受欢迎的16个前端开源项目大家好,我是Echa。今天小编要说的主角是阿里巴巴,一说到阿里,作为程序员的小编,马上就能联想到阿里巴巴中的达摩院,达摩院人才济济,能进去的人都是有一技之长,都是绝世高手……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网