บทความ

กำลังแสดงโพสต์จาก พฤษภาคม, 2011

วิธี get ค่า auto increment PK ที่ Save ล่าสุด กับ Codeigniter

บทความเกี่ยวกับ : วิธี get ค่า auto increment PK ที่ Save ล่าสุด กับ Codeigniter หลายคนคงเจอปัญหาเรื่องการ บันทึกข้อมูลที่มี PimaryKey เป็น auto increment ว่าหลังจาก save เสร็จแล้วจะรู้ได้อย่างไรว่า PK ตัวล่าสุดที่ save ลงไปเป็นเลขอะไร บางคนแก้ปัญหาด้วยการ select max ออกมาหลังจากที่ save เสร็จแล้ว ซึ่งนั่นโอกาศผิดพลาด ย่อมมีแน่ๆ ถ้าเกิดมีการ Save ข้อมูลพร้อมๆ กันหลายๆ Record Codeigniter แก้ปัญหาให้ด้วยคำสั่งนี้    $this->db->insert_id(); จะ Return pk ตัวล่าสุดที่เรา save ลงไป ซึ่งคำสั่งนี้มีความหมายเดียวกับ คำสั่งของ mysql คำสั่งนี้ mysql_insert_id()   ผมลองทดสอบกับ ฐานข้อมูล MYSQL ดูแล้วพบว่าใช้งานได้เป็นอย่างดี แต่กับฐานข้อมูลตัวอื่นจะใช้ได้หรือไม่อันนี้ต้องลองครับ

Error Report CodeIgniter ชอบตรงจุดนี้จริงๆ

บทความเกี่ยวกับ : Error Report CodeIgniter ชอบตรงจุดนี้จริงๆ วันนี้ลองเขียน CI หรือ Codeigniter (ผมอ่านว่า โค๊ด อิ๊กไน เตอร์ ) ลองทำ Controller , Model ดูเล่นๆ แล้วพบว่าสิ่งที่โดนใจผมมากคือเรื่องของการ รายงาน Error ได้ละเอียดโดนใจมากๆ อย่างเคสนี้ ผมลืมสร้าง table แล้วไปเรียก Insert ด้วยคำสั่งสั้นๆ $this->db->insert('manager',$this); พอ Error ปุ๊บ CI เค้า Report ลึกถึง SQL Command เลยทีเดียว โดนใจมากๆ A Database Error Occurred Error Number: 1146 Table 'svndb.manager' doesn't exist INSERT INTO `manager` (`manager_id`, `manager_name`, `manager_class`, `sex`, `club_name`, `club_level`, `exp`, `next_exp`, `step_id`, `avatar`, `join_date`, `manager_status`) VALUES (0, 'test', '', '', '', '', '', '', '', '', '', '') Filename: C:\AppServ\www\citest\system\database\DB_driver.php Line Number: 330

ตัวอย่าง Model พร้อมการใช้งาน Hibernate กับ Spring Framework

