• 0
com.jkelany

كيفيه انشاء مشروع باستخدام MySQL ارتباطا مع الجافا

سؤال

بسم الله الرحمن الرحيم

اود ان اقدم لكم درسا قد سال عنه الجميع فى منتدانا الحبيب

وهناك الكثير من الاستفسارات عن هذا المووضوع

الا وهو كيفيه ربط قواعد البيانات باستخدام MySQL مع لغه الجافا

ناتى الى مرحلتين الا وهى كيفيه عمل قاعده بيانات مبسطه مكونه من جدول واحد باستخدام MySQL

ثم كيفيه الربط مع اللغه الغاليه الجافا

تابع معى الشرح المدعم بالصور

ناتى الى البدايه ان نقوم بتسطيب برنامج MySQL والـ GUI tools الخاصه به

" لم انشاء له شرح " يمكنك البحث وان لم تستطع ممكن نشرح تسطيبه ان شاء الله

بعد ذلك

نذهب ونفتح البرنامج

post-9738-030307400 1277950559_thumb.jpg

وبعد ان نضغط على MySQL Adminstartor

فانه يتم فتح البرنامج واظاهر الشاشه التاليه

post-9738-063336000 1277950528_thumb.jpg

التى تطلب منك ادخال server host اللتى دائما ما نكتب فيها localhost

ورقم الـ port اذا لم تقم بتغيره فهو الثابت فى البرنامج 3306

اما اذا قمت بتغيره فضع الرقم الجديد

ويطلب منك اسم المستخدم والرقم السرى الخاص به

بعد ان يتاكد البرنامج من البيانات المدخله له

يتم ظهور الشاشه التاليه

post-9738-003070100 1277950542_thumb.jpg

ما يهمنا الان هو انشاء قواعد بيانات جديده ليس باقى الاشياء

انظر الى الصوره واتبع التعليمات الموضحه عليها

بعد ذلك يطلب منك ادخال اسم قاعده البيانات

post-9738-096951800 1277950589_thumb.jpg

وبعد ذلك ناتى الى مرحله ادراج جدول بيانات فى هذه القاعده

انظر الى الصوره التاليه

post-9738-027826900 1277950467_thumb.jpg

وبعدها ناتى الى ادخال اسم الجدول والبيانات الخاصه بالاعمده والوصف لها

موضحه فى الصوره التاليه

post-9738-013221900 1277950575_thumb.jpg

وبعد ان تقوم بكتابه الاعمده واسم الجدول تضغظ على Apply changes

اللتى تعرض لك امر انشاء الجدول وتاكد عليك هل هذا ما تريد انشاءه بالفعل ؟

post-9738-035946500 1277950515_thumb.jpg

وبعد ان يتم عمل قاعده البيانات نلاحظ انها فارغه

فنقوم بوضع بعض البيانات فى هذه القاعده يدويا حتى اذا ما طلبنا منها بيانات قبل ادارج البيانات بها تقوم بارجاع بيانات

لاحظ معى التالى

post-9738-049484700 1277950486_thumb.jpg

نقوم بادراج البيانات فى الجدول الخاص بهذه القاعده

ولكن عندما تظهر لنا الصفحه الخاصه بالتعديل

لابد من تنشيط الامر Edit

كما هو موضح بالصوره

post-9738-081091200 1277950499_thumb.jpg

وناتى بعد ذلك لادراج البيانات وبعد ادراج 4 صفوف نجدها بالشكل التالى

post-9738-028613500 1277950476_thumb.jpg

وقبل ان ننتهى فى اخر الصفحه نجد امر apply changes نقوم بالضغط عليه لكى يتم حفظ البيانات اللتى تم ادخالها

وهكذا تم انشاء قاعده بيانات MySQL

المره القادمه ان شاء الله سوف اعرض لكم كيفيه الربط

وكيفيه تنفيذ الاوامر مثل


select * from table
insert into table
delete recorde

انتظرونا ان شاء الله

لو لم يكون كابوس الامتحانات لكنت اكملت

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

اتمنى ان اكون اخذت جانب هام لملاحظتى ان الكثيرين لديهم هذه المشكله

