هناك العديد من الطرق للاتصال بقاعدة بيانات 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 على الإنترنت، فيما يلي مقتطف من جزء منها: (يرجى تغيير المضيف المحلي و1433 إلى عنوان خادم SQL Server ورقم المنفذ في تطبيقك الفعلي، وتغييره. dbname إلى اسم قاعدة البيانات الفعلية الخاصة بك)
استيراد java.sql.*;
الطبقة العامة DatabaseConn {
اتصال خاص؛
بيان خاص stmt؛
عنوان URL الخاص بالسلسلة = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname";
فئة السلسلة الخاصة = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
سلسلة خاصة uid = "sa"؛
سلسلة خاصة pwd = "كلمة المرور"؛
قاعدة البيانات العامة (){}
/**
* <p>الحصول على اتصال بقاعدة البيانات من خلال برنامج تشغيل Microsoft JDBC</p>
* @return اتصال
* @exception ClassNotFoundException، SQLException
*/
اتصال عام getConnection()
{
يحاول
{
Class.forName(classforname);
إذا (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. بالطبع، الطريقة الأكثر مباشرة هي فتح "محلل الاستعلام" الخاص بـ SQL Server، وإدخال اسم المستخدم وكلمة المرور، ثم النقر فوق "موافق".
إذا نجحت، فهذا يعني أن إعدادات تسجيل الدخول إلى SQL Server الخاصة بك على ما يرام. وإذا فشلت، فيرجى فتح "Enterprise Manager" الخاص بـ SQL Server والانتقال إلى خادم SQL Server الذي قمت بتسجيله (أي الخادم الموجود ضمن "SQL Server Group"). على اليسار Dongdong) أي، انقر بزر الماوس الأيمن، وحدد "خصائص"، وحدد "الأمان" في مربع الحوار "تكوين SQL Server (خصائص)"، وقم بتعيين المصادقة على "SQL Server وWindows(S)"، ثم استخدم تحليل الاستعلام اختبر الخادم مرة واحدة إذا كنت لا تزال غير قادر على الاتصال، فتحقق مما إذا كان اسم المستخدم وكلمة المرور صحيحين. كرر الاختبار حتى ينجح.
إذا كنت تستخدم الاتصالات في JSP، بالطبع، بالإضافة إلى استخدام JDBC مباشرة، فإن الجميع مهتمون أكثر بتجمع الاتصال (Pool). سنركز هنا على عدة استخدامات لتجمع الاتصال.
للراحة، قم أولاً بتعيين حاوية JSP على Tomcat، لأن الجميع يستخدمها أكثر
1. التكوين العام (يمكن لأي تطبيق ويب في Tomcat استخدام تجمع الاتصال الذي تم تكوينه): قم بتكوين تجمع الاتصال في server.xml. يوجد ملف server.xml في الدليل $TOMCAT_HOME$/conf/ وافتحه وابحث عنه. GlobalNamingResources> وأدخل الكود التالي قبل هذا السطر:
<الموارد
الاسم = "jdbc/poolName"
مصادقة = "حاوية"
اكتب = "javax.sql.DataSource"
ماكس اكتيف = "100"
الحد الأقصى = "30"
الحد الأقصى للانتظار = "10000"
اسم المستخدم = "سا"
كلمة المرور = "كلمة المرور"
driverClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=dbname"/>
ملاحظة: الاسم هو اسم 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"
الحد الأقصى للانتظار = "10000"
اسم المستخدم = "سا"
كلمة المرور = "كلمة المرور"
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.*;
import javax.sql.DataSource;
import javax.naming.*;
import com.yeno.util.Debug;
/**
* <p>لا تنفذ فئة إدارة عمليات قاعدة البيانات سوى الاتصال بقاعدة البيانات وإيقاف التشغيل ومعالجة المعاملات</p>
* @Aurhor Yeno.hhr
* تاريخ الإنشاء 2005-12-9
*/
فئة عامة DataPool {
تجمع البيانات العام (){}
/**
* <p>الحصول على اتصال بقاعدة البيانات من خلال تجمع اتصالات Tomcat</p>
* @param لا
*return اتصال قاعدة بيانات الاتصال
* @exception NamingException,SQLException,Exception
*/
اتصال عام getConnect()
{
اتصال كون = فارغ؛
يحاول
{
سياق intitCtx = new PrimaryContext();
سياق envCtx = (Context)intitCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/poolName");
conn = ds.getConnection();
}
قبض على (NamingException nex)
{
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.cfg.xml. بعد تكوين تجمع الاتصال في حاوية JSP، اتصل بإعدادات تجمع اتصال النظام في ملف تكوين الإسبات فيما يلي مقتطف من الكود:
<مصنع الجلسة>
<!--
<property name="jndi.class"></property>
<property name="jndi.url"></property>
-->
<property name="connection.datasource">java:comp/env/jdbc/poolName</property>
<property name="show_sql">خطأ</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
</جلسة-مصنع>
لاستخدام محدد للإسبات، يرجى التحقق من التفاصيل ذات الصلة.