บทความเกี่ยวกับ : ตัวอย่าง Model พร้อมการใช้งาน Hibernate กับ Spring Framework เป็น Model ง่ายๆ นะครับที่ผมทำขึ้นมาเพื่อทดสอบการใช้งาน Hibernate เอาง่ายๆ ให้ดูแล้วเข้าใจก็พอ ไม่มีอะไร package com.en.model; import java.io.Serializable; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.en.dto.MasterDto; import com.en.sap.MasterSAP; import com.en.ws.client.WebServiceClientMaster; public class MasterModel  extends HibernateDaoSupport implements Serializable{     private static final long serialVersionUID = 1L;     protected WebServiceClientMaster wsClient;     protected MasterSAP sap;     public void insertData(MasterDto dto){}     public void deleteData(MasterDto dto){}     public void updateData(MasterDto dto){}     public MasterDto getDataObj(Serializable pk){return null;}     public List<MasterDto> getDataList(){return null;}         public WebServiceClientMaster getWsClient() {        

สร้าง Web Service Client ง่าย ๆ ด้วย Eclipse

บทความเกี่ยวกับ : สร้าง Web Service Client ง่าย ๆ ด้วย Eclipse แค่เพียงเรารู้ URL ของ WSDL ก็สามารถเอามา Generate Code Client ของ WS นั้นๆ ได้แล้วครับ Eclipse จะสร้าง Client Class ต่างๆให้เราเอง เสร็จแล้วก็เรียกใช้งานง่ายๆ ตามตัวอย่างได้เลย package com.en.ws.client; public class WebServiceClientMaster {     private String endpoint;     public String getEndpoint() {         return endpoint;     }     public void setEndpoint(String endpoint) {         this.endpoint = endpoint;     }     public void process(){}; } package com.en.ws.client; import com.en.dto.MasterDto; import com.en.ws.ExampleWSInfProxy; public class ExampleWSClient extends WebServiceClientMaster{     private ExampleWSInfProxy proxy;     public void process() {         proxy=new ExampleWSInfProxy();         proxy.setEndpoint(this.getEndpoint());            }     public MasterDto getData(String codeId){         MasterDto dto=null;         try {             dto=proxy.getData(codeId);        

ชักเหนื่อยแฮะ

สงสัย Blog นี้จะเป็นเพียงสมุด Note ของผมคนเดียวซะแล้ว เพราะตั้งแต่ทำมายังไม่มีแขกแวะเวียนมาซักกะคน น่าแปลก หรือว่ผมเขียนอะไรไม่น่าสนใจ ขนาดว่า google ยังเมินที่จะเอา Blog ผมไปใส่ในผลการสืบค้น เห่อๆ จะว่าไปก็ลำบากขนาดตั้งใจทำแค่ใหนก็กลายเป็นได้แค่ขยะ T_T

Spring Framework กับ Interceptor

บทความเกี่ยวกับ : Spring Framework กับ Interceptor ตัวอย่างการใช้งาน Interceptor ของ Spring Framework เอาไว้ดักการทำงานก่อนเข้า Controller ครับผมประมาณว่า ก่อนจะทำงานทุกครั้งจะต้องวิ่งเข้ามาที่ Interceptor ก่อนนั่นเอง Interceptor Class package com.en.interceptor; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import com.en.model.MasterModel; public class MasterInterceptor extends HandlerInterceptorAdapter{     private String errorURL;     private MasterModel model;         public String getErrorURL() {         return errorURL;     }     public void setErrorURL(String errorURL) {         this.errorURL = errorURL;     }     public MasterModel getModel() {         return model;     }     public void setModel(MasterModel model) {         this.model = model;     }     } package com.en.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger;

Spring framework กับ Multi Action Controller

บทความเกี่ยวกับ : Spring framework กับ Multi Action Controller มาดูตัวอย่างการสร้าง Multi Action กับ Spring กัน นะครับ Controller Class package com.en.controller; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import com.en.model.MasterModel; public class MasterController extends MultiActionController{     protected MasterModel model;     protected String defaultScreen;     public MasterModel getModel() {         return model;     }     public void setModel(MasterModel model) {         this.model = model;     }     public String getDefaultScreen() {         return defaultScreen;     }     public void setDefaultScreen(String defaultScreen) {         this.defaultScreen = defaultScreen;     }     } package com.en.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import com.en.dto.ExampleDto; import com.en.model.ExampleModel; public

อยากจะเผยแพร่ แต่ที่เขียนเอาไว้เตือนความจำ ...แค่นั้น

มีหลายคนอ่าน Blog นี้แล้วคงจะบ่นว่า งง เขียนอะไรไม่รู้เรื่อง เห่อๆ ไม่แปลกใจครับเพราะผมตั้งใจเขียนไว้อ่านคนเดียวเข้าใจคนเดียว ไม่ได้บ้านะ แต่เอาไว้ดูเวลาลืม ตอนทำงานทำโน่นนี่นั่นเยอะแยะไปหมด พอจะมาดูเรื่องเก่าๆ ที่เคยทำไปแล้วทีไรต้อง Research ใหม่ทุกที ผมเลยจะเอา Blog นี้เป็นสมุด Note แต่ยังไงก็ยังอยากจะแบ่งปันนะครับ  ^^ เอาเป็นว่าถ้าใครอ่านแล้วต้องการรู้อะไรเพิ่มเติม โพสถามไว้ได้เลยครับ

ตัวอย่าง Hibernate Mapping Class Annotation

บทความเกี่ยวกับ : ตัวอย่าง Hibernate Mapping Class Annotation วันนี้ไม่มีอะไรจะทำตัวอย่าง Hibernate Mapping Class  Annotation มาให้ดูกันมันอาจเป็นเรื่องพื้นๆ สำหรับคนที่ทำ Hibernate อยู่แล้วแต่มันอาจจะมีประโยชน์สำหรับคนที่ไม่รู้ก็เป็นได้ package com.en.hibernate; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "example") // ชื่อ Table public class Example implements java.io.Serializable {     private static final long serialVersionUID = -169364292963401081L;     @Id     @Column(name = "code_id") // ชื่อ Field     private Integer codeId;     @Column(name = "tdesc")     private String tdesc;     @Column(name = "edesc")     private String edesc;     public Integer getCodeId() {         return codeId;     }     public void setCodeId(Integer codeId) {         this.codeId = codeId;     }     public String getTdesc() {         return

โครงสร้าง Project ของผม กับ Spring Framework

รูปภาพ
บทความเกี่ยวกับ : โครงสร้าง Project ของผม กับ Spring Framework นั่งจัดโครงสร้างอยู่นานสรุปออกมาได้คร่าวๆ ตามนี้แหละครับ แต่ละอย่างมีอะไรกันบ้างก็ตามรูปภาพเลยครับ Controller กับ Model นี่น่าจะคุ้นๆ กันดี ที่แปลกๆ มาก็คงจะมี Interceptor แต่จะว่าไปถ้าคนที่เล่น Spring Framework มาก็คงจะพอรู้จัก ทุกอย่างผมจะเชื่อมโยงกันผ่าน DTO หมดเลยครับลองดูๆ ว่ามันจะเป็นยังไง  

สร้าง Java Web Service ง่ายๆ ด้วย Apache CXF กับ Spring Framework

บทความเกี่ยวกับ : สร้าง Java Web Service ง่ายๆ ด้วย Apache CXF กับ Spring Framework แต่ก่อนถ้าพูดถึง Web Service แล้วคงมองว่าเป็นเรื่องไกลตัว และยุ่งยากในการ Implements แต่ตอนนี้หายห่วงเพราะ มี Tool ต่างๆ มาช่วยอำนวยความสะดวกมากขึ้น วันนี้ขอแนะนำ Apache CXF   ผมได้ทดลองนำเอามาใช้ร่วมกับ Spring Framework ด้วยขั้นตอนง่าย ตามนี้ครับ Service Interface package com.en.ws; import javax.jws.WebParam; import javax.jws.WebService; import com.en.dto.ExampleDto; @WebService public interface ExampleWSInf {     public ExampleDto getData(@WebParam(name="codeId")String codeId); } Service Class package com.en.ws; import java.io.Serializable; import com.en.dto.ExampleDto; import com.en.model.MasterModel; //@WebService(endpointInterface = "com.en.ws.ExampleWSInf", serviceName = "ExampleWS", portName="ExampleWS") public class ExampleWS  implements ExampleWSInf,Serializable {     private static final long serialVersionUID = 1L;     private Mast

BeanWrapper สุดยอด Library จาก Spring ที่ผมชอบมาก

บทความเกี่ยวกับ : BeanWrapper สุดยอด Library จาก Spring ที่ผมชอบมาก BeanWrapper สุดยอด Library จาก Spring ที่ผมชอบมาก รู้สึกว่าเอามาใช้แล้วช่วยให้การออกแบบ Application ทำได้ Dynamic มากขึ้น แบบนี้แหละที่ต้องการนัก ตัวอย่างการใช้งานง่ายๆ ตามนี้เลยคร้าบบบ package com.en.dto; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl; public class MasterDto {     BeanWrapper bw=new BeanWrapperImpl();     public Object getProperties(String pName){         bw.setWrappedInstance(this);         return bw.getPropertyValue(pName);     }     public void setProperties(String pName,Object value){         bw.setWrappedInstance(this);         bw.setPropertyValue(pName, value);     } }

SpringSource Tool Suite Plugin for Eclipse ไว้ Develop Spring โดยเฉพาะ

บทความเกี่ยวกับ : SpringSource Tool Suite Plugin for Eclipse ไว้ Develop Spring โดยเฉพาะ SpringSource Tool Suite Plugin for Eclipse ไว้ Develop Spring โดยเฉพาะ The Best Development Tool for Enterprise Java  คำคำนี้ได้มายังไง เดี๋ยวต้องลองดูกันซักหน่อยว่าจะได้ผลอย่างไรกันบ้าง ตอนนี้กำลังลอง Download อยู่ครับขนาดใหญ่พอดูทีเดียว 300 กว่า M เท่าที่อ่านๆ ดูแล้วน่าจะช่วยอำนายความสะดวกในการ Develop Spring Framework ระดับ Enterprise กันเลยทีเดียว .... เชียว Download ได้ที่นี่เลยคร้าบ

Class กับ Object ต่างกันยังไง เรียน OOP ขำๆ กับคำถามยอตฮิตที่บางคนตอบไม่ถูก

บทความเกี่ยวกับ : Class กับ Object ต่างกันยังไง เรียน OOP ขำๆ กับคำถามยอตฮิตที่บางคนตอบไม่ถูก เรียน OOP ขำๆ กับ OOP คำถามยอตฮิตที่บางคนตอบไม่ถูก คลายเครียดขำๆ นะครับ สมัยเรียน คำถามที่มักจะได้ยินกันบ่อยๆ คือ Class กับ Object ต่างกันยังไง อาจารย์ท่านก็สอนก่อนที่จะถามอยู่หรอกว่า Class คือแบบแปลนหรือพิมพ์เขียว ส่วน Object คือสิ่งที่สร้างขึ้นมาจาก Class นั้นๆ แต่นักเรียนที่นั่งฟังบางคนก็หลับ บางคนก็เข้าใจบ้างแบบว่าชิลๆ แต่ไม่รู้ทำไมเวลาอาจารย์ถามว่า ถ้่าต้นมะม่วง คือ Class  แล้ว Object ของต้นมะม่วงคืออะไร ?? คำตอบที่ได้มักจะเป็นแบบนี้ทุกที   อันดับ 1  ลูกมะม่วง  โอววแน่นอนผลิตผลจาก Class  ฮ่าๆๆๆ บ้างก็บอก ว่า ดอก ใบ กิ่ง ราก กันไปต่างๆ นาๆ ซึ่งเป็นคำตอบที่ผิดทั้งนั้น แล้วคุณล่ะ คิดว่า Object ของ Class ต้นมะม่วงคืออะไรฝากไว้ให้คิดกันก่อนนะ แล้เดี๋ยวผมจะมาเฉลย หุหุ

Interface กับ Abstract Class ต่างกันอย่างไร

บทความเกี่ยวกับ : Interface กับ Abstract Class ต่างกันอย่างไร Interface กับ Abstract Class ต่างกันอย่างไร เอาล่ะวัีนนี้มารื้อฟื้นความทรงจำเกี่ยวกับเรื่องของ OOP  ตามแบบของ Java กันซักนิด หลายคนชอบเอา  Interface กับ Abstract มาเปรียบเทียบกัน บางคนบอกมันคล้ายๆ กัน แต่สำหรับผมแล้ว มันคนละเรื่อง เพราะมันคือ Interface กับ Class แค่รูปแบบการสร้างอะไรต่างๆ มันก็ไม่เหมือนกันแล้วครับ พี่น้อง แต่คงเนื่องด้วยการนำมาใช้งานที่ดูเผินๆ แล้วมันค่อนข้างจะไกล้เคียงกัน นั่นเป็นเพราะคุณเอามาใช้งานผิดประเภทนั่นเอง งานบางงานควรใช้แค่ Abstract Class แต่คุณกลับเอา Interface มาใช้ ผมจะตอบตามในหนังสือเลยละกันนะครับ เค้าก็เขียนไว้ถูกต้องแล้ว Abstract Class คือ Class แม่แบบครับที่ออกแบบวางโครงสร้างไว้แต่ยัง Implements ไม่เสร็จ จะว่าไปก็คงไม่เสร็จหรอกเพราะไม่ต้องการจะ Implements เพียงแค่วางโครงออกมาให้ เค้า สืบทอดไป Implements ต่อ Interface เอาไว้แก้ปัญหา การสืบทอดครับ เพราะถ้าเป็น Class แล้วจะสืบทอดจาก Class แม่ได้เพียง Class เดียวเท่านั้น แต่ Interface สามารถ Implements ได้ไม่จำกัด

Java Call PL SQL จาวา เรียก ใช้ Oracle PL SQL

บทความเกี่ยวกับ : Java Call PL SQL จาวา เรียก ใช้ Oracle PL SQL Java Call PL SQL   จาวา เรียก ใช้ Oracle PL SQL หลายๆ คนที่ใช้ Oracle มักจะหนีไม่พ้นการใช้งาน PL SQL เพื่อ Process งาน ฟากฝั่ง database  แต่ถ้าเมื่อไรมีเหตุให้ต้องเรียกใช้โดย Java ก็มันจะเกิดคำถามว่า มันเรียกใช้ยังไง เหมือนกับการใช้งาน SQL Command ทั่วๆ ไปหรือเปล่า มาดูกัน กับตัวอย่างง่ายๆ ดังนี้ครับท่าน CallableStatement call = con.prepareCall("{?=call TEST_PACLAGE.TEST_PL(?,?,?) }");                 call.setString(2, "88888888");                 call.setString(3, "999999999");                 call.setString(4, null);                 call.registerOutParameter(1, OracleTypes.CURSOR);                 call.execute();                                                                    ResultSet billTypeSet=(ResultSet)call.getObject(1); ตามนี้แหละครับท่าน หุหุ สงสัยประการใดถามได้เลยนะคร้าบบบ กระผม

Servlet Download DoGet Method แก้ปัญหา ไฟล์นอก Web Root

บทความเกี่ยวกับ :Servlet Download DoGet Method แก้ปัญหา ไฟล์นอก Web Root Servlet Download DoGet Method แก้ปัญหา ไฟล์นอก Web Root      วันนี้ข้ามฟากมาทาง Web Content นิดหน่ือยนะครับเกี่ยวกับเรื่องการทำ Script Download File เรื่องแบบนี้ไม่น่าจะยาก ถ้าไฟล์ที่จะทำการ Doanload เก็บอยู่ในห้อง Web content หรือ Web Root เราก็แค่ทำ Link URL ชี้ไปที่ไฟล์นั้นก็เรียบร้อย      แต่ถ้าไฟล์นั้นไม่ได้อยู่ในห้อง  Web Root ล่ะจะทำอย่างไร แนวทางง่ายๆ ก็ต้องเขียน โปรแกรมไปอ่านมาน่ะสิแล้วค่อยปล่อยออกไปให้ Download  ผ่าน Servlet ตามตัวอย่างด้านล่าง   private void doDownload( HttpServletRequest req, HttpServletResponse resp,                              String filename, String original_filename )         throws IOException     {         File                f        = new File(filename);         int                 length   = 0;         ServletOutputStream op       = resp.getOutputStream();         ServletContext      context  = getServletConfig().getServletContext();         String     

Java Write File ภาษาไทย รองรับ ภาษาไทย

บทความเกี่ยวกับ : Java Write File ภาษาไทย รองรับ ภาษาไทย Write File รองรับภาษาไทย ครับ คำสั่งง่ายๆ ที่หลายคนมันกจะเจอปัญหา เกี่ยวกับเรื่อง Encode ภาษาไทยตอน Write File BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("xxx.csv", true),"tis620")); bw..newLine(); bw.write("String Test"); bw.close(); ลองดูตามขั้นตอนนี้ครับแล้วจะรู้ว่า ได้ผลแน่แท้เลยทีเดียว

Dynamic Java Call Runtime Method

บทความเกี่ยวกับ : Dynamic Java Call Runtime Method Dynamic Java Call Runtime Method วันนี้หาอะไรมาให้ พลิกแพลงเล่นๆ เผื่อจะนำไปประยุกต์ใช้กับงานได้ Dynamic Java พูดให้ฟังดูเพราะหูแต่จริงๆ แล้วมันก็คือการ invoke Method ขณะ Run time เอา Code ไปดูกัน Class c=this.getClass(); Method m=c.getMethod(formatName, new Class[]{String.class}); String data=(String)m.invoke(this,new Object[]{input}); ดูแล้วไม่ต้องสงสัยว่าเอาไปทำอะไรเพราะคุณจะไม่เข้าใจจนกว่าคุณจะเจองาน ที่คุณจำเป็นต้องใช้มัน

Java Number Format จัด Format การแสดงผล ตัวเลขง่ายๆ

บทความเกี่ยวกับ : Java Number Format จัด Format การแสดงผล ตัวเลขง่ายๆ Java Number Format จัด Format การแสดงผล ตัวเลขง่ายๆ พักยกเรื่องหนักๆ มาเข้าสูบท Java เบื้องต้นกันดีกว่า วันนี้ไม่มีอะไรมาก แค่อยากนำเอาความรู้พื้นฐานที่หลายคนอาจจะลืมไปแล้วมาฝากกัน นั่นคือ เรื่องของ Nuber Format นั่นเอง เอาตัวอย่าง Code ไปดูกันเลย int input=8000000; DecimalFormat dc=new DecimalFormat(); dc.applyPattern("#,###,###"); String numberFormat=dc.format(input); ง่ายๆ แบบนี้แหละครับพี่น้องอยากได้ Format อะไร ก็ใส่ Pattern ลงไปได้เลย