استودعكم الله

تم تعديل بواسطه علاء الصالحي
نقل الصور على خادم الموقع
5

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

40 إجابة على هذا السؤال .

  • 0

هلا بالمنتدى العظيم

ثانى مشاركة لى

و قرأت درسك استاذى و لكن لى تعقيب

اول سىء ان هالمنتدى مو مكان هالدرس

على ما اعتقد ثانى شى

ان الشرح مو واضح انا لا استطيع ان افهم الدرس

-3

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

شرح طيب اخى ربنا يكرمك يارب

ممكن تضع رابط لتحميل البرنامج mysql

حتى اتمكن من المتابعة معك فى الشرح

جزاك ربى الجنة

سلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أحسنت أخ حمزاوي

أتمنى لك التوفيق :)

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مجهود تشكر عليه

والله يعطيك العافية

ويوقويك على الامتحانات

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هلا بالمنتدى العظيم

ثانى مشاركة لى

و قرأت درسك استاذى و لكن لى تعقيب

اول سىء ان هالمنتدى مو مكان هالدرس

على ما اعتقد ثانى شى

ان الشرح مو واضح انا لا استطيع ان افهم الدرس

اهلا بيك اخى الكريم

اولا المكان مناسب جدا

لو فيه مكان اخر احسن المشرفين يمكنهم نقل الموضوع الى المكان الصحيح

اعتقد ان انا ليس هدفى هو شرح برنامج mysql

انا اشرح كيفيه ربط الجافا بقواعد البيانات وسوف اشرح كيفيه استدعاء البيانات من قواعد البيانات على الconsole window

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

شرح طيب اخى ربنا يكرمك يارب

ممكن تضع رابط لتحميل البرنامج mysql

حتى اتمكن من المتابعة معك فى الشرح

جزاك ربى الجنة

سلام عليكم

وعليكم السلام ورحمه الله وبركاته

ربنا يخليك يارب

حاضر انا نسيت بصراحه كان فى بالى اضع الرابط

تحميل برنامج MySQL

تحميل GUI Tools

يمكنك اذن المتابعه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أحسنت أخ حمزاوي

أتمنى لك التوفيق :)

تحياتي

وسام شرف اضعه على راسى اخى علاء

كم زادنى شرفا مشاركتك

ان شاء الله نكمل الشرح بعون الله

ان لم يوجد عقبات

مجهود تشكر عليه

والله يعطيك العافية

ويوقويك على الامتحانات

ربنا يخليك يا اخى

شكرا على رد ومرروك

وان شاء الله فى اخر الدرس يكون مفيد

ويقويك يا اخى

سلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ناتى الان الى مرحله

شرح ارتباط قواعد البيانات بلغة الجافا

نقوم بعمل مشروع جافا عادى خالص

post-9738-024570600 1277951070_thumb.jpg

وبعد ذلك لكى يكون العمل لديك منظما

تعمل package لكى يتم اضافه بها الاوامر الخاصه بقواعد البيانات

post-9738-082081700 1277950982_thumb.jpg

وبعد ذلك نقوم باضافه الـ class لكى يتم كتابه بها اكواد الاتصال بقواعد البيانات

post-9738-081111700 1277951037_thumb.jpg

ولتكن فى مثالنا هذا

تدعى DBConnectivity

ونكتب بها الكود التالى


package DBConductivity;

