الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ببساطة كيف يتم التعامل بين Java & SQL

مغلقرائج
بدأه رامي العيساوي في 6 يونيو 2003 · 57 رد · 3,874 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#26

Beans

ارجوا من الاخوات ان يعلموا ان jsp وجد للبرمجة

بمعنى اى كود connection او خلق statment

يكون فى كود beans

اما jsp فبستخدم التاجات التى تعطى لى الديناميكية الغير موجودة html

ومنها تاج jsp beans

ومنها باختار id من خلاله ادخل الى methods الموجوده داخل كود beans

وبذلك تكون الصفحات مساحتها اقل ولها السرعة فى التنفيذ

شكرا

عبدالله1

#27

كلامك مظبوط اخي 2pac البرنامج غير قادر على الاتصال باي هوست بسبب البروكسي على الاغلب لذا فانا توصلت الى الحل على ما اظن كما ذكرت سابقا انا احتاج الى الاتصال بقاعدة mySQL عن طريق صفحة JSP لذا سوف افعل كالتالي:

- اكتب كلاس و طرائق له اهمها الاتصال بقاعدة البيانات و عند تمام العملية يلحق القيمة ترو بالمتحول الذي يدل على نجاح او اخفاق العملية

-صفحة JSP تستدعي الطرق التي تريدها من الكلاس السابق و بعد ذلك تاخذ نتيحة اما نجاح او فشل الاتصال بقاعدة البيانات.

و طبعا لا يوجد مشاكل بروكسي لان المخدم المستضيف مفتوح على الانترنت طبعا و لان قاعدة البيانات هي على نفس المخدم المحملة عليه الصفحة JSP

فما هو رايكم بهذه الطريقة سوف اجربها و اخبركم الموضوع اصبح بالنسبة الي مشوق سوف لن انام حتى ينجح:cool::cool:

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#28

شكرا للتوضيح اخي عبد الله

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#29

أنا كأني حسيت أنك تبغى تسوي أتصال من صفحة JSP على جهازك إلى سيرفر موجود على الأنترنت .. صح وللا لا ؟؟

لكن بما أن قاعدة البيانات على نفس الجهاز اللي فيه صفحة الـJSP عرف ODBC datasource وسوي الـ connection عليه وقضينا !!

 conn = DriverManager.getConnection (url, userName, password);

بالنسبة لهذا الكود كلمة URL هنا قد تشير إلى حاجات كثيرة منها أنه قد تشير إلى Datasource .. أنا لما أسوي أتصال بقاعدة بيانات أستخدم مايلي دائما

 conn = DriverManager.getConnection (jdbc:odbc:someName);

لأنه أعرّف في الODBC متغير someName كـdatasource name

لكن إذا كنت تستخدم الكود اللي أنتا حاطه فمن اللازم أن يكون عندك الدرايفرز الخاصة لـ MySQL اللي هي com.mysql.jdbc.Driver أعتقد لازم تسوي لها download من موقع MySQL على ما أعتقد

لكن أنت لسه ما قلت : ما هي الرسالة اللي تشوفها ؟؟

#30

اخي العزيز انا منزل com.mysql.jdbc.Driver من زمان و استخدمها في برنامجي كما رايت سابقا و احساسك اكيد صح

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#32
import java.sql.*;
class boda
{

	public static void main(String arg[])
	{
		String name="boda";
		String pass;

		try
		{
			    	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			        Connection con=DriverManager.getConnection("jdbc:odbc:name","boda1","java");
			        Statement st=con.createStatement();
					ResultSet rs=st.executeQuery("select name,pass from name where name='"+name+"'");
					pass="no";
					while(rs.next())
					{
						pass=rs.getString("pass");
					}
		}

		catch(ClassNotFoundException ex){System.out.println("NOT SQL "+""+ex);}
		catch(SQLException ex){System.out.println("SQL"+""+ex);}

	}
}
#33

اخي انا لا اهتم ابدا بـ

sun.jdbc.odbc.JdbcOdbcDriver

