มีหลายวิธีในการเชื่อมต่อกับฐานข้อมูล SQL Server2000 โดยใช้ Java ต่อไปนี้เป็นสองวิธีที่ใช้บ่อยที่สุด (เชื่อมต่อกับฐานข้อมูลผ่านไดรเวอร์ JDBC)
1. เชื่อมต่อผ่านไดรเวอร์ JDBC ของ Microsoft ไดรเวอร์ JDBC นี้มีสามไฟล์ ได้แก่ mssqlserver.jar, msutil.jar และ msbase.jar ซึ่งสามารถดาวน์โหลดได้จากเว็บไซต์ของ Microsoft (://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502 -461A -B138-2AA54BFDC03A&displaylang=en) หากคุณดาวน์โหลด setup.exe คุณจะต้องติดตั้งไฟล์ดังกล่าวด้วย หลังการติดตั้ง ไฟล์ jar สามไฟล์ข้างต้นจะถูกสร้างขึ้น ไดรเวอร์ JDBC นี้ใช้ JDBC 2.0
ชื่อไดรเวอร์: com.microsoft.jdbc.sqlserver.SQLServerDriver (เช่น classforname ด้านล่าง)
URL การเชื่อมต่อฐานข้อมูล: jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname (เช่น URL ต่อไปนี้)
2. เชื่อมต่อกับฐานข้อมูล SQL Server ผ่านไดรเวอร์ JTDS JDBC ชื่อไฟล์ของไดรเวอร์นี้คือ jtds-1.2.jar และเส้นทางการดาวน์โหลดคือ ( http://sourceforge.net/project/showfiles.php?group_id=33291 ) ไดรเวอร์นี้รองรับ Microsoft SQL Server (6.5, 7.0, 2000 และ 2005) และ Sybase และใช้งาน JDBC3.0 ได้ฟรี
ชื่อไดรเวอร์: net.sourceforge.jtds.jdbc.Driver (เช่น classforname ด้านล่าง)
URL การเชื่อมต่อฐานข้อมูล: jdbc:jtds:sqlserver://localhost:1433/dbname (เช่น URL ต่อไปนี้)
มีรหัส Bean จำนวนมากสำหรับ JDBC เพื่อเชื่อมต่อกับฐานข้อมูล SQL Server บนอินเทอร์เน็ต นี่คือข้อความที่ตัดตอนมาจากบางส่วน: (โปรดเปลี่ยน localhost และ 1433 เป็นที่อยู่เซิร์ฟเวอร์ SQL Server และหมายเลขพอร์ตในแอปพลิเคชันจริงของคุณ และเปลี่ยน dbname เป็นชื่อฐานข้อมูลจริงของคุณ)
นำเข้า java.sql.*;
DatabaseConn ระดับสาธารณะ {
การเชื่อมต่อส่วนตัว;
คำชี้แจงส่วนตัว stmt;
URL สตริงส่วนตัว = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname";
สตริงส่วนตัว classforname = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
สตริงส่วนตัว uid = "sa";
สตริงส่วนตัว pwd = "รหัสผ่าน";
ฐานข้อมูลสาธารณะConn(){}
-
* <p>รับการเชื่อมต่อฐานข้อมูลผ่านไดรเวอร์ Microsoft JDBC</p>
* @return การเชื่อมต่อ
* @ข้อยกเว้น ClassNotFoundException, SQLException
-
การเชื่อมต่อสาธารณะ getConnection()
-
พยายาม
-
Class.forName(คลาสสำหรับชื่อ);
ถ้า (conn == null || conn.isClosed())
conn = DriverManager.getConnection (url, uid, pwd);
-
จับ (ClassNotFoundException เช่น)
จับ (เช่น SQLException)
กลับคอน;
-
-
แน่นอน ก่อนที่จะดำเนินการข้างต้น คุณต้องตรวจสอบก่อนว่ามีปัญหากับการตั้งค่า SQL Server ของคุณหรือไม่
ขั้นแรกให้เปิด "หน้าต่างบรรทัดคำสั่ง" ซึ่งเป็นหน้าต่าง MS-Dos แล้วป้อน
telnet localhost 1433 (แน่นอน ให้แทนที่ localhost ด้วยที่อยู่เซิร์ฟเวอร์ที่ SQL Server ตั้งอยู่ และเปลี่ยนพอร์ตเป็นพอร์ตจริงของ SQL Server ค่าเริ่มต้นคือ 1433)
หากสำเร็จ แสดงว่า SQL Server ของคุณสามารถเชื่อมต่อได้ หากล้มเหลว (โดยปกติสำหรับ Win2003 หรือ WinXP SP2) โปรดเข้าสู่แผงควบคุม เปิด "บริการ" ใน "เครื่องมือการดูแลระบบ" และเริ่มบริการ "SQLSERVERAGENT" ( แน่นอนคุณสามารถใช้แพ็คเกจโปรแกรมแก้ไข SP3 ของ SQL Server ได้) และดำเนินการตามข้างต้นต่อไปซึ่งน่าจะสำเร็จ
ประการที่สอง ตรวจสอบว่าชื่อผู้ใช้และรหัสผ่านของคุณสามารถเข้าสู่เซิร์ฟเวอร์ SQL Server ได้หรือไม่ แน่นอนว่าวิธีที่ตรงที่สุดคือการเปิด "Query Analyzer" ของ SQL Server ป้อนชื่อผู้ใช้และรหัสผ่านแล้วคลิกตกลง
หากสำเร็จ แสดงว่าการตั้งค่าการเข้าสู่ระบบ SQL Server ของคุณใช้ได้ หากล้มเหลว โปรดเปิด "Enterprise Manager" ของ SQL Server และไปที่เซิร์ฟเวอร์ SQL Server ที่คุณลงทะเบียน (นั่นคือ เซิร์ฟเวอร์ภายใต้ "SQL Server Group" ทางด้านซ้ายของ Dongdong) นั่นคือคลิกขวาเลือก "Properties" เลือก "Security" ในกล่องโต้ตอบ "SQL Server (Properties) Configuration" ตั้งค่าการตรวจสอบสิทธิ์เป็น "SQL Server และ Windows(S)" จากนั้น ใช้ Query Analysis ทดสอบเซิร์ฟเวอร์หนึ่งครั้ง หากคุณยังคงไม่สามารถเชื่อมต่อได้ ให้ตรวจสอบว่าชื่อผู้ใช้และรหัสผ่านของคุณถูกต้องหรือไม่ ทำซ้ำการทดสอบจนกว่าจะสำเร็จ
แน่นอนว่า หากคุณใช้การเชื่อมต่อใน JSP นอกเหนือจากการใช้ JDBC โดยตรง ทุกคนจะสนใจพูลการเชื่อมต่อ (พูล) มากที่สุด ที่นี่เราจะเน้นไปที่การใช้งานหลายอย่างของพูลการเชื่อมต่อ
เพื่อความสะดวก ก่อนอื่น ให้ตั้งค่าคอนเทนเนอร์ JSP เป็น Tomcat เนื่องจากทุกคนใช้คอนเทนเนอร์นี้มากกว่า
1. การกำหนดค่าส่วนกลาง (เว็บแอปพลิเคชันใดๆ ใน Tomcat สามารถใช้พูลการเชื่อมต่อที่กำหนดค่าไว้ได้): กำหนดค่าพูลการเชื่อมต่อใน server.xml ไฟล์ server.xml อยู่ในไดเร็กทอรี $TOMCAT_HOME$/conf/ GlobalNamingResources> และแทรกโค้ดต่อไปนี้ก่อนบรรทัดนี้:
<ทรัพยากร
ชื่อ = "jdbc/poolName"
รับรองความถูกต้อง = "คอนเทนเนอร์"
ประเภท = "javax.sql.DataSource"
แม็กซ์แอคทีฟ = "100"
แม็กซ์ไอเดิล = "30"
maxWait="10,000"
ชื่อผู้ใช้ = "สา"
รหัสผ่าน = "รหัสผ่าน"
driverClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"
url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=dbname"/>
หมายเหตุ: name คือชื่อ JNDI โกลบอลแบบเต็มของพูลการเชื่อมต่อ ชื่อผู้ใช้คือชื่อผู้ใช้และรหัสผ่านการเชื่อมต่อฐานข้อมูล driverClassName คือชื่อไดรเวอร์ฐานข้อมูล และ url คือสตริงการเชื่อมต่อฐานข้อมูล โปรดแก้ไขตามการกำหนดค่าจริงของคุณ
การกำหนดค่ายังไม่เสร็จสมบูรณ์ ต่อไปเราจำเป็นต้องตั้งชื่อการเข้าถึงทั่วโลกใน context.xml การตั้งค่ามีดังนี้:
ค้นหา </Context> และใส่โค้ดต่อไปนี้ก่อนบรรทัดนี้:
<ResourceLink global="jdbc/poolName" name="jdbc/poolName" type="javax.sql.DataSource"/>
2. การกำหนดค่าบางส่วน: สร้างไฟล์ xml ใหม่ในไดเร็กทอรี $TOMCAT_HOME$/conf/Catalina/localhost/ ไฟล์ xml ต้องมีชื่อเดียวกันกับไดเร็กทอรีเว็บแอปพลิเคชันที่คุณเผยแพร่ หากเป็น webappname.xml ให้เพิ่มข้อมูลต่อไปนี้ เนื้อหา (การกำหนดค่าของ Tomcat ไดเร็กทอรีเสมือนภายนอกได้รับการจัดการที่นี่เช่นกันฮ่า!
<เส้นทางบริบท = "/ webappname" docBase = "d:/webappname" debug = "0" reloadable = "true" crossContext = "true">
<ทรัพยากร
ชื่อ = "jdbc/poolName"
รับรองความถูกต้อง = "คอนเทนเนอร์"
ประเภท = "javax.sql.DataSource"
แม็กซ์แอคทีฟ = "100"
แม็กซ์ไอเดิล = "30"
maxWait="10,000"
ชื่อผู้ใช้ = "สา"
รหัสผ่าน = "รหัสผ่าน"
driverClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"
url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=dbname"/>
<ResourceLink global="jdbc/poolName" name="jdbc/poolName" type="javax.sql.DataSource"/>
</บริบท>
สำหรับสองวิธีแรก รหัสสำหรับการเรียกพูลการเชื่อมต่อมีดังนี้: (เมธอด Debug.log() ของ com.yeno.util.Debug ส่วนใหญ่จะใช้เพื่อพิมพ์ข้อมูลการดีบัก และสามารถแทนที่ได้ด้วย System.out.println ())
นำเข้า java.sql.*;
นำเข้า javax.sql.DataSource;
นำเข้า javax.naming.*;
นำเข้า com.yeno.util.Debug;
-
* <p>คลาสการจัดการการดำเนินงานฐานข้อมูลใช้การเชื่อมต่อฐานข้อมูล การปิดระบบ และการประมวลผลธุรกรรมเท่านั้น</p>
* @Aurhor Yeno.hhr
* สร้างวันที่ 2005-12-9
-
DataPool ระดับสาธารณะ {
ดาต้าพูลสาธารณะ(){}
-
* <p>รับการเชื่อมต่อฐานข้อมูลผ่านพูลการเชื่อมต่อ Tomcat</p>
* @พารามิเตอร์ หมายเลข
* @return Connection การเชื่อมต่อฐานข้อมูล
* @Exception การตั้งชื่อ Exception, SQLException, ข้อยกเว้น
-
การเชื่อมต่อสาธารณะ getConnect()
-
การเชื่อมต่อการเชื่อมต่อ = null;
พยายาม
-
บริบท intitCtx = InitialContext ใหม่ ();
บริบท envCtx = (บริบท)intitCtx.lookup("java:comp/env");
แหล่งข้อมูล ds = (แหล่งข้อมูล)envCtx.lookup("jdbc/poolName");
conn = ds.getConnection();
-
จับ (การตั้งชื่อข้อยกเว้นถัดไป)
-
Debug.log(this,"getConnect()", "ไม่มีสภาพแวดล้อมที่ถูกต้อง!");
-
จับ (SQLException sqlex)
-
Debug.log(this,"getConnect()","ไม่สามารถเชื่อมต่อได้!");
-
กลับคอน;
-
-
ก่อนที่จะใช้โค้ดข้างต้น คุณต้องตรวจสอบให้แน่ใจว่าไฟล์ JAR ที่เกี่ยวข้องของไดรเวอร์ JDBC (mssqlserver.jar, msutil.jar และ msbase.jar สำหรับ Microsoft, jtds-1.2.jar สำหรับ JTDS) ได้รับการกำหนดค่าอย่างถูกต้อง ไฟล์ JAR ที่เกี่ยวข้องไปยังไดเร็กทอรี $TOMCAT_HOME $/common/lib/ หรือคุณสามารถคัดลอกไปยังไดเร็กทอรี $WEB_ROOT$/WEB-INF/lib/
คุณยังสามารถใช้การฉีดเพื่อเรียกพูลการเชื่อมต่อ กล่าวคือ เรียกในไฟล์คอนฟิกูเรชัน Hibernate hibernate.cfg.xml หลังจากตั้งค่าพูลการเชื่อมต่อในคอนเทนเนอร์ JSP แล้ว ให้เรียกการตั้งค่าพูลการเชื่อมต่อระบบในไฟล์คอนฟิกูเรชัน Hibernate รหัส ข้อความที่ตัดตอนมาดังต่อไปนี้:
<โรงงานเซสชัน>
-
<ชื่อคุณสมบัติ="jndi.class"></property>
<ชื่อคุณสมบัติ="jndi.url"></คุณสมบัติ>
-
<property name="connection.datasource">java:comp/env/jdbc/poolName</property>
<ชื่อคุณสมบัติ="show_sql">เท็จ</คุณสมบัติ>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
</โรงงานเซสชัน>
สำหรับการใช้งาน Hibernate โดยเฉพาะ โปรดตรวจสอบรายละเอียดที่เกี่ยวข้อง