mybatis plus 生成表_有代码生成器,为什么不用呢?

因为在平时写service层和mapper层发现大部分代码都差不多,所以发现mybatis与mybatis-plus都有代码生成器可以用来提升编码效率
  • mybatis可以代码生成mapper.xml和实体类pojo

  • mybatis-plus可以生成控制层、业务层、持久层和实体类

发现mybatis-plus的代码生成可以有效提高代码效率 注意:多表关系复杂还是自己写sql会方便些

创建数据库

 create database mybatis_demo;
创建一个 mybatis_demo 的数据库
 create table `tb_user` (   id int not null auto_increment primary key comment '主键',   username varchar(50) not null comment '用户名',   password varchar(255) not null comment '密码' )engine=InnoDB default charset=utf8mb4;
创建用户表 tb_user

创建maven工程

  <dependency>     <groupId>org.springframework.bootgroupId>     <artifactId>spring-boot-starter-webartifactId>     <version>3.4.0version> dependency>   <dependency>     <groupId>org.springframework.bootgroupId>     <artifactId>spring-boot-starter-testartifactId>     <version>3.4.0version> dependency>   <dependency>     <groupId>com.baomidougroupId>     <artifactId>mybatis-plus-boot-starterartifactId>     <version>3.4.0version> dependency>   <dependency>     <groupId>mysqlgroupId>     <artifactId>mysql-connector-javaartifactId>     <version>8.0.11version> dependency>   <dependency>     <groupId>com.baomidougroupId>     <artifactId>mybatis-plus-generatorartifactId>     <version>3.4.0version> dependency>   <dependency>     <groupId>org.apache.velocitygroupId>     <artifactId>velocity-engine-coreartifactId>     <version>2.2version> dependency>
引入需要的依赖,这里使用springboot来启动

springboot配置文件

在依赖中已经导入了数据库,如果不写数据库配置就会报错 在resources中新建application.yml(这里也可以使用properties)
 # 连接数据库配置 spring:   datasource:     driver-class-name: com.mysql.cj.jdbc.Driver     url: jdbc:mysql:///mybatis_demo?useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC     username: root     password: 123456  # 设置在控制台输出日志 mybatis-plus:   configuration:     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
注意:
  • driver-class-name中com.mysql.cj.jdbc.Driver是8.0以上的全类名,旧版的是com.mysql.jdbc.Driver

  • 如果使用jdbc是8.0以上,url需要加上时区useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

  • 如果需要使用中文存取数据,需要在url中加上编码useUnicode=truecharacterEncoding=utf8

  • username是数据库用户账号,password是数据库密码

  • log-impl是指定日志的实现方式,这里选择在控制台输出

编写启动类

@SpringBootApplication public class MyBatisPlusApplication {     public static void main(String[] args) {         SpringApplication.run(MyBatisPlusApplication.class, args);     } }
启动MyBatisPlusApplication类,没有报错代表着启动没有问题了。

代码生成器配置类

在test/java/com.yujutg/包下,新建测试类AutoBuildTable.java
 /**  * @author Fishhead  * @version 1.0  * @date 2020/9/23 17:25  */ @SpringBootTest public class AutoBuildTable {      @Test     public void build(){         // 写下面的代码     }  }
  • @SpringBootTest是设置这是由springboot启动的测试类

  • @Test是指明这个是一个单元测试方法

将下面代码写入build方法中
全局配置
 AutoGenerator autoGenerator = new AutoGenerator(); // 配置策略  // 全局配置 GlobalConfig globalConfig = new GlobalConfig();  // 项目的绝对路径 String property = System.getProperty("user.dir"); System.out.println(property); globalConfig.setOutputDir(property+"\\src\\main\\java");  // 作者的名称 globalConfig.setAuthor("Fishhead"); globalConfig.setOpen(false);  // 文件是否覆盖 globalConfig.setFileOverride(false);  // 去掉service的i前缀 globalConfig.setServiceName("%sService");  globalConfig.setDateType(DateType.ONLY_DATE);  // 设置全局配置 autoGenerator.setGlobalConfig(globalConfig);
设置数据源
DataSourceConfig config = new DataSourceConfig(); // 设置连接的url config.setUrl("jdbc:mysql:///mybatis_demo?useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"); // 设置jdbc的驱动类 config.setDriverName("com.mysql.cj.jdbc.Driver"); // username是数据库用户账号 config.setUsername("root"); // password是数据库密码 config.setPassword("123456"); // 指明这个是mysql的数据库 config.setDbType(DbType.MYSQL);  autoGenerator.setDataSource(config);
包的配置
 PackageConfig packageConfig = new PackageConfig(); // 设置父包名 packageConfig.setParent("com.yujutg"); // 设置实体类的包名 packageConfig.setEntity("entity"); // 设置mapper接口的包名 packageConfig.setMapper("mapper"); // 设置业务层的包名 packageConfig.setService("service"); // 设置控制层的包名 packageConfig.setController("controller");  autoGenerator.setPackageInfo(packageConfig);
策略配置
 StrategyConfig strategyConfig = new StrategyConfig(); // 选择需要生成的数据库,这里可以传入多个参数 // setInclude("tb_user", "tb_rule", "tb_book") strategyConfig.setInclude("tb_user"); // 去除数据库表名的前缀 strategyConfig.setTablePrefix("tb_"); // 下划线转驼峰命名法 strategyConfig.setNaming(NamingStrategy.underline_to_camel); strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);  autoGenerator.setStrategy(strategyConfig);
模板配置
 TemplateConfig templateConfig = new TemplateConfig(); templateConfig.setXml(null); autoGenerator.setTemplate(templateConfig);
执行生成
 autoGenerator.execute();

测试结果

运行build()方法,会出现生成的包 814acfdf41b4de0b8ffa144d4b3f4e1b.png 编写一个Restful接口
 @RestController @RequestMapping("/user") public class UserController {     @Autowired     private UserService userService;      /**      * 获取所有User用户      * @return List集合      */     @GetMapping("/")     public List getAll(){         return userService.list(null);     }      /**      * 插入一个User用户      * @param user 前端传入的用户名和密码      * @return 返回是否插入成功      */     @PostMapping("/")     public Boolean saveOne(User user){         if(user != null){             return userService.save(user);         }         return false;     } }
c06ac9ca6ae6fe152a3e8d3c916bc0c5.png
这里有源码地址https://gitee.com/fishheadgit/wechartcode
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值