بل انا احتاج الى

com.mysql.jdbc.Driver

و اظن ان طريقة التعامل مختلفة في هذه الحالة اليس كذلك؟؟

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#34

لالا.. طريقة التعامل لا تختلف ...

لكن الاختلاف فقط في الاسم و الباسوورد و البورت !!

اعتقد تحتاج الى رقم البورت عشان تتصل مع قاعدة البيانات ..

بالنسبه للاوراكل فتحتاج الى 1521

يمكن الـ MySQL له بورت معين

#35

ممكن توضيح اكثر

الا يجوز ان اضع رقم الآبي للمخدم و بجانبه البورت اي:

235.153.273.134:3256

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#36
connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORACLE","scott","tiger");

انا وضعت كود للاوراكل .. بالاوراكل تحتاج الى الدرايفر و تضعه بالبدايه

و بعدين تضع الاي بي او localhost اذا كان بنفس السيرفر و بعدين تضع البورت اللي هو 1521 (هذا حق الاوراكل) هل للـ MySQL بورت معين ؟؟ اتوقع له بورت .. و بعدين تضع اسم و كلمة المرور لقاعدة البيانات اذا وجدت .

#37

و ما هو هذا البورت ؟؟؟

و اين احصل عليه لا زم نسال شباب php فهم يتعاملون مع mysql كثيرا و لازم يعرفوه

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#39

للاسف اخي منتداهم نايم و لا يوجد فيه احد مو مثلنا ما شاء الله

http://www.arabteam2000.com/vb/showthread....&threadid=29303

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#41

نعم اخي ان المنفذ هو 3306 و انا قد و ضعته منذ البداية

و الحمد لله مشي الحال و تم الاتصال و الآن ادرس كيف الاضافة و القراءة و العمليات الاخرى

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#42

من اين يمكنني ان احصل على درس او ماشابه عن تعليمات mySQL

و انا الآن و ضعت كلاس على المخدم و يعمل كـ Bean لصفحات JSP المختلفة و سيبقى متصلا بالقاعدة طوال الوقت فهل يؤثر هذا على الكلاس هل يستطيع ان يلحق على جميع طلبات JSP المختلفة

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#43

اعتقد انك تحتاج دالتين احداهما لقرءاة بيانات من database والأخرى لتعديل او ادراج في database ولذلك شاهد الوصلة التالية

http://www.arabteam2000.com/vb/showthread....&threadid=29092

في ال jsp عرف متغير v من النوع Vector ثم استدعي ال method الخاصة بقراءة البيانات من ال database

مثلا

<%@ page import = "RunSql" %>



<%! 
String str="select name,Adress from Person ";
Vector persons;
%>
<%
try
{
persons=mydataBean.runSelect(str);
}
catch(Exception e)
{

}
%>

بعد ذلك قم بعرض بيانات persons على شكل جدول

انظر الmain for this class

اللهم انا نسألك علما نافعا ونعوذ بك من حماقة الجهلاء
#44

و اخيرا استطعت انشاء و حذف و العمليات الاخرى على table و الآن بقي لي ان اضيف و اقرا منها بستعمال طريقتين:

Statement s= conn.createStatement ();

s.executeUpdate("هنا تعليمة SQL");// ترجع رقم يدل على عدد الصفوف التي تم التعامل معها

s.executeQuery("هنا تعليمة SQL");// ترجع قيمة الذي اخترته و لكن يجب معالجته اولا

و تعالج النتيجة عن طريق ResultSet

و ان شاء الله كل ما اكتشف المزيد اخبركم....

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#45

حسنا ... لحد الآن استعطت القراءة و الكتابة من قاعدة البيانات و بشكل ممتاز و لمن يوجد لدي سؤال اعتقد انه قريب على mySQL اكثر من الجافا ....

كما تعرفون لاضافة بيانات جديدة الى table نكتب التعليمة التالية:

public void setCount(int num)

{

s.executeUpdate ("INSERT INTO count (number)"+   

" VALUES"+"('"+num+"')");

}

