Developer-Tools

Developer-Tools

ช่วย support การพัฒนา Angular, JAVA(ทั้ง Framework เก่าและใหม่) Example : แปลง Entity เป็น Angular model แปลง Entity เป็น parseEntity method แปลง Column table เป็น Entity|Bean ปลด StringBuilder.append ใส่ StringBuilder.append ให้กับ String ...

2317700e update localStorage · by THANADIT BUTHONG (CDGS-ADD)

Developer tools

Overview

  • textbox ด้านบนเป็น command เรียกคำสั่ง
  • textArea ด้านล่างเป็น input ข้อมูล และ output ข้อมูล

Showcase

showcase 1 สร้าง Bean จาก Attribute

ใน textArea ใส่
personId
personName
createUserDate

ใน textbox command พิมพ์ AttributePerLine=>Entity|Bean แล้วกด Enter ใช้สั่ง run command ผลลัพธ์ เป็นการสร้าง Bean จาก Attribute ที่ใส่ลงไป

ทดสอบอีกครั้ง ใน textArea ใส่

personId
personName
createUserDate String

ทำการใส่ String ไว้หลัง createUserDate เพื่อบอกว่า ให้กำหนด createUserDate ให้มี type เป็น String ใน textbox command พิมพ์ AttributePerLine=>Entity|Beanแล้วกด Enter ใช้สั่ง run command

showcase 2 สร้าง parseEntity จาก Entity

ใน textArea ใส่

class TabTDivision {
    private String unitId;
    private String unitAbb;
    @Column(name = "UNIT_ID", unique = true, nullable = false, length = 6)
    public String getUnitId() {
        return this.unitId;
    }

    @Column(name = "UNIT_ID", unique = true, nullable = false, length = 6)
    public void setUnitId(String unitId) {
        this.unitId = unitId;
    }

    @Column(name = "UNIT_ABB", length = 100)
    public String getUnitAbb() {
        return this.unitAbb;
    }

    public void setUnitAbb(String unitAbb) {
        this.unitAbb = unitAbb;
    }
}

ใน textbox command พิมพ์ Entity|AttributePerLine=>ParseEntity แล้วกด Enter ใช้สั่ง run command ผลลัพธ์

NullAwareJsonObjectBuilder.create()
.add("unitId",tabTDivision.getUnitId())
.add("unitAbb",tabTDivision.getUnitAbb())
.build();

showcase 3 ถอด ใส่ StringBuilder.append ให้กับ String

ใน textArea ใส่
final StringBuilder sql = new StringBuilder(107);
sql.append("  SELECT R.RECEIVE_ID ");
sql.append("  FROM FI_RECEIVE R JOIN FI_RECEIVE_ITEM RI ON RI.RECEIVE_ID = R.RECEIVE ");

กดปุ่ม StringAppend เพื่อถอด StringBuilder.append ผลลัพธ์

SELECT 
R.RECEIVE_ID 
FROM 
FI_RECEIVE R
JOIN FI_RECEIVE_ITEM RI ON RI.RECEIVE_ID = R.RECEIVE 

กดปุ่ม StringAppend เพื่อใส่ StringBuilder.append พร้อมใส่ capacity

showcase 4 ทำ copy ระหว่าง Bean สองตัว

ใน textArea ใส่

package th.go.djop.entity;
class TabTCourseDivision{
    private String unitId;
    private String unitAbb;
    private String unitCode;
    @Column(name = "UNIT_ID", unique = true, nullable = false, length = 6)
    public String getUnitId() {
        return this.unitId;
    }

    @Column(name = "UNIT_ID", unique = true, nullable = false, length = 6)
    public void setUnitId(String unitId) {
        this.unitId = unitId;
    }

    @Column(name = "UNIT_ABB", length = 100)
    public String getUnitAbb() {
        return this.unitAbb;
    }

    public void setUnitAbb(String unitAbb) {
        this.unitAbb = unitAbb;
    }

@Column(name = "UNIT_CODE")
public String getUnitCode(){
    return this.unitCode;
}

public void setUnitCode(String unitCode){
    this.unitCode=unitCode;
}
}

package th.go.djop.entity;
class TabTDivision {
    private String unitId;
    private String unitAbb;
    @Column(name = "UNIT_ID", unique = true, nullable = false, length = 6)
    public String getUnitId() {
        return this.unitId;
    }

    @Column(name = "UNIT_ID", unique = true, nullable = false, length = 6)
    public void setUnitId(String unitId) {
        this.unitId = unitId;
    }

    @Column(name = "UNIT_ABB", length = 100)
    public String getUnitAbb() {
        return this.unitAbb;
    }

