Java GUI and Database Connection |
Java GUI and Database Connection ในการเขียน Java แบบ GUI สิ่งที่ขาดไม่ได้เลยอย่างยิ่งในการออกแบบระบบโปรแกรม ก็คือการเขียน Java เพื่อติดต่อกับฐานข้อมูลและ Database ซึ่งจะใช้เป็นคลังข้อมูลในการทำงานและเก็บรายละเอียด จัดเก็บ ข้อมูล ต่าง ๆ ของโปรแกรม โดยพื้นฐานทั่ว ๆ ไปแล้วฐานข้อมูลที่เราใช้จะได้แก่ MS Access , MySQL , MariaDB , SQL Server และ Oracle Database ส่วนพวกการทำงานพื้นฐานทั่ว ๆ ไปที่จำเป็นก็ได้แก้ การ Read/Add/Insert/Update และ Delete แค่นี้ก็ครอบคลุมที่จะสามารถ Apply ใช้กับส่วนของโปรแกรมต่าง ๆ ได้แล้ว
Java GUI and Database Connection
และในการใช้ Java GUI เพื่อติดต่อกับ Database จะใช้เหมือนกับการเขียน Java แบบทั่ว ๆ ไป คือสามารถใช้ JDBC ทำงานร่วมกับ Connector (ชุดคำสั่งในการติดต่อกับ db) ของ Database แต่ล่ะชนิด สำหรับการเชื่อมแต่ล่ะประเภท โดยใน Database แต่ล่ะชนิดจะแนะนำ Connector ต่าง ๆ ที่จะใช้เขียน เพื่อให้เหมาะสมกับ Database ต่าง ๆ ดังนี้
การเขียน Java ติดต่อกับ Database การใช้งาน Connector ของ Database ต่าง ๆ จะมีมาตรฐานเดียวกันเกือบทั้งหมด คือ จะมีความแตกต่างกันแต่ Connection String สำหรับเชื่อมต่อเท่านั้น แต่ในส่วนของ การ Query อื่น ๆ ก็เขียนแทบจะไม่แตกต่างกัน สรุปก็คือ แต่ล่ะ Database เพียงแก้ไข Connection String ก็สามารถเปลี่ยนไปใช้ Database อื่น ๆ ได้ทันที
รูปแบบของ Connection String ของ Database ต่าง ๆ
MS Accesss Database
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connect = DriverManager.getConnection("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};" +
"DBQ=C:\\java\\mydatabase.mdb;uid=;pwd=;");
MySQL Database
Class.forName("com.mysql.jdbc.Driver");
Connection connect = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase" +
"?user=root&password=root");
MariaDB Database
Class.forName("org.mariadb.jdbc.Driver");
Connection connect = DriverManager.getConnection("jdbc:mariadb://localhost/mydatabase" +
"?user=root&password=root");
SQL Server Database
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection connect = DriverManager.getConnection("" +
"jdbc:sqlserver://localhost\\SQL2008;databaseName=mydatabase;user=sa;password=");
Oracle Database
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connect = DriverManager.getConnection("jdbc:oracle:thin:@TCDB", "myuser","mypassword");
จากตัวอย่าง Class.forName("xxx") เป็นชุดคำสั่งของ Connector ของแต่ล่ะ Database ซึ่งอาจจะต้อง Download ไฟล์ JAR มาใช้งานด้วย (ลิ้งค์ของแต่ล่ะ Database ที่ได้แนะนำไว้ก่อนหน้านี้)
Ex 1 : รูปแบบการเชื่อมต่อ Connect กับ Database
Connection connect = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase" +
"?user=root&password=root");
if(connect != null){
System.out.println("Database Connected.");
} else {
System.out.println("Database Connect Failed.");
}
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
}
try {
connect.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
}
Ex 2 : รูปแบบการ Read อ่านข้อมูลมาแสดง
Connection connect = null;
Statement s = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase" +
"?user=root&password=root");
s = connect.createStatement();
String sql = "SELECT * FROM customer ORDER BY CustomerID ASC";
ResultSet rec = s.executeQuery(sql);
while((rec!=null) && (rec.next()))
{
System.out.print(rec.getString("CustomerID"));
System.out.print(" - ");
System.out.print(rec.getString("Name"));
System.out.print(" - ");
System.out.print(rec.getString("Email"));
System.out.print(" - ");
System.out.print(rec.getString("CountryCode"));
System.out.print(" - ");
System.out.print(rec.getFloat("Budget"));
System.out.print(" - ");
System.out.print(rec.getFloat("Used"));
System.out.println("");
}
rec.close();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
}
try {
if(s != null) {
s.close();
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
}
Ex 3 : รูปแบบการ Insert บันทึกข้อมูล
Connection connect = null;
Statement s = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase" +
"?user=root&password=root");
s = connect.createStatement();
String sql = "INSERT INTO customer " +
"(CustomerID,Name,Email,CountryCode,Budget,Used) " +
"VALUES ('C005','Chai Surachai','[email protected]'" +
",'TH','1000000','0') ";
s.execute(sql);
System.out.println("Record Inserted Successfully");
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
}
try {
if(s != null) {
s.close();
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
}
Ex 4 : รูปแบบการเชื่อมต่อ Update แก้ไขข้อมูล
Connection connect = null;
Statement s = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase" +
"?user=root&password=root");
s = connect.createStatement();
String sql = "UPDATE customer " +
"SET Budget = '5000000' " +
" WHERE CustomerID = 'C005' ";
s.execute(sql);
System.out.println("Record Update Successfully");
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
}
try {
if(s != null) {
s.close();
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
}
Ex 5 : รูปแบบการเชื่อมต่อ Delete ลบข้อมูล
Connection connect = null;
Statement s = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase" +
"?user=root&password=root");
s = connect.createStatement();
String sql = "DELETE FROM customer " +
" WHERE CustomerID = 'C005' ";
s.execute(sql);
System.out.println("Record Delete Successfully");
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
}
try {
if(s != null) {
s.close();
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
}
สรุป ในการกระทำกับ Database ทุก ๆ ชนิดของ Database จะใช้รูปแบบคำสั่งเหมือนกันทั้งหมด เพียงแต่เราจะแก้ไขแค่ตรง Class.forName และ Conenction String เท่าเนั้น
ตัวอย่างและบทความที่เกี่ยวข้องในการเขียน Java GUI กับ Database ต่าง ๆ
ตัวอย่างบทความ Java GUI กับ Database Workshop
Property & Method (Others Related) |
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2013-09-05 08:45:57 /
2017-03-27 17:00:31 |
|
Download : |
No files |
|
Sponsored Links / Related |
|
|
|
|
|
|
|