EasyCode插件,可以采用图形化的方式实现对数据库中数据表自动生成entiy、mapper、dao、service、controller。
EasyCode通过File->Settings->Plugins,搜索EasyCode安装即可。
7.1 插件安装
Lombok主要实现实体类的setter和getter
7.2 创建SpringBoot项目
pom.xml依赖,代码如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.2</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.sky</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!--SpringBoot调试,值为true时热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <!--druid依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.24</version> </dependency> <!--分页依赖--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.13</version> </dependency> <!--SpringWeb依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--MyBatis依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <!--mysql驱动程序--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--lombok依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>
在resources目录下新建application.yml文件,代码如下:
server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/db_hym?serverTimezone=UTC username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver mybatis: mapper-locations: classpath:/mapper
配置数据源
7.3 生成代码
选中所有的表,然后点击右键,选择EasyCode->Generate Code生成代码
生成的代码结构如下:
7.4 测试项目
在启动项目之前,需要进行两处修改
在dao层的接口上添加@mapper注解,否则提示错误找不到bean
package com.sky.demo.dao; import com.sky.demo.entity.TUser; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * (TUser)表数据库访问层 * * @author makejava * @since 2021-02-02 08:05:23 */ @Mapper public interface TUserDao { /** * 通过ID查询单条数据 * * @param id 主键 * @return 实例对象 */ TUser queryById(Integer id); /** * 查询指定行数据 * * @param offset 查询起始位置 * @param limit 查询条数 * @return 对象列表 */ List<TUser> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); /** * 通过实体作为筛选条件查询 * * @param tUser 实例对象 * @return 对象列表 */ List<TUser> queryAll(TUser tUser); /** * 新增数据 * * @param tUser 实例对象 * @return 影响行数 */ int insert(TUser tUser); /** * 批量新增数据(MyBatis原生foreach方法) * * @param entities List<TUser> 实例对象列表 * @return 影响行数 */ int insertBatch(@Param("entities") List<TUser> entities); /** * 批量新增或按主键更新数据(MyBatis原生foreach方法) * * @param entities List<TUser> 实例对象列表 * @return 影响行数 */ int insertOrUpdateBatch(@Param("entities") List<TUser> entities); /** * 修改数据 * * @param tUser 实例对象 * @return 影响行数 */ int update(TUser tUser); /** * 通过主键删除数据 * * @param id 主键 * @return 影响行数 */ int deleteById(Integer id); }
在启动类里面加上@MapperScan注解:
package com.sky.demo; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.sky.demo.dao") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
最终,测试结果如下: