1.CodeGenerator原理分析造句:我们可以填空内容造句,例如:例子中:观察我们之前写的代码,会发现会有很多重复的内容,例如:Thenwe想一想,如果我要开发一个Book模块,是不是只需要将红色部分的内容全部替换成Book就可以了,比如:所以我们会发现做任何一个模块开发,对于这部分的代码基本上就是一个调整红色的部分,所以我们把去掉红色内容的东西叫做模板,红色的部分叫做参数。以后只需要传入不同的参数,就可以根据模板创建不同的模块。道代码。除了dao可以抽取模块外,其实我们所有的公共类都可以抽取,只要有公共部分即可。再来看模型类的模板:①可以根据数据库表的表名填写②可以根据用户的配置生成ID生成策略③到⑨可以根据数据库的字段名填写表,所以我们只要知道要在哪个表中进行代码生成,就可以填写这些内容了。经过分析,我们会发现,为了完成自动代码生成,我们需要以下内容:Template:MyBatisPlus已经提供了模板,也可以自己提供模板,但是比较麻烦,不建议进行数据库相关的配置:读取数据库获取表和Field信息开发者自定义配置:手动配置,如ID生成策略2、代码生成器实现第一步:创建Maven项目第二步:导入对应的jar包4.0.0org.springframework.bootspring-boot-starter-parent2.5.1com.ithheima<艺术factId>mybatisplus_04_generator0.0.1-SNAPSHOT1.8org.springframework.bootspring-boot-starter-webcom.baomidoumybatis-plus-boot-starter3.4.1com.alibabadruid1.1.16mysqlmysql-connector-java运行时依赖项>org.springframework.bootspring-boot-starter-testtestorg.projectlomboklombok1.18.12com.baomidoumybatis-plus-generator3.4.1org.apache.velocityvelocity-engine-core2.3org.springframework.bootspring-boot-maven-plugin第三步:编写启动类@SpringBootApplicationpublicclassMybatisplus04GeneratorApplication{publicstaticvoidmain(String[]args){SpringApplication.run(Mybatisplus04GeneratorApplication.class,args);}}第四步:创建代码生成类publicclassCodeGenerator{publicstaticvoidmain(String[]args){//1.获取代码生成器的对象AutoGeneratorautoGenerator=newAutoGenerator();//设置数据库相关配置DataSourceConfigdataSource=newDataSourceConfig();dataSource.setDriverName("com.mysql.cj.jdbc.Driver");dataSource.setUrl("jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC");dataSource.setUsername("root");dataSource.setPassword("root");autoGenerator.setDataSource(dataSource);//设置全局配置GlobalConfigglobalConfig=newGlobalConfig();globalConfig.setOutputDir(System.getProperty("user.dir")+"/mybatisplus_04_generator/src/main/java");//设置代码生成位置globalConfig.setOpen(false);//设置生成代码后是否打开生成完成目录globalConfig.setAuthor("DarkHorseProgrammer");//设置作者globalConfig.setFileOverride(true);//设置是否覆盖原生成文件globalConfig.setMapperName("%sDao");//设置数据层接口名,%s为占位符,引用模块名globalConfig.setIdType(IdType.ASSIGN_ID);//设置Id生成策略autoGenerator.setGlobalConfig(globalConfig);//设置包名相关配置PackageConfigpackageInfo=newPackageConfig();packageInfo.setParent("com.aaa");//设置生成的包名,与代码位置不冲突,两者叠加形成完整路径packageInfo.setEntity("domain");//设置实体类包名packageInfo.setMapper("dao");//设置数据层包名autoGenerator.setPackageInfo(packageInfo);//策略设置StrategyConfigstrategyConfig=newStrategyConfig();strategyConfig.setInclude("tbl_user");//设置当前参与生成的表名,参数为可变参数strategyConfig.setTablePrefix("tbl_");//设置数据库表的前缀名,模块名=数据库表名-前缀名例如:User=tbl_user-tbl_strategyConfig.setRestControllerStyle(true);//设置是否开启Rest风格strategyConfig.setVersionFieldName("版本");//设置乐观锁字段名strategyConfig.setLogicDeleteFieldName("deleted");//设置逻辑删除字段名strategyConfig.setEntityLombokModel(true);//设置是否启用lombokautoGenerator.setStrategy(strategyConfig);//2。执行生成操作autoGenerator.execute();}}代码生成器中的代码内容,我们可以直接从官方文档中获取代码进行修改,https://baomidou.com/pages/d357af/#%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B第五步:程序运行成功后,会在当前项目中生成很多代码,代码包括controller、service、mapper和entity至此,代码生成器已经生成完成它的工作,我们可以根据数据库表快速创建相应的类,简化我们的代码开发3、Mybatisplus中Service的CRUD回顾我们之前的业务层代码编写,编写接口和对应的实现类:接口及实现类中声明的方法publicListfindAll(){returnuserDao.selectList(null);}}Mybatisplus看到上面的代码后说这几个方法比较固定,比较通用,所以给大家提炼出来,所以Mybatisplus提供了一个Service接口和实现类,分别是:IService和ServiceImpl,后者是对前实施。以后我们自己写的Service可以这样修改:publicinterfaceUserServiceextendsIService{}@ServicepublicclassUserServiceImplextendsServiceImplimplementsUserService{}这样修改的好处是Mybatisplus帮了我们把业务层的一些基本的增删改查查询都实现了,可以直接使用。编写测试类进行测试:@SpringBootTestclassMybatisplus04GeneratorApplicationTests{privateIUserServiceuserService;@TestvoidtestFindAll(){Listlist=userService.list();System.out.println(列表);}}思考:封装在Mybatisplus的Service层有哪些方法?https://baomidou.com/pages/49cc81/