و هذه التعليمة تضيف حقل جديد فيه القيمة الجديدة و لكنني اريد ان تاتي القيمة الجديدة مكان القيمة القديمة اي دون ان يفتح حقل جديد لاضافة القيمة الجديدة.....

اظن ان الحل هو تعليمة INSERT و اشعر ان هناك تعليمة SQL اخرى تقوم بالذي اريده .......... ؟؟؟؟؟:confused:

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#47
Update MyTableName Set MyFieldName = MyNewValue

you can add a condition using "Where"

Example:

Update MyTableName Set MyFieldName = MyNewValue Where Id=1
#48

شكرا اخي و لكن هل استطيع ان افعل ذلك بواسطة التعليمة:

s.executeUpdate ("REPLACE INTO pcoun ("num")"+

           " VALUES"+"('24')");

قصدي هل تنفع كلمة REPLACE

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#49

اخي مدني انا استعمل التعليمات التالية مع قواعد بيانات mySQL و الامثلة سوف توضح لك

القصة انه لدي كم موقع اريد اقدم لهم خدمة عداد الزوار و طبعا كل منهم رقم يتغير عند دخول كل زائر انظر الى الكود التالي هذا الكود موجود في كلاس متصل دوما بقاعدة البيانات مهمته تسهيل عمل صفحات JSP :

//==========================Public Counter==================================

        public void setpcoun(String who,int num)

        {try{

            s.executeUpdate ("REPLACE INTO pcoun ("+who+")"+

           " VALUES"+"('"+num+"')");

        }catch (Exception e){}

        }

        

        public int getpcoun(String who)

        {int num=0;

        try{

           ResultSet rs = s.executeQuery ("SELECT "+who+" FROM pcoun");

           while(rs.next())num=rs.getInt(who);

        }catch (Exception e){}

        return num;

        }

و اكتب في صفحة JSP :

String who=request.getParameter("who");



int num=ramy.getpcoun(who);

num++;

ramy.setpcoun(who,num);

%>

(حيث who تدل على اسم الـ table اي اسم الموقع الذي سوف تتم العملية عليه )

و هي تقوم اولا باخذ آخر قيمة للعداد في قاعدة البيانات و تضيف عليها واحد و من ثم تقول للكلاس بان يقوم بتخزين القيم الجديدة

العملية ناجحة فعندما تكون رافد 2 و نضيف واحد تصبح ثلاثة و نضيف واحد تصبح اربعة و لكن خلال هذه العملية ياخذ الكابتن القيمة0 و عندما نضيف واحد للكبتن ياخذ رافد القيمة صفر مما يعني البدا من جديد و هذه هي المشكلة انظر الصورة

1.jpg

انا اريد ان يحدث كالتالي ان تكون القيم في صف واحد اي عند الاضافة لا ينشئ صف جديد و ان تكون كل قيمة مستقلة على حدى ربما واحدة 10 و الثانية 22 و تتم الاضافة عليهم ..... فكرت في هذا الحل : او ليس تقوم صفحة jsp باخذ اخر قيمة و لتكن 7 و من ثم تزيد عليها فتصبح 8 و عند التخزين يقوم الكلاس المساعد بتفريع و ازالة اي قيمة من الكابتن مثلا و تخزن القيمة الجديدة و هكذا لن يضاف صف جديد بل تبقى القيمة في نفس الصف و لكن هذه الطريقة سوف تفشل لانه عند التفريغ سوف تتفرغ معها رافد ايضا و لا اظن انه هناك طريقة لفعل ذلك دون حذف القيمة المجاورة. انا اريد ان يحدث كما في الصورة هذه

2.jpg

هل فهمت قصدي

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#50

Java Man: انا فهمت لكن في بعض الكلمات مش مفهومه مثل "كابتن" "رافد" الخ ...

و الاخ مدني من الجزائر :D يمكن ما يفهم شئ :'(

هذا الموضوع مغلق.

مواضيع مشابهة