วันอังคารที่ 1 ธันวาคม พ.ศ. 2558

LocalDate Java 8



LocalDate เป็น future java 8 ทำขึ้นมาเพื่อความสะดวกในการหาเรื่องเกี่ยววันเวลา ซึ่งสามารถเรียกการใช้งานได้อย่างง่ายดายมาก ดังตัวอย่างด้านล่างได้เลยครับ


package com.learningjava;

import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.ChronoUnit;

public class TestLocalDate {

    public static void main(String[] args) {
        LocalDate toDay  = LocalDate.now(); // today  -> instance /object
        System.out.println(toDay);//วันปัจจุบัน  yyyy-mm-dd
        System.out.println(toDay.getDayOfWeek());//วันปัจจุบันวันอะไร เช่น  MONDAY,Tuesday TUESDAY,WEDNESDAY
        System.out.println(toDay.getDayOfMonth());//วันปัจจุบัน เป็นวันที่เท่าไรของเดือน
        System.out.println(toDay.getDayOfYear());//วันปัจจุบัน เป็นวันที่เท่าไรของปี


        //สมมุติว่าเราต้องการวันที่ 99 ของปี 2015
        LocalDate day99  = LocalDate.ofYearDay(2015,99);
        System.out.println("วันที่ 99 ของปี 2015 คือ "+day99);//วันที่ 99 ของปี 2015


        //สมมุติว่าเราต้องการหาจำนวณวันที่จะถึงสิ้นปี ของปี 2015
        LocalDate endYear = LocalDate.of(2015, Month.DECEMBER,31);
        System.out.println("อีกกี่วันจะถึงสิ้นปี  "+toDay.until(endYear,ChronoUnit.DAYS));

        //สมมุติว่าเราต้องการหาวันเกิดของเรา
        LocalDate birthDate = LocalDate.of(1989, Month.APRIL,30);//ปี,เดือน,วันที่
        System.out.println("จำนวนวันนับตั้งแต่วันเกิด "+birthDate.until(toDay,ChronoUnit.DAYS));
        System.out.printf("อายุ %d ปี %d เดือน %d วัน", birthDate.until(toDay).getYears(), birthDate.until(toDay).getMonths(), birthDate.until(toDay).getMonths());
    }
}

วันจันทร์ที่ 16 พฤศจิกายน พ.ศ. 2558

Spring Batch TaskScheduler โดย Spring boot

       

       Spring Batch TaskScheduler  มีหน้าที่ทำให้การกระทำอย่างใดอย่างหนึ่งสั่งให้ทำงาน ณ ช่วงเวลาที่เรากำหนดได้ ไม่ว่าจะทำทุกๆ 5 นาที  ทำทุกๆ เทียงคืนของวันนั้นก้ได้ตามสบายใจที่กำหนดได้เลย หรือซึงโปรแกรมเมอร์ส่วนใหญ่คุ้นเคยกันดีนั้น คือ  Run batch file  ตามเวลาที่กำหนดนั้นเอง   โดยหลักการทำงานของเจ้าตัว TashkScheduler  อยู่ในรูแบบของ Thread (เทรด)  ซึงมันจะสแกนมีช่วง Thread นั้นๆ มันก้ทำงาน


โครงสร้างไฟล์โปรแกรม



ไฟล์ pom.xml  เพิ่ม dependencies  ดังนี้


 
  
   org.springframework.boot
   spring-boot-starter-batch
  
  
   org.springframework.boot
   spring-boot-starter-web
  
  
   org.springframework.boot
   spring-boot-starter-tomcat
   provided
  
  
   org.springframework.boot
   spring-boot-starter-test
   test
  
 

 
 - เพิ่ม annotation  @ComponentScan  เพื่อ scan package
 - เพิ่ม annotation  @EnableSchecduling   เพื่อเปิดใช้งาน Schecduling

















- เพิ่ม class  พร้อมกำหนด @Component เพื่อให้ spring รู้จักว่าเป็น componet class
- เพิ่ม  @Scheduled  บน method  พร้อมกำหนดค่า delay ในละช่วงเวลา ในตัวอย่างคือ 5 วินาที



เมื่อรันเสร็จก้จะได้ผลลัพธ์ออก log ดังนี้








ง่ายไหมละครับ ซึ่งตัวอย่างทำขึ้นแบบง่ายๆสามารถนำไปต่อยอดได้กันเลยทีเดียว  นะฮะ


วันเสาร์ที่ 15 สิงหาคม พ.ศ. 2558

คำสั่ง Git basic





git clone  url  
      เป็นคำสั่งดึงข้อมูลจาก Remote repository มาไว้ในเครื่อง local

git branch
     เป็นคำสั่งดู branch ปัจจุบัน

git branch namebranch 
     เป็นคำสั่งกรณีต้องการแตก branch

git branch -d namebranch 
      เป็นคำสั่งกรณีต้องการลบ branch

git checkout namebranch
      เป็นคำสั่งสลับ branch เมื่อต้องการว่าเราอยู่ที่ branch ไหน

git checkout -b namebranch
     เป็นคำสั่งสร้าง branch พร้อมสลับไปยัง branch ที่สร้างใหม่

git status
     เป็นคำสั่งตรวจสอบสถานะที่มีการเปลี่ยนแปลงทั้งเครื่อง local และบน Remote repository

git add ..
     เป็นคำสั่งเพิ่มไฟล์หรือไฟล์ที่เราแก้ไขเพื่อที่จะเอาขึ้น Remote repository

git commit -m"comment" 
       เป็นคำสั่งการยืนยันการเพิ่มไฟล์พร้อมใส่ comment

git pull origin namebranch
      เป็นคำสั่งดึงข้อมูลลงมาจาก Remote repository  มาไว้ในเครื่อง local

git push origin namebranch
      เป็นคำสั่งส่งข้อมูลจากเครื่อง local ไป update บน Remote repository

git fetch origin master
    เป็นคำสั่งดึงไฟล์ทั้งหมดเฉพาะ branch ที่เราต้องการมาไว้บนเครื่อง local

git merge namebranch
     เป็นคำสั่ง merge ไฟล์โดยระบุ branch ที่ต้องการ merge

git log
     เป็นคำสั่งดู log การทำงานทั้งหมด

git rm -r sub_folder
    เป็นคำสั่งใช้ลบไฟล์หรือ folder

วันพฤหัสบดีที่ 23 กรกฎาคม พ.ศ. 2558

Hibernate Framework


  1. Hibernate Framework ซึ่งเป็น ORM หรือ Object/Relational Mapping ที่มีความสามารถในการช่วยจัดการกับโปรแกรมที่อยู่ในรูปออบเจ็กต์ ให้สามารถใช้งานกับระบบฐานข้อมูลได้อย่างมีประสิทธิภาพ ไม่ว่าจะเป็น การสร้างตาราง การเพิ่ม ลบ แก้ไข ค้นหาข้อมูลต่างๆ ในฐานข้อมูล อาทิ MySQL, MSSQL, Oracle และอื่นๆ ซึ่งมีการใช้งานกันอย่างแพร่หลาย 

วันจันทร์ที่ 13 กรกฎาคม พ.ศ. 2558

คำสั่ง INSERT SELECT

    insert select คือ เป็นคำสั่งที่สามารถคัดลอกข้อมูลจากตารางหนึ่งไปแทรกลงตารางที่มีอยู่ได้โดยต้องมีโครงสร้างเหมือนกัน

  - ต้องการ insert ข้อมูลลง member2 จากข้อมูล member1 (ต้องโครงสร้างเท่ากัน)
     insert into member2  select * from member1

  - ต้องการ insert ข้อมูลลง member2 จากข้อมูล member1 (ต้องมีโครงสร้างเท่ากัน)  โดยมีเงื่อนไข fname เท่ากับ m1
     insert into member2  select * from member1 where fname='m1'

  - ต้องการ insert ข้อมูลลง member2 จากข้อมูล member1 โดยระบุฟิวส์
    insert into member2 (fname,lname,nicknam) select fname,lname,nicknam from member1

 - ต้องการ insert ข้อมูลลง member2 จากข้อมูล member1 โดยระบุฟิวส์และมีเงื่อนไข fname เท่ากับ m1
     insert into member2 (fname,lname,nicknam) select fname,lname,nicknam from member1 where fname='m2'