Tag Spring

[SPRING] สวัสดีชาวโลก

หลังจาก Blog ตอนที่แล้ว ผมได้เขียนเกี่ยวกับเขียน Spring โดยใช้ VSCode ครับ ซึ่งจาก Blog ตอนก่อน ยังติดปัญหาอยู่ที่ว่าเว็บทำงานแล้ว แต่ไม่มีการแสดงผลอะไรทั้งนั้นเลย ซึ่งใน Blog ตอนนี้ผมจะมาทำ Hello world ครับ สิ่งที่ต้องเตรียม งานที่ทำจาก Blog ตอนก่อนหน้าครับ ถ้าไม่ได้เริ่มมาจาก Blog ผม ก็สามารถเพิ่ม Dependency ไปที่ไฟล์ pom.xml  ดังนี้ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> ลุยยเลยครับ มาดูโครงสร้างของ Project กันก่อนครับ src…

[Spring 4.x] Overview กันสักหน่อย

จาก Blog ในตอนที่แล้ว เราได้ใช้ Spring ไปแล้ว หลายคนอาจจะใช้แบบไม่รู้ตัวก็ได้ครับ ที่นี้เรามาดูภาพรวมของ Spring ดีกว่า ว่ามันมีอะไรบ้างครับ Spring ไม่ได้เกิดมาเพื่อทำเว็บอย่างเดียวนะครับ โดยที่เรารู้จักกันเยอะเป็น Spring MVC กลับมาที่ Spring ดีกว่าครับ Spring มันเป็น Framework  ที่เกิดจากความโหดร้ายของ EJB ใน J2EE ครับ อาทิ เช่น ไม่ต้องการ App Server ตัวใหญ่ๆ การ Implement ที่ต้องเขียน Code เยอะแยะ Code ผูกกับตัว…

[JAVA] Shallow Copy กับ Deep Copy

จากบทความที่แล้วนะครับ จะเป็นการใช้แนวคิด Shallow Copy กับ Deep Copy ใน .Net Framework ภาษา C# ครับ คราวนี้มาถึงตาม Java บ้างครับ เปิดมาที่ Code เลยครับ ใน Blog ผมเตรียม Class Person ไว้ โดยมี Get / Set ปกติ และทำ จริงๆ ถ้าไม่อยากเขียนแบบนี้มันมีตัว BeanUtils.copyProperties ที่ช่วยทำ Shallow Copy ให้ครับ แต่มันมีความพิสดารของ Spring /…

[Internship@True]วันที่ 28-29

ในสองวันนี้ ก่อนจบการฝึกงานที่ยาวนานกว่าสองเดือน(ไม่ได้ทำกับทีม แต่ไปทำกับ Outsource) ผมได้รวมงานของผมที่ทำกับงานของพี่ โดยไฟล์ในส่วนที่พี่ทำใหม่นั้นจะมีการเปลี่ยนแปลงเท่าที่สังเกตมา 2 อย่าง ได้แก่่ การสร้างส่วนของ Class ต่างๆ จากเดิมที่ใช้ aBator มาเป็นการใช้ MyBatis(iBatis แต่เปลี่ยนชื่อใหม่) และใช้ Tools MyBatis generator ในการสร้างClass, DAO และ sqlMap และมีการใช้งานที่ง่ายมากขึ้น โดยเฉพาะใน่สวนของ where clause ที่เราสามารถที่จะเรียก method มาเพื่อให้ตัว Framework มัน Mapping ให้ การวางพื้นฐานการออกตัว Report มาให้แล้ว อันนี้ยังไม่ได้ศึกษาจากที่พี่ทำมาเลยฮ่าๆ

[Internship@True]วันที่ 27

วันนี้ศึกษาการนำเสนอข้อมูลด้วยกราฟเพิ่มเติม(จากที่อาจารย์สอน เราก็ไม่ได้อะไรเลย อ.มัว แต่ไปรับงานนอก) โดยจากข้อมูลที่ได้มา แต่ต้องการที่จะเอาข้อมูลในส่วนของ filter, transmitted และ received โดยกราฟที่ได้ทดลองและศึกษา ได้แก่  แผนภูมิเส้น เพราะจะนำมาแสดงความต่อเนื่องของค่า  filter, transmitted และ received ในแต่ละวัน/เดือนได้ แต่มีปัญหาตรงที่เวลาไป plot แล้วนั้น ในส่วนของ transmitted  กับ received มีความทับซ้อนกัน เพราะค่าทั้ง 2 มีความใกล้เคียงกันมาก เลยไม่ได้ใช้กราฟชนิดนี้ แผนภูมิคอลัมน์ แบบเรียงซ้อน (Stack) จะหาผลรวมของ 3 ค่า   filter, transmitted และ received รวมออกมาในแท่งเดียว เพื่อที่จะลดพื้นที่ในแสดงผลลง แต่มีปัญหา คือ…

[Internship@True]วันที่ 25

จากงานที่ได้รับมอบหมายให้ปรับปรุง ก็จะมีการทำงานย่อยๆ 2 ส่วน ได้แก่ การดึงข้อมูลจาก DB ออกมา (ทำช่วงเข้า) [sql]SELECT * FROM MD_INBOUNDAUDIT_REGEXTV01 WHERE USE_FLAG = ‘Y'[/sql] การแปลงข้อมูลที่ได้เป็น jsonStore เพื่อที่จะเอาไปใส่ตัว combobox ของ Extjs ได้ (ทำช่วงบ่าย) ปัญหาที่พบ โดยหลักๆแล้วจะเป็นการยัดข้อมูลที่ได้ลงตัว Combobox ส่วนการ Query ดึงข้อมูลจาก DB นั้นไม่มีปัญหา ปัญหา: Uncaught TypeError: Cannot call method ‘on’…

[Internship@True]วันที่ 24

เมื่อก่อนที่ได้ Code พี่มาศึกษา เราต้องไล่แกะ Code และมาเขียนเองหมดเลย แต่ตอนนี้พี่เค้าแนะนำ Tool ตัวหนึ่งมาใช้ ชื่อว่า aBator ที่จะช่วยให้ใช้งาน ibatis ได้สะดวกขึ้น โดยจะมีการ Gen Class ต่างๆ, DAO และ sqlMap มาใช้เลยรวมถึง sql พื้นฐานต่างๆด้วย ทำให้เราสบายขึ้นเยอะ การใช้ aBator ในการ gen ไฟล์ที่เกี่ยวข้องในการใช้ ibatis กับ Spring ไฟล์ download ไฟล์มา โดยมีแหล่งความรู้ ดังนี้ …

[Internship@True]วันที่ 21-22

ตอนนี้ก็ได้ทำเว็บจนเสร็จและ และพี่ที่ดูแลก็ OK เพราะ ต้องรอความต้องการของหัวหน้าจริงๆว่าจะให้แสดงอะไรบ้าง สิ่งที่ควรรู้คร่าวๆ เกี่ยวกับ iReport iReport เป็นโปรแกรม open source ที่ใช้ในการออกตัวรายงานรูปแบบต่างๆ มักจะเรียกว่า JasperReport ซึงตัวโปรแกรมจะมีหน้าตาคล้ายกับ Crystal Report โดยเราจะสามารถที่จะสร้างตัวรายงานได้อารมณ์เดียวกับการใช้ Microdsoft Word โดยไฟล์ตัวรายงานที่ได้จะจัดเก็บในรูปแบบ xml (.jrxml) ซึ่งเมื่อนำไป Complie จะได้เป็นไฟล์ (.jasper) พร้อมนำไปใช้งาน เนื่องจากมันฟรี ก็จะมีหลายคนนำไปใช้ในการออก report ในกับ web app โดยในโปรเจคนี้ จะมีการใช้งานเหมือนกัน แต่รอให้ใช้ก่อน แล้วค่อยมาเขียนบล็อกเพิ่ม ลองทำรายงานด้วย…

[Internship@True]วันที่ 19

วันนี้ก็มาสายประมาณ 9.15 แต่ก็ยังใช้คอมไม่ได้ เพราะยังต้องรอตาม Help Desk remote เข้ามาเพื่อที่จะมาจัดการกับ Oracle ให้เรียบร้อย แต่พอมาลองใช้จริงก็ต่อ Database ไม่ได้ ต้องให้พี่ในแผนกมาดูและก็พบว่าค่าที่ทาง Help Desk ให้มานั้นเป็นค่า default ของบริษัท จึงต้องตั้งค่าtnsnames.ora และ sqlnet.ora อีกครั้ง และลองใช้ TOAD ดู ซึ่งกว่าจะเสร็จก็ปาไปเกือบเที่ยงแล้ว ลงไปกินข้าวเหนียว ส้มตำแทนเลย 😛 ช่วงบ่ายนั่งตรวจเว็บครั้งสุดท้าย และก็ช่วยเพื่อนที่ฝึกงานแก้ปัญหาเรื่องเว็บ เป็นพวก php กับ graph โดยในเว็บหน้าที่ 2 ก็จะเป็นการแสดงข้อมูลไล่ตามเดือน และมีสถิติพื้นฐานต่างๆ…

[Internship@True]วันที่ 18

วันนี้ก็มาแต่ประมาน 9 โมงเช้า และสักพักพี่ก็บอกว่าจะมีการเปลี่ยนคอมใหม่ตามอายุการใข้งาน และก็ให้ Backup ข้อมูลไว้พวกโปรแกรม และ Source Code ต่างๆ จากนั้นก็รอทางทีม IT เข้ามาเปลี่ยนคอมตัวใหม่ ซึ่งแรงกว่าตัวเก่ามาก และก็นั่งไล่ลงโปรแกรมที่จำเป็นใหม่ไปจนถึงช่วงบ่ายเท่าที่ทำได้ก่อน เพราะเดี๋ยววันพรุ่งนี้ทาง Help Desk (งานด้านคอมอีกแขนง คือ จะช่วย Support User / แก้ปัญหาขั้นต้นให้) จะเข้ามา Remote เพื่อจะมาลงตัว Oracle Client เวอร์ชั้น 8 เพื่อที่จะให้สามารถที่จะติดต่อกับฐานข้อมูลภายในแผนกได้