在基于Mybatis的项目中,我们可以通过Mybatis的插件从数据库表结构进行业务代码的生成。今天给大家介绍一款Idea的插件,不仅可以达到Mybatis反向生成的效果,而且还可以更加灵活的使用。
插件安装
通常Idea插件的安装有两种形式。
方式一:直接在Idea中找到Plugins配置,然后搜索“Easy Code”,点击“install”进行安装,重启Idea便完成安装。如下图:
方式二:访问Idea插件的官网:https://plugins.jetbrains.com/,然后搜索“Easy Code”,会展示如下结果:
点击“Install to Idea”进行下载安装。此时会检查本机的Idea,并进行插件安装,如果已经安装会显示如下内容:
这种方式适合在Plugins中没有搜到Easy Code的场景。
数据库配置
在数据库中创建一张表,这里以tb_order为例:
CREATE TABLE `tb_order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`amount` int(11) NOT NULL DEFAULT '1',
`order_no` varchar(64) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
然后在Idea中添加配置数据源:
这里选择使用Mysql数据库并进行配置。
如果之前未配置过相应的数据库,还需要下载一下对应的驱动程序。
连接成功,效果如下:
反向生成代码
右击要生成代码的表,选择easycode,Generate Code。
在弹出页面选择包路径以及要生成类:
我这里已经实现创建好了一个Spring Boot的项目。一路点击“yes”之后,生成了以下包及类:
当然,还有resources目录下的mybatis的xml文件。在这些生成的类中提供了一些默认的增删改查的方法。
为了程序不报错,还需要添加mybatis的依赖,以下为整个项目的整体依赖内容:
<dependencies>
<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>1.3.2</version>
</dependency>
<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>
通过上述一些列的操作,我们便可以轻松通过插件生成代码,再也不用每次都一层层的手动创建各层的类了。
截止现在,上面的项目并不能正常运行,因为并没有配置扫描Mapper接口的地方。此时可在TbOrderDao类上添加@Mapper注解,也可以在启动类里面加上@MapperScan("com.secbro2.easycode.biz.dao")注解进行扫描。
最后,在application.properties或application.yml中配置对应的数据库连接即可。
插件扩展
如果嫌弃手写麻烦,或者想生成其他的类型的类或文件,则可以在配置中对其扩展或修改。比如将自动生成的dao.java模板类上自动添加上@Mapper,或将entity.java改用Lombok的形式进行生成都是可以进行修改的。
通过该插件的一系列操作,写代码是不是变成一件非常容易的事了?最起码能在基础的类生成等工作上节省90%的工作量。赶紧用起来吧。