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); } }
最終,測試結果如下: