Posts

Showing posts from June, 2018

[Java] รู้จัก Spring Boot ฉบับมือใหม่

Image
          Spring Boot หน้าที่หลักๆ คือจัดเตรียมโปรเจคให้เรามี library ที่เกี่ยวข้องอย่างครบครัน และมี embedded application server ติดมาให้ เป็นประโยชน์ในการ test มากๆๆ            Spring Initializr  เหมาะสำหรับผู้เริ่มต้นโปรเจค Spring Boot เป็นเว็บไซต์ที่จะช่วยสร้างโปรเจคอย่างง่ายขึ้นมา โดยจะต้อง download มาเป็น *.zip หรือในบาง editor ก็สามารถสร้างโปรเจคในลักษณะเดียวกันได้เลย(ไม่ต้องผ่านเว็บก็ได้) ในเคสนี้ผมลองสร้างผ่านเว็บครับ เอาแบบ clean สุดๆ ไม่ได้ใส่อะไรเพิ่มเลยนะครับ โหลดมาแล้วจะเห็นว่าเป็น maven project ตามที่ได้เลือกไว้ และนี่คือสิ่งที่ maven dependency ดูดมาให้เรา mvn dependency:tree [INFO] --- maven-dependency-plugin:3.0.1:tree (default-cli) @ SpringBoot2Tutorial --- [INFO] th.in.lordgift:SpringBoot2Tutorial:jar:0.0.1-SNAPSHOT [INFO] +- org.springframework.boot:spring-boot-starter:jar:2.0.0.RELEASE:compile [INFO] | +- org.springframework.boot:spring-boot:jar:2.0.0.RELEASE:compile [INFO] | | \- org.springframework:spring-context:jar:5.0.4.RELEASE:compile [INFO] | |

Push Notification คืออะไร มีวิธีทำอย่างไร (No Code)

Image
Push Notification           Push Notification หรือ การแจ้งเตือน คือ การที่แอปพลิเคชันนำข้อมูลมาแสดงในแถบแจ้งเตือนของระบบปฏิบัติการนั้นๆ กำหนด ไม่ว่าจะเป็น Mobile(iOS, Android) หรือ Computer ทั่วไปซึ่ง modern browser ในปัจจุบันก็สามารถแสดงแถบแจ้งเตือนได้แล้ว Notifications Overview           เราสามารถแบ่งการแจ้งเตือนออกเป็น 2 แบบ ดังนี้ Local Notification            คือ การที่ app. แสดง notification เอง ไม่มีอะไรเกี่ยวข้องกับ server ใดๆ ปกติแล้วจะแยกได้อีก 2 แบบย่อย คือ แจ้งเตือนตามเวลาที่กำหนด และแจ้งเตือนเป็นรอบๆ เช่น แอปนาฬิกาปลุก แอปแจ้งเตือนนัดหมาย เป็นต้น Remote Notification            คือ การที่ app. รับข้อมูลมาจาก server แบบไม่จำเป็นต้อง request ไปก่อน ตัวอย่างที่ยกมาได้ชัดที่สุดคงหนีไม่พ้น โปรแกรมแชท ต่างๆ ของเครื่องเรานี่แหละครับ เมื่อเราส่งข้อความไปหาเพื่อน           สิ่งที่คนทั่วไปเข้าใจ...           สิ่งที่ developer ควรรู้           จะเห็นว่า จริงๆ แล้ว mobile จะต้องเรียกไปที่ server เพื่อให้ server เป็นตัวจัดการข้อมูลก่อน จากนั้นก็ส่งของไปให้ p

[Java] สร้าง Hibernate Entity ด้วยวิธี Reverse Engineering ผ่าน Maven

          การสร้าง Hibernate Entity ผ่าน Eclipse ( สร้าง Hibernate Entity ด้วยวิธี Reverse Engineering ) นั้นอาจจะดูยุ่งยาก เพราะมีขั้นตอนค่อนข้างเยอะ อีกทั้งยังไม่สามารถ share code ร่วมกัน หรือจะเก็บไว้ใช้ในโปรเจคอื่นก็ลำบาก โพสนี้ผมจะมาแชร์วิธีการที่สะดวกมากขึ้น เพราะเราจะ generated Entity ด้วย maven กัน           Maven ไม่ได้เป็นแค่ dependency สำหรับ library เท่านั้น แต่ยังมี dependency ประเภท plugin ทำให้เพิ่มความสามารถของ maven เข้าไปอีก( Maven Plugin ) เช่น เราสามารถดึง application server มาใช้ทดสอบโดยไม่ต้องโหลดมาติดตั้งแยก ( Wildfly Maven Plugin ) หรือ เราจะทำ war file ที่มี configuration สำหรับ production แบบพร้อมใช้งาน ( Maven WAR Plugin ) เป็นต้น           สำหรับโพสนี้เราจะมาใช้  Maven AntRun Plugin  สำหรับ generate Hibernate Entity แบบ pure code กัน ไม่ต้องยุ่งกับเครื่องมือของ editor อะไรอีก และได้ใช้ความสามารถของ Hibernate Reverse Engineering ด้วย ทีนี้เราก็สามารถส่งต่อ config ไปใช้กันภายในทีม หรือจะเผื่อใช้ในโปรเจคอนาคตก็ได้เช่นกัน ก่อนจะเริ่มทำตามตัวอย่าง อยากให้แน

[Java] สร้าง Hibernate Entity ด้วยวิธี Reverse Engineering

Image
          Hibernate ประกอบด้วยหลายส่วน ซึ่งผมได้เขียนไว้แล้วก่อนหน้านี้ ( รู้จัก OR-Mapping และ Hibernate เบื้องต้น ) ในโพสนี้เราจะมาสร้าง ORM ภาคปฏิบัติกัน **คำเตือน ภาพประกอบเยอะมาก**           การ mapping ระหว่าง database กับ class นั้น เรารู้แล้วว่า Entity Class เป็นตัวกลางที่ตอบโจทย์การใช้งาน การที่เราจะสร้าง Entity Class ได้นั้น เราต้องรู้โครงสร้าง database ก่อน ซึ่งเราสามารถตั้งค่า connection และ generated Entity Class โดยอัตโนมัติได้ โดยวิธีการดังกล่าวเรียกว่าวิธีการทำ.. "Hibernate Reverse Engineering"           Hibernate Reverse Engineering ยังมีหัวใจสำคัญอีกอย่างหนึ่งคือ การทำ Type Mapping เพื่อกำหนดว่าถ้าเจอ Database data type ต้องแปลงเป็น Java data type อะไร            Eclipse  ยังคงเป็น editor ที่มีเครื่องมือในการสร้าง Hibernate Entity Class ที่ดีตัวหนึ่งอยู่ ถึงแม้ว่าตอนนี้ผมแทบจะหนีไปใช้ editor จากค่าย  JetBrains  ถึงแม้ว่า  IntelliJ IDEA  สามารถสร้าง Entity Class ได้เช่นกัน แต่ปัญหาคือ Mapped Type จะถูกกำหนดไว้แล้ว (default) ซึ่งบางครั้งเราอ

[Java] รู้จัก OR-Mapping และ Hibernate เบื้องต้น

Image
           Hibernate  คือ Java library ที่เพิ่มความสะดวกสะบายในการใช้งาน database เป็นอย่างมาก เป็นที่รู้จักของ Java Developer เป็นอย่างดี อีกทั้งมี community กว้างขวางมาก ๆ แบบไม่ต้องกลัวว่าถ้าติดปัญหาจะถูกทิ้งให้โดดเดี่ยวเดียวดายกันเลย      ORM           หรือ OR-Mapping หรือชื่อเต็มๆก็คือ Object-Relational Mapping เป็นเทคนิคการใช้ฐานข้อมูลผ่าน Object แทนการใช้ SQL ซึ่งเพิ่มความสะดวกมาก ๆ ให้เหล่าโปรแกรมเมอร์ ซึ่งบางคนก็เรียก Entity บางคนก็เรียก DTO (Data Transfer Object) สุดแล้วแต่ถนัดเลยครับ           ปกติแล้วการใช้งาน Relational Database เราจะต้องรู้จัก TABLE, COLUMN เป็นคำคุ้นหูอยู่แล้ว ซึ่งแน่นอนว่า Class ที่จะนำมาใช้เป็นตัวแทนฐานข้อมูลนั้น ก็มีความใกล้เคียงกันด้วย (พื้นฐาน ต้องอย่าทิ้ง) Relational Database Java Class Table Class Column Attribute ลองมาดูตัวอย่างเต็ม ๆ กัน จากตัวอย่าง ผมตั้งข้อสังเกตให้ 3 อย่าง คือ TABLE, COLUMN จะถูก mapping เข้ากับ class, attribute ผ่าน annotation  data type มีความหมายอย่างเดียวกันแต่ไม่ใช่ตัวเดียวกัน ความสัมพัน

Facebook Comment

Recent Posts

Popular post of 7 days

Portal คืออะไรกันนะ???

มาตรฐานการตั้งชื่อตัวแปร (Naming Convention)

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

Popular

[Java] Java 8 DateTime ใหม่ ไฉไลกว่าเดิม

Portal คืออะไรกันนะ???

มาตรฐานการตั้งชื่อตัวแปร (Naming Convention)

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

เรื่องของ ++i กับ i++

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ

[Java] Java Static Variable และ Static Method

Push Notification คืออะไร มีวิธีทำอย่างไร (No Code)

พิมพ์ซองจากรายชื่อ excel ด้วยวิธี Mail Merge

[Android] เปิดเครื่องไม่ได้ โลโก้ค้าง (Boot Loop)