    public void setUnitAbb(String unitAbb) {
        this.unitAbb = unitAbb;
    }
}

สังเกตว่า ใน textArea มีสอง class class บนเป็น class ตั้งต้น(source) class ด้านล่างเป็น classตัวรับถ่ายค่า(destination) ใน textbox command พิมพ์ TwoClass|AttributePerLine=>CopyAttributesStatement แล้วกด Enter ใช้สั่ง run command ถ้าขึ้น popup เบื้องต้นยังไม่ต้องกำหนดอะไร กด Enter ต่อไป สังเกตผลลัพธ์ ผลลัพธ์จะสร้าง method copy ให้ และมี comment ว่า attribute ไหนที่ไม่ตรงกัน

showcase 5 สร้าง Bean จาก SQL

ใน textArea ใส่

SELECT 
R.RECEIVE_ID,
T.*
FROM 
FI_RECEIVE R
JOIN FI_RECEIVE_ITEM RI ON RI.RECEIVE_ID = R.RECEIVE 
JOIN (
   SELECT TRANSFER_ID,
    TRANSFER_CODE 
     FROM SH_TRANSFER
) T

ใน textbox command พิมพ์ SQLQuery=>OutputColumnName=>OutputColumnName แล้วกด Enter ใช้สั่ง run command ผลลัพธ์

RECEIVE_ID
TRANSFER_ID
TRANSFER_CODE

ใน textbox command พิมพ์ AttributePerLine=>Entity|Bean แล้วกด Enter ใช้สั่ง run command ผลลัพธ์ได้ Bean จาก SQL

showcase 6 สร้างเงื่อนไขต่อ String กับ Where condition ของ SQL

สมมุติเรามี SQL
SELECT 
R.RECEIVE_ID,
T.*
FROM 
FI_RECEIVE R
JOIN FI_RECEIVE_ITEM RI ON RI.RECEIVE_ID = R.RECEIVE 
JOIN (
   SELECT TRANSFER_ID,
    TRANSFER_CODE 
     FROM SH_TRANSFER
) T
WHERE T.TRANSFER_ID = :transferId
AND T.TRANSFER_CODE LIKE :transferCode||'%'
AND R.RECEIVE_CODE LIKE :receiveCode||'%'

ตัดแต่ตรงส่วน Where condition มาใส่ใน textArea ดังนี้

T.TRANSFER_ID = :transferId
AND T.TRANSFER_CODE LIKE :transferCode||'%'
AND R.RECEIVE_CODE LIKE :receiveCode||'%'

ใน textbox command พิมพ์ (SQLQuery=>OutputColumnName)WhereCondition=>WhereConditionWithStringAppendแล้วกด Enter ใช้สั่ง run command ถ้าขึ้น popup ให้ใส่ชื่อ bean ลงไป ผลลัพธ์ ได้ if เพื่อต่อ StringBuilder

if(null!=criteria.getTransferId()){
    sql.append(" AND T.TRANSFER_ID = :transferId");
}
if(null!=criteria.getTransferCode()){
    sql.append(" AND T.TRANSFER_CODE LIKE :transferCode||'%'");
}
if(null!=criteria.getReceiveCode()){
    sql.append(" AND R.RECEIVE_CODE LIKE :receiveCode||'%'");
}

สามารถเปลี่ยนเป็น query.setParameter ได้

ใน textbox command พิมพ์ WhereConditionWithStringAppend=>QuerySetParameters แล้วกด Enter ใช้สั่ง run command ผลลัพธ์
if(null!=criteria.getTransferId()){
    query.setParameter("transferId",criteria.getTransferId());
}
if(null!=criteria.getTransferCode()){
    query.setParameter("transferCode",criteria.getTransferCode());
}
if(null!=criteria.getReceiveCode()){
    query.setParameter("receiveCode",criteria.getReceiveCode());
}

showcase 7 สร้าง query sum ด้วย query

ใน textArea ใส่

SELECT RECEIVE_ID,RECEIVE_ITEM_ID,AMOUNT FROM FI_RECEIVE_ITEM

ใน textbox command พิมพ์ SQLQuery=>OutputColumnName|AttributePerLine=>SumStatement แล้วกด Enter ใช้สั่ง run command ขึ้น popup ให้ใส่ column ที่ต้องการ GroupBy ใส่ receiveId หรือ RECEIVE_ID ลงไป ผลลัพธ์

SELECT 
   RECEIVE_ID,
   SUM(RECEIVE_ITEM_ID) AS SUM_RECEIVE_ITEM_ID,
   SUM(AMOUNT) AS SUM_AMOUNT
FROM (
   SELECT RECEIVE_ID,RECEIVE_ITEM_ID,AMOUNT FROM FI_RECEIVE_ITEM
)
GROUP BY 
   RECEIVE_ID

showcase 8 สร้าง Angular Model

สร้าง Angular Model จาก Entity

ใน textArea ใส่
class example {
private Integer receiveId;
private String receiveName;
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "counter")
@Column(name = "RECEIVE_ID")
public Integer getReceiveId(){
    return this.receiveId;
}

public void setReceiveId(Integer receiveId){
    this.receiveId=receiveId;
}
@Column(name = "RECEIVE_NAME")
public String getReceiveName(){
    return this.receiveName;
}

public void setReceiveName(String receiveName){
    this.receiveName=receiveName;
}
}

ใน textbox command พิมพ์ Entity|Bean=>AngularModel แล้วกด Enter ใช้สั่ง run command ผลลัพธ์

receiveId?: number = null;
receiveName?: string = null;

สร้าง Angular Model จาก SQL Query

showcase 9 สร้าง pattern แปลง ResultList เป็น Bean

ใน textArea ใส่

 SELECT T2.JVN_ID, T6.TITLE_NAME||T2.JVN_NAME|| ''||T2.JVN_SURNAME AS JVN_FULLNAME,T2.JVN_IDCARD 
 ,MIN(T4.REGISTER_DATE)AS REGISTER_DATE 
 ,T7.UNIT_NAME AS CM_UNIT_NAME 
 ,T8.COUNT_CASE 
 ,MIN(T4.JUDGMENT_DATE)AS JUDGMENT_DATE 
 ,T3.MIN_RELEASE_DATE,T3.MAX_RELEASE_DATE,T2. TRST_JUVENILE_REF 
 FROM TRST_CONTROL_PLACE T1  
 INNER JOIN TRST_JUVENILE T2 ON T1.TRST_JUVENILE_REF=T2.TRST_JUVENILE_REF AND T1.RECIEVE_CONTROL_FLAG='1' 
 LEFT JOIN TRST_JUVENILE_RELEASE T3 ON T2.TRST_JUVENILE_REF=T3.TRST_JUVENILE_REF AND T3.RELEASE_STATUS='N' 
 JOIN TRST_JUDGMENT T4 ON T1.TRST_JUVENILE_REF=T4.TRST_JUVENILE_REF  
 LEFT JOIN TABT_ALLEGATION T5 ON T4.ALLEGATION_CODE = T5.ALLEGATION_CODE 
 LEFT JOIN TABT_TITLE T6 ON T2.TITLE_CODE=T6.TITLE_CODE 
 JOIN TABT_DIVISION T7 ON T1.UNIT_ID_CM=T7.UNIT_ID 
 JOIN 
 (SELECT COUNT(TRST_JUVENILE_REF)AS COUNT_CASE,TRST_JUVENILE_REF FROM TRST_JUDGMENT 
 GROUP BY TRST_JUVENILE_REF 
 )T8 ON T4.TRST_JUVENILE_REF=T8.TRST_JUVENILE_REF 
 WHERE 1=1 
 GROUP BY T2.JVN_ID, T6.TITLE_NAME||T2.JVN_NAME|| ''||T2.JVN_SURNAME,T2.JVN_IDCARD,T7.UNIT_NAME 
 ,T3.MIN_RELEASE_DATE,T3.MAX_RELEASE_DATE,T2.TRST_JUVENILE_REF,T8.COUNT_CASE 

ใน textbox command พิมพ์ Bean|SQLQuery|AttributePerLine=>AutoMappingResultListToEntity แล้วกด Enter ใช้สั่ง run command ผลลัพธ์

int index = 0;
entity.setJvnId(AutoMappingUtils.cast(r[index++], Integer.class));
entity.setJvnFullname(AutoMappingUtils.cast(r[index++], String.class));
entity.setJvnIdcard(AutoMappingUtils.cast(r[index++], String.class));
entity.setRegisterDate(AutoMappingUtils.cast(r[index++], Date.class));
entity.setCmUnitName(AutoMappingUtils.cast(r[index++], String.class));
entity.setCountCase(AutoMappingUtils.cast(r[index++], Integer.class));
entity.setJudgmentDate(AutoMappingUtils.cast(r[index++], Date.class));
entity.setMinReleaseDate(AutoMappingUtils.cast(r[index++], Date.class));
entity.setMaxReleaseDate(AutoMappingUtils.cast(r[index++], Date.class));
entity.setTrstJuvenileRef(AutoMappingUtils.cast(r[index++], .class));

update software version

ใน Folder กด run 'uptodate.bat' โปรแกรมตรวจสอบ version ล่าสุดจาก git และดึง version ล่าสุดอัติโนมัติมาให้