import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author Mahmoud Mahrous
*/
public class DBConnect {

// <editor-fold defaultstate="collapsed" desc="private variables">
private final String DRIVER = "com.mysql.jdbc.Driver";
private final String URL = "jdbc:mysql://localhost:3306/arabteam2000-forum";
private final String USER_NAME = "root";
private final String PASS_WORD = "root";
private Connection connection;
private Statement statement;
private ResultSet resultSet;// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="DBConnect Constractor">
public DBConnect() {
try {
Class.forName(DRIVER);
connection = DriverManager.getConnection(URL, USER_NAME, PASS_WORD);
} catch (SQLException ex) {
Logger.getLogger(DBConnect.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(DBConnect.class.getName()).log(Level.SEVERE, null, ex);
}
}// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="return DB connection">
public Connection getConnection() {
return connection;
}// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="excuteQuery">
public ResultSet excuteQuery(String query) {
try {
statement = connection.createStatement();
resultSet = statement.executeQuery(query);
} catch (SQLException ex) {
Logger.getLogger(DBConnect.class.getName()).log(Level.SEVERE, null, ex);
}
return resultSet;
}// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="excuteUpdate">
public void excuteUpdate(String query) {
try {
statement.executeUpdate(query);
} catch (SQLException ex) {
Logger.getLogger(DBConnect.class.getName()).log(Level.SEVERE, null, ex);
}
}// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="Connection is opened and should close">
@Override
public void finalize() {
try {
if (connection != null) {
this.connection.close();
}
} catch (SQLException ex) {
Logger.getLogger(DBConnect.class.getName()).log(Level.SEVERE, null, ex);
}
}// </editor-fold>
}

الكود الخاص باستدعاء هذه الـ class

يعنى Main Class


package arabteam2000forum;

import DBConductivity.DBConnect;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
*
* @author Mahmoud Mahrous
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws SQLException {
DBConnect dBConnect = new DBConnect(); // make DBConnect by making object form it
dBConnect.getConnection(); // return the connection
ResultSet resultSet = dBConnect.excuteQuery("select * from arabteam2000forum "); // excuteQuery that select all colums in the table
while (resultSet.next()) { // the pointer to the database recorde
// print the values that is in the data base
// resultset.getInt(1) that show that the first colum in the data base is integer or number type
// resultset.getString(2) that show that the second colum in the data base is varchar(size) type
// resultset.getString(3) that show that the third colum in the data base is varchar(size) type[
System.out.println(resultSet.getInt(1) + " " + resultSet.getString(2) + " " + resultSet.getString(3));
}
}
}

سوف نقوم لاحقا بشرح الاوامر والكود خطوه خطوه

بعد ذلك عندما تعمل run للمشروع

تجد الخطا التالى

post-9738-083838100 1277951021_thumb.jpg

وهذا الخطا كما نرى ان الخطا هو ClassNotFoundException

هذا الخطا قد حدث بسبب انك قومت بتحميل الـ driver ولكنه لم يجدها فى المشروع تبعك

طب واعمل ايه ؟؟؟؟؟؟؟؟

هنعمل التالى

بزر الفاره الايمن على المشروع

واتبع الشرح التالى

post-9738-031265000 1277950999_thumb.jpg

وبعد ذلك تقوم بالضط على library ثم اختيار add libaray

واختار MySQL JDBC Driver

post-9738-093620500 1277951054_thumb.jpg

وقم باضافته للمشروع

وبعد ذلك قم بعمل run للمشروع تظهر لك على شاشه الconsole

post-9738-078946000 1277951009_thumb.jpg

ان شاء الله اشرح الكود جزء جزء ان شاء الله

قريبا

لتحميل المشروع و قاعده البيانات

من المرفقات

ملاحظة: وجد الأخ sahraoui17 مشكلة بسيطة في الكود يمكن الإطلا علىهذا الموضوع لأخذ فكرة عنها

arabteam2000-forum.rar

arabteam2000-forum 20100606 1039.rar

تم تعديل بواسطه علاء الصالحي
إضافة ملاحظة
5

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخ حمزاوي الصور رجاءاً أعد رفعها على المنتدى

لأن الرفع على خادم خارجي يعني أننا لو سقط هذا الخادم أو حذف ملفاته سنفقد موضوعك للأبد

لذا أعد رفع الصور كمرفقات

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

انا اعمل على اكونت لدى على imageshack.us

على العموم

ارفعها كملف مضغوط

ولا ارفعها كلهم وراء بعض

ولا ايه ؟ ؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا ً أخ حمزاوي على هذا الشرح ولكن ياليت يكون بالتفصيل الممل لكل الخطوات خصوصاً الكود حبذا لو تشرحه سطر سطر وبارك الله فيك .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا ً أخ حمزاوي على هذا الشرح ولكن ياليت يكون بالتفصيل الممل لكل الخطوات خصوصاً الكود حبذا لو تشرحه سطر سطر وبارك الله فيك .

