专栏首页服务端思维一键帮你生成所需代码--EasyCode试试这个工具吧

一键帮你生成所需代码--EasyCode试试这个工具吧

EasyCode

EasyCode[1] 是基于 IntelliJ IDEA Ultimate 版开发的一个代码生成插件,主要通过自定义模板(基于 velocity)来生成各种你想要的代码。通常用于生成 Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成 HTML、JS、PHP 等代码。理论上来说只要是与数据有关的代码都是可以生成的。

1、安装(EasyCode)

我这里的话是已经那装好了。

  • 建议大家在安装一个插件,叫做Lombok。Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法。

2. 创建一个springboot项目

如果不会创建的话可以翻看我前面写过的文章。初识 Springboot

创建完成后的目录结构:

3. 准备数据库表

表结构:

CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  `gender` varchar(11) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `address` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4. 在IDEA配置连接数据库

① 按如下方式:选择数据源、选择mysql数据库(你也可以选择自己使用的数据库)

② 填写数据连接信息,点击测试。如果测试成功,点击OK。

注意:

idea关联mysql时报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon'

解决办法:

  • 进入cmd命令窗口,连接数据库 mysql -uroot -p,回车, 输入密码,回车,输入:show variables like’%time_zone’;
  • 设置北京时区,set global time_zone=’+8:00’;

二、生成代码

1. IDEA中开始生成代码

① 找到所需要生成代码的表,然后点击Generate Code。

② 选择包路径以及生成的模板

③ 生成的代码结构

2. 导入需要的依赖

pom.xml

<properties>
  <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>

    <!--  springboot与mybatis的整合包 -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.1</version>
    </dependency>

    <!--  mysql驱动包 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.46</version>
    </dependency>

    <!--  引入druid -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.8</version>
    </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>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

3. 编写数据源的相关配置

application.properties

server.port=8082
# 数据库配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

mybatis.mapper-locations=classpath:/mapper/*Dao.xml

4. 在dao接口添加@Mapper注解

@Mapper
public interface UserDao {
......
}

三、测试

controller层

(不再展示其它层代码,展示controller是为了方便查看请求路径)

package com.parker.controller;

import com.parker.entity.User;
import com.parker.service.UserService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * (User)表控制层
 *
 * @author 扬帆向海
 * @since 2020-05-15 00:56:29
 */
@RestController
@RequestMapping("user")
public class UserController {
    /**
     * 服务对象
     */
    @Resource
    private UserService userService;

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("selectOne")
    public User selectOne(Integer id) {
        return this.userService.queryById(id);
    }

}

启动项目,输入URL

总结

  • 当然很多脚手架都会内置代码生成功能。例如 pig[2] 的开发平台模块 ,通过自定义模板引擎形式实现代码生成,能够更好的整合现有业务提高开发效率。

Reference

[1]

EasyCode:https://github.com/makejavas/EasyCode

[2]

pig:https://github.com/pig-mesh/pig

本文分享自微信公众号 - 服务端思维(gh_c3775931ac9d)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JDK 15 要来了,新特性尝鲜。

    Java Development Kit 15是甲骨文公司发布 Java SE(标准版)的最新版本,它在6月11日进入缓降阶段,系列功能现在被冻结。JDK 15...

    用户2781897
  • 颠覆微服务认知:深入思考微服务的七个主流观点

    微服务架构现在已经成为了企业应用架构的必聊话题,本文沉淀了作者多年工作的所见所闻和实战思考,跳出纯技术的视角去思考架构,去看待微服务,保证利用现有的技术(工具)...

    用户2781897
  • 微服务到底该多大?如何设计微服务的粒度?

    微服务实践最常见的错误之一是把微服务做得过小。本文通过示例,深入讨论了微服务的大小和粒度。

    用户2781897
  • 利用 Spring Boot Admin 进行项目监控管理

    Spring Boot Admin (SBA) 是一个社区开源项目,用于管理和监视 Spring Boot 应用程序。应用程序通过 http 的方式注册到 Sp...

    烂猪皮
  • springboot 非parent方式搭建

    非parent 方式 推荐使用这种方式。 这样就可以使子项目使用 parent 标签了。 这种方式需要两次步骤: 1.paretn 项目配置 2.子项目配置

    潇洒
  • 『互联网架构』软件架构-springcloud邮件监控和总结(106)

    PS:Spring Cloud从设计之初就考虑了绝大多数互联网公司架构演化所需的功能,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。这些功能...

    IT故事会
  • SpringBoot:企业常用的starter

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而...

    Java团长
  • SpringBoot之依赖分析 原

                                                       图1 SpringBoot的模块继承图

    克虏伯
  • Spring Boot2.0 整合mybatis、分页插件、druid

    本文主要是针对SpringBoot2.0.2版本,实现整合mybatis、分页插件、druid等组件,实现完整的web服务,提供restful风格接口。

    kinbug [进阶者]
  • SpringBoot之Admin监控系统

    前言:生产环境用springboot,时常需要监控项目的情况,官方也提供了一些监控接口,例如:/health、/info等等,实际上除了之前提到的信息,还有其他...

    王念博客

扫码关注云+社区

领取腾讯云代金券