ใช้ JSP ติดต่อฐานข้อมูล Microsoft SQL Server 2005 แบบ SQL Authenticate
หลังจากที่หายไปนาน ด้วยกระแสงานหลั่งไหลเข้ามา วันนี้ผมเอาประสบการณ์เล็กๆน้อยๆมาฝาก สำหรับคนที่ต้องการใช้ JSP ติดต่อฐานข้อมูล โดยมีขั้นตอนมากมายแต่ผมจะสรุปให้อย่างง่ายละกันครับว่าุคุณต้องทำอะไรบ้าง แต่ก่อนอื่นคุณต้องมี อุปกรณ์ดังนี้ (ถึงจะง่าย)
- Netbeans 6.5 พร้อมด้วย Java EE plugin
- SQL Server 2005 Express Edition พร้อมกับ Tools ของมัน
- Microsoft SQL Server 2005 JDBC Driver
พอคุณมีครบทั้ง 3 อย่างแล้วให้สร้าง project ใน Netbeans เป็น Web Application เสร็จแล้วให้เราเพิ่ม Library เข้าไปใน Project นั้นคือ sqljdbc.jar แล้วคราวนี้เราก็เริ่มวิธีการติดต่อกันเลยครับ โดย Code นี้เป็นตัวอย่างครับ
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<%
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;user=domesterz;password=1234;");
Statement cstmt=con.createStatement();
ResultSet rs=cstmt.executeQuery("SELECT * FROM users");
if(con !=null){
if(rs != null){
while(rs.next()){
String user = rs.getString("username");
String password = rs.getString("password");
out.print(user);
out.print(password);
}
}
}else{
out.println("Connect Database Failed");
}
con.close();
%>
</body>
</html>และจริงๆ Code แค่นี้สมควรที่จะต่อเข้าฐานข้อมูลได้แล้ว แต่ไม่ครับสำหรับ เพราะเราอาจะเจอ Error หลายๆอย่าง อย่างเช่น TCP/IP อะไรสักอย่าง อันนี้ให้ไปเปิด Port 1433 (ถ้าจะใช้ตามตัวอย่าง) ใน SQL Configuration Management -> SQL Server 2005 Network Configuration -> TCP/IP ไปที่ IP Addresses -> IPAll ตรง Port ให้เขียน 1433 แต่ยังไม่จบครับ
เพราะปกติเวลาเรา Install SQL Server 2005 ครั้งแรกเราจะเข้าไปฐานข้อมูลแบบ Windows Authenticate ดังนั้นเราต้องไปสร้าง Account เพื่อใ้ช้ SQL Authenticate ใน SQL Server Management Studio Express (อันนี้คือของผมเป็น version Express เลยมีคำว่า Express) เสร็จแล้วให้เรา connect แบบ Windows Authenticate ไปก่อน แล้วเข้า Security -> กด mouse ขวาีที่ Logins เลือก New Login จากนั้นก็ใส่ username เปลี่ยนเป็น SQL Authenticate เลือก Database , Language ตามใจ แต่สำหรับ version Express เราต้องเอา “User must change password at next login” ออกเพราะไม่มี Feature นี้ใน Express ไม่งั้นเมื่อกด OK จะ Error
เมื่อได้ User มาแล้วอย่าพึงลองโดยทันที ในฐานข้อมูลเรามีเรื่องสิทธิเข้าถึงข้อมูล ดังนั้นเราต้องไปตั้ง User ของเราให้มีสิทธิเข้าใช้งาน Database ของเรา โดยไปแก้ได้ที่ตัว Database ของเราได้เลยโดย mouse ขวาที่ Database ของเราสักตัวแล้วเลือก Properties -> Permissions เสร็จแล้วจะเห็น User ที่เราสร้างขึ้นมาใหม่ แล้วคราวนี้ก็ลองเลือกเลยครับจะให้ user นี้ทำอะไรได้มั่ง โดยผมก็เลือกแค่หลักๆคือ SELECT INSERT UPDATE DELETE เป็นอันเสร็จพิธีคร่าวนี้เราลอง Run App ของเีราที่ลองต่อ Database ได้เลยครับ
ปล. อาจจะเยอะสักหน่อยนะครับ แต่ผลที่ำได้ก็น่าพอใจใช้ไหมละ ![]()
| Tweet |
เนื้อหาคล้ายกันที่น่าสนใจ

ผิดตรงนี้ครับ
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
เปลี่ยนเป็น
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
jdbc:sqlserver://localhost:1433;user=domesterz;password=1234;
เปลี่ยนเป็น
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DataBaseName”,”user”,”password”
อยากทราบว่า ถ้าเราใช้ JSP โดยใช้โปรแกรม netbean 6.7.1 คือว่าต้องการติดต่อฐานข้อมูลกับ MySQL Server 5.1 แบบ SQL Authenticate ยังไงหรอคะ แบบว่าไม่ต้องทำผ่าน servlet นะค่ะ
และอยากได้วิธีการติดตั้ง My SQL Server 5.1 สำหรับการทำ Web ด้วยนะค่ะ เพราะว่าจะนำไปใช้ในโปรเจคนะค่ะ
ช่วยด้วยนะคะ
ขอบพระคุณเป็นอย่างสูงเลยค่ะ
ตัวนี้ก็ไม่ได้ผ่าน JSP/Servlet มันเป็นของคู่กันนะครับ อธิบายยาวอะ ลองวิธีของ comment บนดูนะครับ
ขอบคุณสำหรับคำตอบนะคะ อยากรู้ตรงนี้ด้วยนะค่ะ
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DataBaseName”,”user”,”password”
ตรง DatabaseName นี่คืออะไรหรอคะ ถ้าสมมติว่าเข้าใจถูกนะคะ database ตรงนี้คือ ประมาณนี้หรือป่าวคะ
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DSSHOUSE-2”,”user”,”password”
DatabaseName น่าจะเป็นชื่อของฐานข้อมูลนะครับ DSSHOUSE-2 ไม่แน่ใจว่าเป็นชื่อของฐานข้อมูลหรือชื่อเครื่องกันแน่นะครับ แต่มันต้องเป็นชื่อของฐานข้อมูลนะครับตรงส่วนนั้นแล้วก็เครื่องหมาย ” จริงๆมันต้องเป็น ” นะครับระวังนิดหนึ่ง