Java

Java : Connect Data base && Thai Language

กันลืมนะ จะได้ค้นง่ายๆ ทั้ง Method เลยแล้วกัน
private void openConnection(){
    Connection connection = null;
    try {
                // Load the JDBC driver
                // MySQL MM JDBC driver
                String driverName = "org.gjt.mm.mysql.Driver";
                Class.forName(driverName);
                // Create a connection to the database
                String serverName = "localhost";
                String mydatabase = "mydb";
                // a JDBC url
                String url = "jdbc:mysql://" + serverName +  "/" + mydatabase;
                url += "?useUnicode=true&characterEncoding=UTF-8";
                String username = "root";
                String password = "rootpassword";
                connection = DriverManager.getConnection(url, username, password);
                stmt = connection.createStatement();
        } catch (ClassNotFoundException e) {
                System.out.print("Can't Find JDBC Driver for connect Database");
        } catch (SQLException e) {
                System.out.print("Can't Connect Database");
        }
}
//@End Method openConection()

จุดสำคัญจริงๆ คงอยู่ตรง
url += "?useUnicode=true&characterEncoding=UTF-8";
นี่แหล่ะนะ

Java : Open File

ตอนนี้กลับมานั่งศึกษา Java อีกแล้ว หลังจากท้ิงไปนาน เพราะว่าตอนนี้คนรอบข้างเกือบทุกคน ทำแต่ Java กันหมด ก็เลยรู้สึกกลับมาสนุกกับมันอีกครั้งหล่ะมั้ง

ค่อยๆ รื้อฟื้นความรู้กันอีกครั้ง ซึ่งจริงแล้วสำหรับ Java ที่เคยทำมาก็ใช้แต่ J2SE ไม่เคยใช้อย่างอื่นเลย ทำแต่ Application อย่างเดียว

วันนี้ลองนั่งเขียน Application เล่นๆ ดูซักตัว ซึ่งเดียวนี้รู้สึกว่ามันทำได้ง่ายดายเลย เพราะว่าใช้ Netbeans ต่างจากเมื่อก่อนเยอะเลย โจทย์ก็คิดไม่ออกว่าจะทำอะไร ก็เลยหากินกับเรื่องง่ายที่สุดก่อนนี่แหล่ะ ทำ Application สำหรับเปิดอ่าน Text File ธรรมดาก็แล้วกัน แต่เอาให้ซับซ้อนหน่อยก็แล้วกัน ตรงที่ต้องเปิดไฟล์ ภาษาไทย ได้ด้วย

สำหรับ Code การเปิดอ่านๆ ไฟล์ภาษาไทยก็มีดังนี้

private String openFile(String path){
        String message = "";
        String showMessage = "";
        try{
            BufferedReader br = new BufferedReader(new InputStreamReader(
                                                   new FileInputStream(path),"UTF-8"));
            while((message = br.readLine()) != null){
                showMessage += message+"\n";
            }
            return showMessage;
        }
        catch(IOException e){
           System.out.println("I/O Error, Can't Access File");
           return showMessage;
        }
    }//@End Method openFile()

ขี้เกียจนะมานั่ง เปรียบเทียบแล้ว ว่าระหว่าง Python กับ Java อันไหน มันง่ายกว่ากัน เอาเป็นว่าเขียนมันทั้งสองภาษาเลยก็แล้วกัน :D

ลาแล้ว Java

ต้องกลับมาเขียนโปรแกรมแนว Application แบบจริงจังอีกครั้ง เพราะว่าจะต้องเริ่มทำการ Implement ตัว Thesis แล้ว หลังจากนั่งอ่านทฤษฏีมาตั้งนาน คราวนี้ก็ถึงเวลาต้องทำให้มันเป็นรูปเป็นร่างซะที

ก่อนที่จะเริ่มทำการ Implement ก็คงต้องเลือกเครื่องมือให้ได้ก่อนว่า จะใช้ภาษาอะไรเขียน และมันมีความเหมาะสมกับงานมากน้อยเพียงใด พอกลับมาคิดเรื่องนี้ทีไรก็ปวดหัวทุกที

คงเป็นเรื่องแนวคิดอะไรหลายๆ อย่าง หรืออาจเพราะไม่ได้เขียนโปรแกรมพวก Application มานาน เพราะหลังๆ หันไปเขียนพวก web applicaton ตลอด และจะทำอะไรก็ไม่ค่อยพ้นพวกฐานข้อมูล

อยู่ในวังวลมาตลอด วิธีคิดก็เลยฝังหัวเวลาจะคิดโปรแกรมอะไร สิ่งแรกที่จะคิดถึงเลยคือ ต้องเป็น Web application PHP + MySQL ทำงานแบบ Client - Server

พอตอนนี้กลับมานั่งเขียนโปรแกรมประเภทที่ไม่ Web application เลยสับสนในวิธีคิดหลายๆ อย่างเลยต้องนั่งจูนความคิดกันใหม่อีกรอบหนึ่ง