العفو يا اخى

وان شاء الله نشرح الكود ويتفهم باذن الله

لكن الوقت نفسه

انا موجود لكن الوقت هو اللى ليس موجود

ان شاء الله قريبا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا ارفعها واحدة واحدة

بعد ذلك اضغط على إضافة إلى الموضوع

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لازم تكون الصورة بامتداد png وقم بارفاقها مثل اى ملف اخر

وحدد المكان الذى تريده ثم اضغط على اضافة الى الموضوع

انظر الصورة

post-165385-12759468189958_thumb.png

وعلى فكرة الموضوع جميل

ومجرد ان تفكر فى كتابة موضوع شرح وتكمله (خلى بالك من الكلمة دى excl.gif )

فهذا مجهود كبير وروح طيبة منك تشكر عليهم

بالتوفيق

تم تعديل بواسطه MOHAMED FATHEI
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لقد عملت هذا الصنف الذي يقوم بالاتصال بقاعدة البيانات ماي سكول واستخدام قاعدة البيانات test واسترجاع البيانات الموجودة في الجدول test هذه الشفرة تعتبر أسهل من شهرة اخينا محمود الكيلاني (حمزاوي سابقا , نتمنى أن يقوم بشرح الشفرة الخاصة به ) حيث يوجد فيها بعض الاستثناءات التي لم افهمها

ملوحظة : قاعدة البيانات الخاصة بي عبارة عن جدول يوجد به حقلين للـ ID: عبارة عن مفتاح رئيسي وكذلك (auto - increment) والحقل الثاني عبارة عن Name من النوع النصي (Varchar)



import java.sql.*;

/**
*
* @author ToBeOrNotToBe
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Connection con = null;
try {
// uncomment this to make sure library was added secssefully.
// Class.forName("com.mysql.jdbc.Driver");
// do the connect to server on localhost with port number 3306, database name is test, user is 'root', with no password
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
// statement object.
Statement st = con.createStatement();
// exec the statement and get results.
String query = "select * from test";
ResultSet rs = st.executeQuery(query);
while (rs.next()/*move one line in the result table*/) {
// print the columen one and two of the result table as string you can use rs.getType(int or string)
System.out.println(rs.getInt(1)+ " " + rs.getString(2));

}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Exception: " + e.getMessage());
} finally {
try {
if (con != null) {
con.close();
}
} catch (SQLException e) {
}
}

}
}

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا ارفعها واحدة واحدة

بعد ذلك اضغط على إضافة إلى الموضوع

تحياتي

ما التعديل لدى اتقفل

وعذرا على التاخير فى الرد مش اخدت بالى

لانى منشغل شويه بالمذاكره

لازم تكون الصورة بامتداد png وقم بارفاقها مثل اى ملف اخر

وحدد المكان الذى تريده ثم اضغط على اضافة الى الموضوع

انظر الصورة

post-165385-12759468189958_thumb.png

وعلى فكرة الموضوع جميل

ومجرد ان تفكر فى كتابة موضوع شرح وتكمله (خلى بالك من الكلمة دى excl.gif )

فهذا مجهود كبير وروح طيبة منك تشكر عليهم

بالتوفيق

لا مش لازم png

ما انا فاهم بس انا التعديل اتقفل عندى

ان شاء الله يكمل باذن الله اخلص بس واكمله على طول

متخفش ان شاء الله مخلى بالك :)

ربنا يخليك يارب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لقد عملت هذا الصنف الذي يقوم بالاتصال بقاعدة البيانات ماي سكول واستخدام قاعدة البيانات test واسترجاع البيانات الموجودة في الجدول test هذه الشفرة تعتبر أسهل من شهرة اخينا محمود الكيلاني (حمزاوي سابقا , نتمنى أن يقوم بشرح الشفرة الخاصة به ) حيث يوجد فيها بعض الاستثناءات التي لم افهمها

ملوحظة : قاعدة البيانات الخاصة بي عبارة عن جدول يوجد به حقلين للـ ID: عبارة عن مفتاح رئيسي وكذلك (auto - increment) والحقل الثاني عبارة عن Name من النوع النصي (Varchar)



