IDEA中常用的插件

目录

Free MyBatis plugin

codehelper.generator

grep console

Translation

Alibaba Java Coding Guidelines

CamelCase

GenerateAllSetter

Rainbow Brackets

MyBatis Log Plugin

自定义主题样式

自定义IDEA工具栏

自定义快捷键


Free MyBatis plugin 插件的简单介绍:

       在写MyBatis项目的时候,我们经常会在DAO和Mapper.xml中来回切换进行代码编写,当方法较多,代码较为繁杂的时候,要定位到对应的方法,以及查看DAO中方法是否在Mapper.xml中定了,这个事情就比较繁琐,这个时候就体现了这个插件的作用。接下来我们可以看看Free MyBatis plugin插件可以帮我们做什么事情。

    1.在Idea中安装 Free MyBatis plugin:打开Idea -->Configure--->Plugins--->Browse repositories

搜索Mybaits --->找到Free MyBtais plugin -->点击右侧的Install 等待片刻后提示安装成功,重启Idea即可。

codehelper.generator 简介:

   可以根据POJO实体类,一键生成DAO接口,Mapper.xml文件,Service类,以及POJO 对应的SQL脚本(目前只支撑MySQL)。注意,该插件只会生成5个方法(insert,insertList,update,select,delete),当然在Mapper.xml中,sql语句都是使用动态SQL完成的,非常实用。接下来看看它的安装及应用。

安装过程和Free MyBatis plugin差不多,安装完毕后同样需要重启。重新打开后可以看到在Tools工具栏下多了如下选项:

插件安装完毕后我们就可以来使用了,只需要对应的POJO类,但是注意,在当前类中一定要有一个字段叫id,类型不限制。

接下来在项目的根目录下建立一个属性文件(codehelper.properties),内容如下,具体作用就是用于指定要操作的实体类(pojo)有那些,以及生成的dao,service,mapper,sql存放的路径。

#配置多个pojos,以 | 分隔
pojos=Dept|Emp

#Sql文件的charset配置
charset=utf8

#mysql Engine
sqlEngine=InnoDB

#配置各个文件的路径
mapper.path=src/main/resources/mybatis/mappers
dao.path=src/main/java/com/zt/dao
service.path=src/main/java/com/zt/service
sql.path=src/main/resources/sql

### 配置各个java类型的sql关键字
int=NUMBER(12) NOT NULL DEFAULT -1
double=NUMBER(14,4) NOT NULL DEFAULT -1
java.lang.String=VARCHAR2(50) NOT NULL DEFAULT ''
java.lang.Integer=NUMBER(12) NOT NULL DEFAULT -1

·详细配置请参考: ·GitHub - zhengjunbase/codehelper.generator: source code of codehelper.generator

做好以上操作后,选择Tools-->CodeHelper--->GenDaoCode,一键生成对应的代码。点击之后会弹出如下窗口表示生成的文件有那些,点击OK即可。

生成后的Mapper.xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zt.dao.DeptDao">

<!--auto generated Code-->
    <resultMap id="AllColumnMap" type="com.zt.pojo.Dept">
        <result column="id" property="id"/>
        <result column="dept_no" property="deptNo"/>
        <result column="dname" property="dname"/>
        <result column="loc" property="loc"/>
    </resultMap>

<!--auto generated Code-->
    <sql id="all_column">
        id,
        dept_no,
        dname,
        loc
    </sql>

<!--auto generated Code-->
    <insert id="insert">
        INSERT INTO dept
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="pojo.id != null"> id, </if>
            <if test="pojo.deptNo != null"> dept_no, </if>
            <if test="pojo.dname != null"> dname, </if>
            <if test="pojo.loc != null"> loc, </if>
        </trim>
        VALUES
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="pojo.id != null"> #{pojo.id}, </if>
            <if test="pojo.deptNo != null"> #{pojo.deptNo}, </if>
            <if test="pojo.dname != null"> #{pojo.dname}, </if>
            <if test="pojo.loc != null"> #{pojo.loc}, </if>
        </trim>
    </insert>

<!--auto generated Code-->
    <insert id="insertList">
        INSERT INTO dept(
        <include refid="all_column"/>
        )VALUES
        <foreach collection="pojos" item="pojo" index="index" separator=",">
            (
            #{pojo.id},
            #{pojo.deptNo},
            #{pojo.dname},
            #{pojo.loc}
            )
        </foreach>
    </insert>

<!--auto generated Code-->
    <update id="update">
        UPDATE dept
        <set>
            <if test="pojo.id != null"> id = #{pojo.id}, </if>
            <if test="pojo.deptNo != null"> dept_no = #{pojo.deptNo}, </if>
            <if test="pojo.dname != null"> dname = #{pojo.dname}, </if>
            <if test="pojo.loc != null"> loc = #{pojo.loc} </if>
        </set>
         WHERE id = #{pojo.id}
    </update>

<!--auto generated Code-->
    <select id="select" resultMap="AllColumnMap">
        SELECT <include refid="all_column"/>
        FROM dept
        <where>
            <if test="pojo.id != null"> AND id = #{pojo.id} </if>
            <if test="pojo.deptNo != null"> AND dept_no = #{pojo.deptNo} </if>
            <if test="pojo.dname != null"> AND dname = #{pojo.dname} </if>
            <if test="pojo.loc != null"> AND loc = #{pojo.loc} </if>
        </where>
        LIMIT 1000 
    </select>

<!--auto generated Code-->
    <delete id="delete">
        DELETE FROM dept where id = #{pojo.id}
    </delete>
</mapper>
生成的DAO文件:
package com.zt.dao;

import org.apache.ibatis.annotations.Param;
import java.util.List;
import com.zt.pojo.Dept;

public interface DeptDao {

    int insert(@Param("pojo") Dept pojo);

    int insertList(@Param("pojos") List< Dept> pojo);

    List<Dept> select(@Param("pojo") Dept pojo);

    int update(@Param("pojo") Dept pojo);

}
生成的Service文件:
package com.zt.service;

import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.zt.pojo.Dept;
import com.zt.dao.DeptDao;

@Service
public class DeptService {

    @Resource
    private DeptDao deptDao;

    public int insert(Dept pojo){
        return deptDao.insert(pojo);
    }

    public int insertList(List< Dept> pojos){
        return deptDao.insertList(pojos);
    }

    public List<Dept> select(Dept pojo){
        return deptDao.select(pojo);
    }

    public int update(Dept pojo){
        return deptDao.update(pojo);
    }

}

生成的SQL文件:

-- auto Generated on 2018-04-03 11:41:56 
-- DROP TABLE IF EXISTS `dept`; 
CREATE TABLE dept(
    `id` INTEGER(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'id',
    `dept_no` NUMBER(12) NOT NULL DEFAULT -1 COMMENT 'deptNo',
    `dname` VARCHAR2(50) NOT NULL DEFAULT '' COMMENT 'dname',
    `loc` VARCHAR2(50) NOT NULL DEFAULT '' COMMENT 'loc',
    PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT 'dept';

grep console

控制台彩色日志, 可以自定义info, error 等等这些日志等级的输出颜色 自定义日志颜色,idea控制台可以彩色显示各种级别的log,安装完成后,在console中右键就能打开。

并且可以设置不同的日志级别的显示样式。

Translation

翻译插件

选中要翻译的文本,鼠标右键或者快简介Ctrl+Shift+Y 也可以

Alibaba Java Coding Guidelines

阿里巴巴代码规范检查插件,当然规范可以参考《阿里巴巴Java开发手册》。

CamelCase

  将不是驼峰格式的名称,快速转成驼峰格式,安装好后,选中要修改的名称,按快捷键shift+alt+u。

GenerateAllSetter

一键调用一个对象的所有set方法并且赋予默认值 在对象字段多的时候非常方便,在做项目时,每层都有各自的实体对象需要相互转换,但是考虑BeanUtil.copyProperties()等这些工具的弊端,有些地方就需要手动的赋值时,有这个插件就会很方便,创建完对象后在变量名上面按Alt+Enter就会出来 generate all setter选项。

Rainbow Brackets

彩虹括号

MyBatis Log Plugin

把 mybatis 输出的sql日志还原成完整的sql语句。 将日志输出的sql语句中的问号 ? 替换成真正的参数值。可以选择格式化sql 需要配合mybatis的开启sql语句打印控制台的配置如下:

<settings> 
    <!--打印sql语句--> 
    <setting name="logImpl" value="STDOUT_LOGGING" /> 
</settings> 

自定义主题样式

自定义IDEA工具栏

 效果如图所示

 

 设置打开多个文件显示在多行tab上

自定义快捷键

Code->Surround With... try..catch ..

Code->Completion->Basic   代码提示

Code-->Generate... 代码生成

Other-->new ...  新建文件/文件夹...

社区版可以安装这两个软件

数据库插件需要在View-->Tool Windows -->DB Broser打开窗口,输入连接信息即可

 

 

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CDHong.it

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值