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

·詳細配置請參考: ·https://github.com/zhengjunbase/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 ...  新建文件/文件夾...

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章