import java.sql.*;

/**
*
* @author ToBeOrNotToBe
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Connection con = null;
try {
// uncomment this to make sure library was added secssefully.
// Class.forName("com.mysql.jdbc.Driver");
// do the connect to server on localhost with port number 3306, database name is test, user is 'root', with no password
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
// statement object.
Statement st = con.createStatement();
// exec the statement and get results.
String query = "select * from test";
ResultSet rs = st.executeQuery(query);
while (rs.next()/*move one line in the result table*/) {
// print the columen one and two of the result table as string you can use rs.getType(int or string)
System.out.println(rs.getInt(1)+ " " + rs.getString(2));

}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Exception: " + e.getMessage());
} finally {
try {
if (con != null) {
con.close();
}
} catch (SQLException e) {
}
}

}
}

الشفره واحد

بس هناك بعض الاضافات على الشفره

يعنى بدل ما اعمل السطر دا بالطريقه بتاعتك هذه


con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");

قومت بعمل


private final String URL = "jdbc:mysql://localhost:3306/arabteam2000-forum";
private final String USER_NAME = "root";
private final String PASS_WORD = "root";

connection = DriverManager.getConnection(URL, USER_NAME, PASS_WORD);

هذه الطريقه احسن كثيرا

لا تدخلك فى اعماق الكود عندما تريد ان تغير معلومات الاتصال من برنامج لاخر ومن قاعده لاخرى

وتتثبت فى متغيرات ثابته لا يمكن تغييرها

واضافه بعد الدوال الاخرى لكى تتكمن من عمل العمليات على قواعد البيانات

مثل داله 
public ResultSet excuteQuery(String query) {
{

وداله
public void excuteUpdate(String query) {
}

وبعد ذلك قمت باغلاق الاتصال
public void finalize() {
{

لو عاوزين شرح مفصل يقبى ان شاء الله شويه كدا بس اخلص امتحانات بس :ohmy: :ohmy:

بعد اذنكواطبعا استحملونى

سلام عليكم

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

طيب يا محمد ارفعهم على شكل rar أو zip وأنا هعمل الباقي بإذن الله

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

طيب يا محمد ارفعهم على شكل rar أو zip وأنا هعمل الباقي بإذن الله

تحياتي

انا محمود :lol: :lol:

المهم

انت تامر واحنا نطنش

يوووووه

ننفذ يا هندسه طبعا :) :)

شرح كل جزئيه فى ملف

Java.rar

MySQL.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ماشي يا محمود بس أصلي لسه متعود على الأخ حمزاوي

اليومي دول هغيرهم بإذن الله

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ماشي يا محمود بس أصلي لسه متعود على الأخ حمزاوي

اليومي دول هغيرهم بإذن الله

تحياتي

لا ولا يهمك عادى

ليا اخ شقيق اسمه محمد :lol: :lol:

خلاص ماشى بالتوفيق

معلش تعبينك معانا :)

سلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تم الإضافة إلى المواضيع المميزة

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تم الإضافة إلى المواضيع المميزة

تحياتي

جزاكم الله خيرا

تصدق انا كنت نسيت :lol: :lol:

شكرا يا اخ علاء يا مميز :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أوعك تشكك في قدراتي يا محمود

لا أنا كنت مأخر علشان موضوع الصور كنت برفعها على المنتدى

وأعذرني على التأخير يا محمود

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أوعك تشكك في قدراتي يا محمود

لا أنا كنت مأخر علشان موضوع الصور كنت برفعها على المنتدى

وأعذرني على التأخير يا محمود

تحياتي

لا طبعا وانا اقدر اشك

وبعدين هو انا دبوس علشان اشك بردوا ؟ :lol: :lol: :lol:

وبعدين انا اللى كنت نسيت مش انت :P :P

ولايهمك اخ علاء

الموضوع مووضوعك

ومفيش تاخير ولا حاجه

انتظر المشروع القادم

كى تضعه فى قسم المشاريع :) :)

تم تعديل بواسطه Mahmoud Kelany
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .