一、前言Mybatis:数据持久化框架MybatisPlus:对Mybatis进行了增强,它封装了基本的增删改查操作,使我们自己不需要再去写很多重复的代码,大大解放了生产力!二、创建项目新建项目时选择SpringInitializer。也可以选择maven新建,但是不建议新手,因为要自己导入依赖,会给自己搞懵打开IDEA,选择NewProject创建项目文件结构、选择jdk版本一般选择Javaversion8然后下一步Next选择项目需要的依赖首先点击web选择springweb,再点击SQL选择MySQLdriver等,然后再一路Finish到新建完成。 查看项目修改pom。xml文件?xmlversion1。0encodingUTF8?projectxmlnshttp:maven。apache。orgPOM4。0。0xmlns:xsihttp:www。w3。org2001XMLSchemainstancexsi:schemaLocationhttp:maven。apache。orgPOM4。0。0https:maven。apache。orgxsdmaven4。0。0。xsdmodelVersion4。0。0modelVersionparentgroupIdorg。springframework。bootgroupIdspringbootstarterparentartifactIdversion2。6。5versionrelativePath!lookupparentfromrepositoryparentgroupIdcom。haogroupIddemoartifactIdversion0。0。1SNAPSHOTversionnamedemonamedescriptiondemodescriptionpropertiesjava。version1。8java。versionpropertiesdependenciesdependencygroupIdorg。springframework。bootgroupIdspringbootstarterwebartifactIddependency!热部署可有可无自行选择dependencygroupIdorg。springframework。bootgroupIdspringbootdevtoolsartifactIddependency!Data注解省力的插件自动生成setget有参无参dependencygroupIdorg。projectlombokgroupIdlombokartifactIddependency!mysqldependencygroupIdmysqlgroupIdmysqlconnectorjavaartifactIddependency!mybatisplusdependencygroupIdcom。baomidougroupIdmybatisplusbootstarterartifactIdversion3。2。0versiondependency!jdbc连接池dependencygroupIdorg。springframework。bootgroupIdspringbootstarterjdbcartifactIddependencydependenciesbuildpluginsplugingroupIdorg。springframework。bootgroupIdspringbootmavenpluginartifactIdpluginpluginsbuildproject 创建成功后删除src下面的test目录 说明: 中springbootstarterparent帮我们做了SpringBoot相关依赖包的版本号管理,所以有些依赖包不需要我们自己去写 但像mybatisplusbootstarter它是不属于springboot相关的,parent中没有做版本号管理,所以还需要手动写一下。三、目录结构 四、sql和application。yml 4。1导入sql语句CREATETABLEuserinfo(idBIGINT(20)NOTNULLAUTOINCREMENTCOMMENT用户id,usernameVARCHAR(20)NOTNULLDEFAULTCOMMENT用户名COLLATEutf8mb4generalci,passwordVARCHAR(100)NOTNULLDEFAULTCOMMENT密码COLLATEutf8mb4generalci,createtimeDATETIMENOTNULLCOMMENT创建时间,PRIMARYKEY(id)USINGBTREE); 说明:创建一个数据库,然后运行上述sql语句,生成用户表,主要就下面四个字段id用户id自增主键username用户名password密码createtime创建时间 4。2修改application。yml配置文件 把文件里的application。properties修改成yml格式yml更加便于管理,看起来也更舒适server:port:8887端口号可以自定义spring:devtools:这个就是前面我下的热部署,自行了解restart:enabled:true开启additionalpaths:srcmainjavaexclude:WEBINFfreemarker:cache:falsedatasource:driverclassname:com。mysql。cj。jdbc。Driverusername:root自己的数据库账号password:123456自己的密码url:jdbc:mysql:test?characterEncodingutf8serverTimezoneUTC?号前面是数据库名称我的是test默认为localhost:3306如果你的不是默认端口自行修改配置MP和在控制台打印sql语句mybatisplus:mapperlocations:classpath:mapper。xmlconfiguration:logimpl:org。apache。ibatis。logging。stdout。StdOutImpllogging:level:com:hao:mapper:debug这里根据自己的路径添加debug五,修改程序的启动入口类DemoApplication 作用是扫描到mapper里面中的类,注意路径要和项目中实际路径一致 MapperScan(valuecom。对应自己的路径。mapper)packagecom。importorg。mybatis。spring。annotation。MapperSimportorg。springframework。boot。SpringAimportorg。springframework。boot。autoconfigure。SpringBootAMapperScan(com。hao。mapper)SpringBootApplicationpublicclassDemoApplication{publicstaticvoidmain(String〔〕args){SpringApplication。run(DemoApplication。class,args);}}六,在实体类包中新建UserInfo。java,使之与数据库中的字段一一对应我的包叫pojo也可以叫entitypackagecom。hao。importcom。baomidou。mybatisplus。annotation。IdTimportcom。baomidou。mybatisplus。annotation。TableId;importcom。baomidou。mybatisplus。annotation。TableNimportlombok。Dimportjava。time。LocalDateTData就是lombok的注解自动生成了setgetDataTableName(valueuserinfo)TableName对应你的数据库表名publicclassUserInfo{TableId(valueid,typeIdType。AUTO)TableId说明这条数据自增长也是对应数据库自增长的privateIprivateSprivateSprivateLocalDateTimecreateT} 说明:这里类成员变量和数据库字段对应,Mybatis自动做了驼峰法到下划线的转换 如:数据库createtime类变量createTime七,在mapper包中新建UserInfoMapper接口packagecom。hao。importcom。baomidou。mybatisplus。core。mapper。BaseMimportcom。hao。pojo。UserIpublicinterfaceUserInfoMapperextendsBaseMapperUserInfo{} 说明:BaseMapper类封装了dao层基本的增删改查操作八,在srcmainresourcesmaping文件夹下新建UserInfoMapper的映射文件UserInfoMapper。?xmlversion1。0encodingUTF8?!DOCTYPEmapperPUBLICmybatis。orgDTDMapper3。0ENhttp:mybatis。orgdtdmybatis3mapper。dtdmappernamespacecom。自己的路径。UserInfoMappermapper 说明:这里的namespace和上述的UserInfoMapper路径对应一致九,在service里新建impl和UserInfoService接口类packagecom。hao。importcom。baomidou。mybatisplus。extension。service。ISimportcom。hao。pojo。UserIpublicinterfaceUserInfoServiceextendsIServiceUserInfo{} 说明:这里IService封装了service层基本的增删改查十,在service里的impl新建UserInfoServiceImpl类packagecom。hao。service。importcom。baomidou。mybatisplus。extension。service。impl。ServiceIimportcom。hao。mapper。UserInfoMimportcom。hao。pojo。UserIimportcom。hao。service。UserInfoSimportorg。springframework。stereotype。SServicepublicclassUserInfoServiceImplextendsServiceImplUserInfoMapper,UserInfoimplementsUserInfoService{}十一,在controller里新建UserInfoController类packagecom。hao。importcom。hao。pojo。UserIimportcom。hao。service。UserInfoSimportorg。springframework。beans。factory。annotation。Aimportorg。springframework。web。bind。annotation。;importjava。time。LocalDateTimportjava。util。LRestControllerRequestMapping(userInfo)publicclassUserInfoController{AutowiredprivateUserInfoServiceuserInfoS增加PostMapping(add)publicBooleanadd(RequestBodyUserInfouserInfo){userInfo。setCreateTime(LocalDateTime。now());returnuserInfoService。save(userInfo);}删除GetMapping(delete{id})publicBooleandelete(PathVariableIntegerid){returnuserInfoService。removeById(id);}修改PostMapping(update)publicBooleanupdate(RequestBodyUserInfouserInfo){returnuserInfoService。updateById(userInfo);}查询GetMapping(get{id})publicUserInfoget(PathVariableIntegerid){returnuserInfoService。getById(id);}查询全部GetMapping(list)publicListUserInfolist(){returnuserInfoService。list();}} 说明:增删改查接口,基本上不需要自己写sql,直接调用MybatisPlus封装好的接口。没啥好讲的十二,使用Postman进行测试 到这里就完成了增删改查操作,接下来我们对上面的代码在Postman中进行验证 1。新增一条信息http:localhost:8887userInfoadd 2。通过用户id删除用户http:localhost:8887userInfodelete215 3。根据用户id更新用户信息http:localhost:8887userInfoupdate?id1 这里要注意要用JSON的方式写参数 4。通过用户id获取信息:http:localhost:8887userInfoget1 5。打印所有信息http:localhost:8887userInfolist 三条信息全部打印出来了 原文链接:IDEASpringBootMybatisplus实现增删改查(CRUD)wnrun博客园