คราวนี้ก็ต้องกลับมานึกถึงเรื่องของภาษาที่จะใช้ เมื่อก่อนเคยประทับใจกับ Java เพราะชอบแนวคิดการเขียนโปรแกรมแบบ OOP ย้อนไปกลับไปเมื่อก่อนก็ใช้ Java พัฒนาโปรแกรมมาตลอด ส่วนใหญ่จะใช้ทำงานส่งอาจารย์ บวกกับว่า สมัยนี้มี Netbeans ด้วยแล้วยิ่งสบายใหญ่ พักหลังๆ มาก็พยายามหันไปหัดพัฒนา Web application ด้วย JSP เคยลองพยายามแล้วก็ไม่ประสบความสำเร็จเท่าไร อาจเป็นเพราะความขี้เกียจของตัวเองด้วยหล่ะมั้ง รู้สึกว่า ตัวภาษา JSP มันทำให้เรารู้สึกไปว่า ทำไมถ้าเราต้องการที่จะเขียน web application ขึ้นมาใช้งานซักอย่างหนึ่ง ทำไม่เราต้องยุ่งยากอะไรขนาดนั้น แล้วทำไมต้องศึกษา รึว่าใช้ความรู้อะไรเยอะขนาดนั้น ถ้าเทียบกับตัว PHP ซึ่งบางอย่างมันก็ทำได้ง่ายและรวดเร็วกว่า

พอกลับมาเขียนโปรแกรมด้วย Java หลังจากไม่ได้เขียนไปซะนานเลย ลองเรียนโปรแกรมเล็กๆ ประเภทที่เป็น GUI เล่น ใช้ Netbeans เป็นตัวช่วยก็ทำได้ง่ายดี แต่ก็มีที่ขัดใจอยู่ไม่น้อยคือว่า รู้สึกว่ามันทำงานช้าจังหว่า และตัว Source Code ดูเหมือนว่าจะยิ่งพัฒนาก็จะยิ่งมีความซับซ้อน และการพัฒนาก็ใช้เวลาพอสมควร

พยายามคิดแบบไม่ยึดติด ค่อยๆ หาเหตุผลให้ตัวเอง และลองเปิดใจดู ว่าบางทีอาจจะมีภาษาอื่นที่มันสามารถเขียนได้ง่ายๆ ทำงานมีประสิทธิภาพเทียบเท่าได้กับ Java ตอนนี้เท่าที่รู้ก็มี Python กับ Ruby คงต้องลองเปลี่ยนหันมาศึกษากันดูซักตั้งหนึ่ง

แต่ที่แน่ๆ คือ ตอนนี้ตัดสินใจได้แล้วว่าตัว Thesis จะไม่ใช้ Java ในการ Implement เด็ดขาดเลย

พยายามท่อง คำไว้ในใจว่า อย่ายึดติด...อย่ายึดติด...

Java : Stack

วันนี้ตั้งใจจะไม่อ่านอะไรเกี่ยวกับ Thesis แต่ละลองแบ่งเวลามานั่งลองทบทวนเรื่องเขียนโปแกรมดู หลังจากที่ไม่ได้เขียนโปรแกรมด้วย Java มาซะนานเลย

ก็คงตั้งใจว่าต่อไปถ้ามีเวลาว่างก็คงจะหัดเขียนโปรแกรมอะไรเล็กน้อยๆ ไปเรื่อยๆ แต่สาเหตุที่เลือกใช้ภาษา Java นั้นก็คงเป็นเพียงเพราะว่าเป็นอะไรที่คุ้นเคยกันอยู่แล้วไม่ต้องไปเริ่มอะไรจากศูนย์ใหม่ทุกอย่าง เพราะช่วงนี้คงไม่มีเวลาจะไปนั่งศึกษาอะไรใหม่ๆ ทั้งหมด แต่ใจจริงตอนนี้ก็อยากจะหันมาศึกษา Python อยู่มากๆ เพราะรู้สึกว่ามันน่าสนใจอยู่พอสมควรเลย แต่ว่าช่วงนี้มันจวนตัวแล้วที่จะต้อง Implement Thesis ก็คงเลือกใช้ Java ไปก่อนแล้วกัน

พยายามจะฟ้ืนความรู้เก่าๆ หลังจากที่ร่ำเรียนมาแสนนาน คิดว่าเริ่มต้นด้วยการเขียนโปรแกรม Implement พวก Data Structure ก่อนก็ดีนะ คงเป็นไปตามลำดับขั้นตอนเลย ถ้าหากพูดถึง Data Structure ส่ิงแรกที่จะนึกถึงก็คือ Stack

การจัดการกับ Stack นั้น ภาษา Java ก็ได้เตรียม API เอาไว้ให้เรียบร้อย ก็เลยสบายหน่อยที่ไม่ต้องมานั่งเขียน Class เอง สำหรับ API ที่มีให้ใช้ก็มี

empty() - ดูว่า Stack ได้เก็บค่าอะไรไว้หรือไม่

peek() - ใช้ดูว่าค่าที่อยู่บนยอดบนสุดของ Stack คืออะไร

pop() - ดึงค่าที่อยู่บนยอดสุดของ Stack ออกมา

push() - นำค่าเข้าไปใส่ไว้ใน Stack

แต่สำหรับวิธีการนำค่าเข้าไปใส่ไว้ใน Stack อาจจะงงๆ อยู่นิดหน่อยตรงที่ว่ามันจำนำค่าไปยัดใส่ตรงๆ เลยไม่ได้ต้องทำการแปลงให้เป็น Object ก่อนแล้วจึงสามารถใส่ลง Stack ได้นะ เช่น
Stack st = new Stack();
for(int i = 0; i < 10; i++)
{   
      Object obj = new Integer(i);
      st.push(obj);
}

สุดท้ายก็มีอยู่เท่านี้เองเรื่องราวเกี่ยวกับการใช้ Stack
Syndicate content