منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أحمد مناع الجمعة أغسطس 23, 2013 6:53 pm

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

أهلا وسهلا بكم إخوانى الكرام و مرحبا بكم فى درس جديد من دروس منتدى مصر التقنى ....فى هذا الدرس إن شاء الله تعالى سنتعلم سويا كيفية الاتصال بقواعد بيانات MYSQL من خلال تطبيقات الجوال ....هذا الدرس سينقسم الى ثلاث أقسام وهم على النحو التالى :

1_ انشاء قاعدة بيانات MySQL على سيرفر مجانى
2_ إنشاء الفئة Java Servlet
3_إنشاء تطبيق الجوال لاتصال بقاعدة البيانات MySQL


المرحلة الاولى : انشاء قاعدة بيانات MySQL على سيرفر مجانى 


1 - الدخول على الموقع من خلال الرابط الاتى [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 1

2- قم بإنشاء حساب كما فى الصورة التالية :

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 2


3 - ادخل على الميل هتلاقى رسالة تأكيد الاشتراك

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 3

4 - بعد الدخول على الميل وتأكيد الاشتراك سيتم تحويلك الى صفحة نجاح التسجيل وبها بياناتك

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 4

5 - الدخول على الحساب بكتابة اسم المستخدم وكلمة المرور للدخول على لوحة التحكم فى قاعدة بيانات MySQL والتى يطلق عليها (phpMyAdmin)

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 5

6 - هنقوم بالضغط على Database لانشاء الجداول وليكن بأسم R4R.MOBILE

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 6

سوف نقوم بكتابة اسم الجدول وعدد الحقول كما بالصورة السابقة وليكن 3 اعمدة


7 - سوف تظهر لنا صفحة لكتابة اسماء الحقول و ليكن بأسم USERNAME, PASSWORD, BALANCE وتحديد نوع البيانات :

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 7

قم بالضغط على Save لانشاء الجدول .....او يمكنك استخدام لغة SQL فى انشاء الجداول مباشرا اذا كنت على علم بذلك

انا اخترت الطريقة الاسهل لتلافى المشاكل

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

المرحلة الثانية :إنشاء الفئة Java Servlet 

 _ النعريف بالفئة ......الفئة Java Servlet هي أحد فئات لغة الجافا التى يتم برمجتها لتقوم بتلقى الطلبات وبناءالإستجابات بفعالية مع خوادم الويب بأستخدام تطبيقات الجافا سواء كانت تلك التطبيقات خاصة بالجوالات أو الويب أو تطبيقات سطح المكتب ....و سيتم إفراد درس خاص بتلك الفئة و كيفية استخدامها بأحترافية فى دروس أخر أن شاء الله تعالى 

_خطوات إنشاء الفئة Java Servlet من خلال بنية Netbeans 

1_ قم بفتح Netbeans ثم أختر إنشاء مشروع جديد 

2_من المربع الحوارى الذى سيظهر ومن خلال التويب categories أختر نوع المشروع Java Web ليظهر لك فى الجانب الاخر بعض انواع المشروعات أختر منه Web Application كما فى الصورة التالية ثم أنقر next 

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 419716645

3_ قم بإعطاء أسم للمشروع و ليكن MobileServlet ثم أنقر next 

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 354647688

4_سيظهر لك المربع الحوارى التالى ....يمكنك النقر على زر الامر finish 

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 999383633

5_ستجد المجلدات و الملفات التى أنشأها التطبيق فى بنية  Netbeans  كما فى الشكل التالى :

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 984200876

6_قم بتحديد ايقونة المجلد Source Package ثم النقر يمين و من القائمة التى ستظهر أختر الامر New  ثم الامر New java package ....ليظهر لك المربع الحوارى فقم بإعطاء أسم مناسب للحزمة و ليكن r4r.MobileServlet 


7_ بعد ذلك قم بتحديد الحزمة r4r.MobileServlet ثم النقر يمين و من القائمة التى ستظهر أختر الامر Servlet كما فى الشكل التالى :
تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 220556052

8_ قم بإعطاء الفئة Servlet أسم مناسب لها و ليكن dataBaseServlet ثم النقر على إنهاء و ذلك من خلال المربع الحوارى التالى :
تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet 136008402

9_ستجد تلك الفئة بها الاكواد التالية :

الكود:

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet(name = "dataBaseServlet", urlPatterns = {"/dataBaseServlet"})
public class dataBaseServlet extends HttpServlet {

    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            
        } finally {            
            out.close();
        }
    }

    
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
تلك الشفرات ليست ضرورية لنا فى هذا التطبيق لذلك سأقوم بحذف الغير ضرورى لتصبح الفئة كما يلى :

الكود:

import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;



public class dataBaseServlet extends HttpServlet {

            
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
      
    }

    
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
      
    }
     }
و كما ترون فى الفئة السابقة ليس بها غير طريقتين هما doGet وdoPost و فى دروس لاحقة سنتعلم كيفية استخدامها بالشرح الوافى ....الان سنقوم بأدراج بعض الشفرات اللازمة لاتصال بقواعد بيانات mysql على النحو التالى :

_ سنقوم بإستيراد المكتبة java.sql و المكتبة util.logging لتصبح المكتبات اللازمة لمشروعنا على النحو التالى :

الكود:
import java.io.*;
import java.sql.*;
import java.util.logging.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
_ نبحث عن الطريقة doPost و نقوم بكتابة التعليمات البرمجية التالية فيها .....على النحو التالى :

الكود:
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        // Set the response message's MIME type
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        // Reads line of text from a character-input stream
        BufferedReader br = request.getReader();
        String s = br.readLine();

        // Get a Specific String value from line of text.
        String user = s.substring(0, s.indexOf("?"));

        int start = s.indexOf("?") + 1;
        int end = s.indexOf('?', start + 1);
        String pass = s.substring(start, end);

        start = s.indexOf('?', start + 1);
        end = s.indexOf('?', start + 1);
        String balance = s.substring(start + 1, end);

        // initilized a new class
        DataBaseClient client = new DataBaseClient();
        client.store(user, pass, balance);   // passing value form class constructor

        // send response to the client
        out.println("Data sucessfully store into MYSQL DataBase");
        out.close();    // close text-output stream
    }
}
فى السطر الاول و الثانى ....قمنا بتحديد نوع الرسالة التى ستظهر عند استجابة السرفر
فى السطر الثالث و الرابع ...الاعلان عن الكائن br الذى سيقوم بقراءة النصوص من المدخلات و تخزينة المتغير النصى s  
من السطر الخامس و حتى الحادى عشر ....هو للحصول على قيم معينة من سطور المدخلات .
أما السطر الثانى عشر و الثالث عشر ....هو تجهيز الفئة DataBaseClient للاستخدام ....و هى الفئة التى سيتم إنشائها فى الخطوة التالية :

_ سنقوم بإنشاء فئة جديدة و ليكن بأسم DataBaseClient لتحمل كافة الشفرات للازمة للاتصال و تخزين البيانات فى قاعدة بيانات mysql التى تم إنشائها وذلك على النحو التالى :

الكود:
private Connection con = null;
    private String sql = "INSERT INTO R4R.MOBILE (USERNAME, PASSWORD, BALANCE) VALUES ('?', '?', '?');";

    void store(String user, String pass, String balance) {

        try {
            // open class and load the connection Driver
            Class.forName("com.mysql.jdbc.Driver");
            // Open MYSQL Database connection
            con = DriverManager.getConnection("jdbc:mysql://b4free.net:3306/egytech", "user", "pass");
            if (!con.isClosed()) {
                // insert data into database
                PreparedStatement ps = con.prepareStatement(sql);
                ps.setString(1, user);
                ps.setString(2, pass);
                ps.setString(3, balance);
                ps.execute();
                System.out.println("Data Sucessfully Store into MYSQL DataBase");
            } else {
                System.out.println("Can't open MYSQL DataBase, try Later");
            }
        } catch (Exception ex) {
            Logger.getLogger(DataBaseClient.class.getName()).log(Level.SEVERE, "An Exception occurred due processing request", ex);
        } finally {
            // close Database connection
            try {
                if (con != null) {
                    con.close();
                }
            } catch (SQLException ex) {
                Logger.getLogger(DataBaseClient.class.getName()).log(Level.SEVERE, "An Exception occurred due processing request", ex);
            }
        }
    }
}
حيث أن :

فى السطر الاول قمنا بالاعلان عن كائن الاتصال بقواعد البيانات con
فى السطر الثانى قمنا بالاعلان عن متغير نصى sql وتمرير له جملة أستعلام لاضافة بيانات فى حقول الجدول R4R.MOBILE
فى السطر الثالث أنشأنا الطريقة store وفيها مايلى :
_ قمنا بفتح فئة وتحميل برنامج تشغيل اتصال لقواعد بيانات mysql ....وهو com.mysql.jdbc.Driver
_من خلال الاسلوب getConnection قمنا بفتح اتصال مع قاعدة البيانات التى أنشأناها وذلك عن طريق تمرير رابط سرفر قاعدة البيانات مع أسم قاعدة البيانات و أسم المستخدم و كلمة المرور الى السرفر
_ من خلال السلوب prepareStatement  التابع لكائن الاتصال con قمنا بتمير جملة الاستعلام المسؤلة عن تخزين البيانات فى حقول جدول قاعدة البيانات و التى قد خزناها فى المتغير النصى sql حتى يتم ادراج تلك البيانات الى قاعدة بيانات msql بنجاح

وهذكا نكون قدأنتهيا من إنشاء  Java Servlet ,والذى سيقوم بمهمة تلقى الطلبات وبناءالإستجابات مع سرفر قاعدة البيانات db4free.net

المرحلة الثالثة : إنشاء تطبيق الجوال Java Me

1_ قم بفتح Netbeans ثم أختر إنشاء مشروع جديد 

2_من المربع الحوارى الذى سيظهر ومن خلال التويب categories أختر نوع المشروع Java ME ليظهر لك فى الجانب الاخر بعض انواع المشروعات أختر منه Mobile Application

3__ قم بالنقر على زر التالى ليظهر لك مربع حوارى أخر يطالبك بأسم للتطبيق ...أكتب أسم r4r.mobileServlet مثلا مع مراعاة إزالة علامة الخيار   Create Hello MIDlet

4_تحديد ايقونة التطبيق ثم كليك يمين ومن القائمة التى ستظهر أختر الامر New ثم الامر  MIDlet ...ويمكنك أستخدام البنية المرئية  Visual MIDlet أذا أردت تصميم العناصر بدون الشفرة ....

5_سيظهر لك مربع حوارى يطالبك ببعض المعلومات كأسم الملف فضع  dataBaseSevletMidlet كأسم و اسم الكلاس الخاص ب dataBaseSevletMidlet

6_ بعد الانتهاء من كافة المعلومات ستجد الفئة تحتوى على الشفرة التالية :
الكود:


import javax.microedition.midlet.*;


public class dataBaseSevletMidlet extends MIDlet {

    public void startApp() {
    }
    
    public void pauseApp() {
    }
    
    public void destroyApp(boolean unconditional) {
    }
}
سنقوم بإضافة بعض الشفرات على النحو التالى :

_ أستيراد المكتبات اللازمة ...على النحو التالى :
الكود:
import java.io.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
_ سنقوم بتمديد الفئة .لتصبح على النحو التالى :
الكود:
public class dataBaseSevletMidlet extends MIDlet implements CommandListener {
_ بداخل الفئة سنقوم بكتابة الشفرة التالية :
الكود:
final Command SUBMIT = new Command("Store", Command.OK, 1);
    final Command EXIT = new Command("Exit", Command.EXIT, 2);
    private Form form;
    private TextField T_user, T_pass, T_balance;

    public dataBaseSevletMidlet() {
        // declaration field with initialization
        form = new Form("DataBase Connection");
        T_user = new TextField("Username", "", 10, TextField.PLAIN);
        T_pass = new TextField("Password", "", 10, TextField.PLAIN);
        T_balance = new TextField("Balance $", "", 12, TextField.NUMERIC);
        form.append(T_user);
        form.append(T_pass);
        form.append(T_balance);
        form.addCommand(SUBMIT);
        form.addCommand(EXIT);
        form.setCommandListener(this);
و الشفرة السابقة هى فقط لانشاء العناصر الرسومية و التى يمكنك انشائها بدون شفرة عن طريقة بنية NETBEANS بأستخدام الفئة Visual MIDlet

_ نبحث عن الطريقة startApp و نكتب الشفرة التالية وهى الخاصة بإظهار العناصر الرسومية على شاشة الجوال :

الكود:
 public void startApp() {
        Display.getDisplay(this).setCurrent(form);
    }
_نبحث عن الطريقة destroyApp و نكتب فيها الامر التالى :
الكود:
public void destroyApp(boolean unconditional) {
        notifyDestroyed();
    }
_ نقوم بإنشاء الطريقة commandAction و التى تقوم بتنفيذ الشفرة عند النقر على عناصر الاوامر command وذلك على النحو التالى :
الكود:
  public void commandAction(Command c, Displayable d) {
        if (c == EXIT) {
            destroyApp(true);
        } else if (c == SUBMIT) {
            // Store value form TextField to String
            String user = T_user.getString().trim();
            String pass = T_pass.getString().trim();
            String balance = T_balance.getString().trim();
            // User can't allow to leave any TextField blank
            if (!user.equals("") && !pass.equals("") && !balance.equals("")) {
                // initialize new Class
                DataServletClient client = new DataServletClient(this, user, pass, balance);
                client.start();
            } else {
                Alert alert = new Alert("Blank Field Error", "Please Don't leave any Block empty!", null, AlertType.ALARM);
                alert.setTimeout(1000);
                Display.getDisplay(this).setCurrent(alert, d);
            }
        }

فى الشفرة أعلاه ...أستخدمنا جملة شرطية لمعرفة أى الاوامر التى تم النقر عليها .....فإذا تم النقر على الامر EXIT يتم الخروج من البرنامج ....و إن كان النقر على الامر SUBMIT يتم تخزين البيانات الموجودة فى مربعات النصوص فى المتغيرات التى تم الاعلان عنها user, pass, balance .....ثم بعد ذلك يتم تجهيز الفئة DataServletClien و التى سيتم أنشائها فى الخطوة التالية

7_ نقوم بأنشاء فئة فرعية جديدة بأسم DataServletClien وهى التى ستشمل كافة المعلومات للازمة للاتصال MobileServlet الذى أنشاناه فى تطبيق الويب ....و ذلك على النحو التالى :

الكود:
class DataServletClient implements Runnable, CommandListener {

    //client can invoke servlet through SERVLET_URL
    final String SERVLET_URL = "http://localhost:8080/MobileServlet/dataBaseServlet";
    final Command EXIT = new Command("Exit", Command.EXIT, 1);
    private dataBaseSevletMidlet parent;
    private Display display;
    private String user, pass, balance;
    private TextBox tb = null;
    private HttpConnection hc = null;
    private InputStream is = null;
    private OutputStream os = null;
    StringBuffer sb = new StringBuffer();

    DataServletClient(dataBaseSevletMidlet aThis, String user, String pass, String balance) {
        this.parent = aThis;   // set field
        this.user = user;
        this.pass = pass;
        this.balance = balance;

        // declaration field with initialization
        display = Display.getDisplay(aThis);
        tb = new TextBox("Client Site Response..", null, 1024, 0);
        tb.addCommand(EXIT);
        tb.setCommandListener(this);
        display.setCurrent(tb);
    }

    void start() {
        // invoke new thread and begin in execution
        new Thread(this).start();
    }

    public void run() {
        try {
            // Open HTTP connection
            hc = (HttpConnection) Connector.open(SERVLET_URL);
            // client access servlet POST method
            hc.setRequestMethod(HttpConnection.POST);
            hc.setRequestProperty("User-Agent", "Profile/MIDP-2.0 Configuration/CLDC-1.0");
            hc.setRequestProperty("CONTENT-TYPE", "application/x-www-form-encoded");

            //Open DataOutputStream and write data into Stream(in byte form)
            String data = user + "?" + pass + "?" + balance + "?";
            os = hc.openDataOutputStream();
            os.write((data).getBytes());
            os.flush();

            //Open dataInputStream for connection.
            is = hc.openDataInputStream();
            int ch;
            //Read the data form DataInputStream
            while ((ch = is.read()) != -1) {
                sb.append((char) ch);          //Convert Byte into character
                System.out.println((char) ch); // Display data on console
            }
            tb.setString(sb.toString());       // data append to textBox
        } catch (IOException ex) {
            Alert a = new Alert("Server Error!", "Cannot connect to server. Ping the server to make sure it's in running state....",
                  null, AlertType.ERROR);
            a.setTimeout(Alert.FOREVER);
            display.setCurrent(a);
        } finally {
            //Close all the Stream and Connection
            try {
                if (os != null) {
                    os.close();
                }
                if (is != null) {
                    is.close();
                }
                if (hc != null) {
                    hc.close();
                }
            } catch (IOException e) {
            }
        }
    }

    public void commandAction(Command c, Displayable d) {
        if (c == EXIT || c == Alert.DISMISS_COMMAND) {
            parent.destroyApp(true);        //terminate application
        }
    }
}
و
كما ترون فى الشفرة أعلاه :

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

هذا هو عنوان الوصول للتطبيق MobileServlet و الذى يحتوى على Servlet و الذى تم إنشاءة بأسم dataBaseServlet

8_ الان قم بشتغيل تطبيق الجوال و المخرجات ستكون على النحو التالى :

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Database



تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Database1





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


عدل سابقا من قبل أحمد مناع في الجمعة أغسطس 23, 2013 6:59 pm عدل 1 مرات

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أحمد مناع الجمعة أغسطس 23, 2013 6:54 pm

المصدر المعتمد عليه فى الشرح :

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف المبرمج الطموح السبت أغسطس 24, 2013 9:48 am


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

تاريخ التسجيل : 18/02/2011
المساهمات : 207
النقاط : 368
التقيم : 17
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف جورج صبحى الأحد أغسطس 25, 2013 3:24 pm

lol! lol! lol! lol! lol! lol! 

مع تحياتى ليك ابواحميد ...فك الحظر بقى عاوز اتخانق معاك شوية
جورج صبحى
جورج صبحى
......
......

تاريخ التسجيل : 18/02/2011
المساهمات : 127
النقاط : 259
التقيم : 6
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أيمن الإبراهيم الثلاثاء أغسطس 27, 2013 10:48 am

مشكور جدا
أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 398
التقيم : 1
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف حمادة الجسر الجمعة سبتمبر 06, 2013 8:16 pm

مشكور على الدرس الرائع
بس لي طلب هل بالامكان رفع مشروع سورس بالكامل
اذا بالامكان
حمادة الجسر
حمادة الجسر
.
.

تاريخ التسجيل : 04/09/2013
المساهمات : 8
النقاط : 16
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أحمد مناع السبت سبتمبر 07, 2013 8:26 am

اسعد ناصر كتب:مشكور على الدرس الرائع
بس لي طلب هل بالامكان رفع مشروع سورس بالكامل
اذا بالامكان
أخى أسعد سيتم رفع مشروع كامل و ذلك بعد حل مشكلة فضاء الحفظ فى المرفقات

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أيمن الإبراهيم السبت سبتمبر 21, 2013 6:57 pm

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet D4n7QCnsQfpJAAAAAElFTkSuQmCC
استاذ احمد شو سبب كل هالاخطاء في فئة وما الحل
أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 398
التقيم : 1
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أحمد مناع الأحد سبتمبر 22, 2013 10:41 am

أخى ايمن ارجوا المعذرة لم استطيع أن ارى الاكواد التى فى الصورة ...لذلك ارجوا اعادة رفع صورة بحجم كبير ....ويمكنك استخدام 0zz0 لرفع الصور حيث تستطيع رفع الصورة الكبيرة عليه

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أيمن الإبراهيم الأحد سبتمبر 22, 2013 11:15 am

استاذ احمد هذا رابط الصورة

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 398
التقيم : 1
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أحمد مناع الأحد سبتمبر 22, 2013 11:20 am

اخى ايمن ...الصورة تظهر عدم أستيراد المكتبات التالية :
الكود:

import java.io.*;
import java.sql.*;
import java.util.logging.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أيمن الإبراهيم الأحد سبتمبر 22, 2013 1:25 pm

استاذ احمد اضفت الاكواد المذكورة وبقيا الاخطاء وهذه صورة اخرى
واذا بالامكان ارسال كود كامل لفئة DataBaseClient

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 398
التقيم : 1
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أحمد مناع الإثنين سبتمبر 23, 2013 6:44 am

أخى ايمن .....اليك الشفرة الكاملة servlet و الذى يحتوى على الفئتين dataBaseServlet و DataBaseClient على النحو التالى

الكود:
import java.io.*;
import java.sql.*;
import java.util.logging.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;


public class dataBaseServlet extends HttpServlet {

            
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
      
    }

    
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        BufferedReader br = request.getReader();
        String s = br.readLine();

        String user = s.substring(0, s.indexOf("?"));

        int start = s.indexOf("?") + 1;
        int end = s.indexOf('?', start + 1);
        String pass = s.substring(start, end);

        start = s.indexOf('?', start + 1);
        end = s.indexOf('?', start + 1);
        String balance = s.substring(start + 1, end);

      
        DataBaseClient client = new DataBaseClient();
        client.store(user, pass, balance);  

        out.println("Data sucessfully store into MYSQL DataBase");
        out.close();    
    }
}
  class DataBaseClient {
 private Connection con = null;
    private String sql = "INSERT INTO R4R.MOBILE (USERNAME, PASSWORD, BALANCE) VALUES ('?', '?', '?');";

    void store(String user, String pass, String balance) {

        try {
        
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://b4free.net:3306/egytech", "user", "pass");
            if (!con.isClosed()) {
              
                PreparedStatement ps = con.prepareStatement(sql);
                ps.setString(1, user);
                ps.setString(2, pass);
                ps.setString(3, balance);
                ps.execute();
                System.out.println("Data Sucessfully Store into MYSQL DataBase");
            } else {
                System.out.println("Can't open MYSQL DataBase, try Later");
            }
        } catch (Exception ex) {
            Logger.getLogger(DataBaseClient.class.getName()).log(Level.SEVERE, "An Exception occurred due processing request", ex);
        } finally {
        
            try {
                if (con != null) {
                    con.close();
                }
            } catch (SQLException ex) {
                Logger.getLogger(DataBaseClient.class.getName()).log(Level.SEVERE, "An Exception occurred due processing request", ex);
            }
        }
    }
}    
    
  
و الذى ستقوم بتغير هو بيانات السطر التالى :

الكود:
con = DriverManager.getConnection("jdbc:mysql://b4free.net:3306/egytech", "user", "pass");
ضع اسم قاعدة البيانات التى أنشأتها بدلا من egytech

ضع أسم المستخدم للسرفر بدلا من user

ضع كلمة المرور للسرفر بدلا من pass

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أحمد مناع الإثنين سبتمبر 23, 2013 6:50 am

ويمكنك ملاحظة أن الخطأ الوارد فى الصورة هو أنك كتبت الشفرة بدون إنشاء الفئة

الكود:

 class DataBaseClient {

}
و الاكواد يجب أن تكتب بين قوسين الفئة السابقة ....

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أيمن الإبراهيم الثلاثاء سبتمبر 24, 2013 9:14 pm

مشكور جدا استاذ احمد على الاجابة وتم جل المشكلة ولكن اعتذر لدي خطأ جديد
في مشروع تطبيق الجوال 
في فئة dataBaseSevletMidlet
 



هذا الكود يلي قمت بكتابته اين الغلط    ومشكور جدا 



import java.io.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class dataBaseSevletMidlet extends MIDlet implements CommandListener {
    final Command SUBMIT = new Command("Store", Command.OK, 1);
    final Command EXIT = new Command("Exit", Command.EXIT, 2);
    private Form form;
    private TextField T_user, T_pass, T_balance;
   
    public dataBaseSevletMidlet() {
        // declaration field with initialization
        form = new Form("DataBase Connection");
        T_user = new TextField("Username", "", 10, TextField.PLAIN);
        T_pass = new TextField("Password", "", 10, TextField.PLAIN);
        T_balance = new TextField("Balance $", "", 12, TextField.NUMERIC);
        form.append(T_user);
        form.append(T_pass);
        form.append(T_balance);
        form.addCommand(SUBMIT);
        form.addCommand(EXIT);
        form.setCommandListener(this);
     وهنااعطاني اشارة حمراء    public void startApp() {
            Display.getDisplay(this).setCurrent(form);
        }
       
        public void pauseApp() {
        }
       
        public void destroyApp(boolean unconditional) {
            notifyDestroyed();
        }
       
        public void commandAction(Command c, Displayable d) {
            if (c == EXIT) {
                destroyApp(true);
            } else if (c == SUBMIT) {
                // Store value form TextField to String
                String user = T_user.getString().trim();
                String pass = T_pass.getString().trim();
                String balance = T_balance.getString().trim();
                // User can't allow to leave any TextField blank
                if (!user.equals("") && !pass.equals("") && !balance.equals("")) {
                    // initialize new Class
                    DataServletClient client = new DataServletClient(this, user, pass, balance);
                    client.start();
                } else {
                    Alert alert = new Alert("Blank Field Error", "Please Don't leave any Block empty!", null, AlertType.ALARM);
                    alert.setTimeout(1000);
                    Display.getDisplay(this).setCurrent(alert, d);
                }
            }
        }  هنا اعطا اشارة حمراء
       
أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 398
التقيم : 1
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أحمد مناع الجمعة سبتمبر 27, 2013 5:42 pm

أخى ايمن سأحاول رفع مثال كامل قريبا وأرجوا المعذرة على عدم دخولى النت من صباح الاربعاء الماضى ...وذلك بسبب المظاهرات التى نشبت فى الدولة التى اقيم فيها حاليا ...مما تضطر السلطات بقفل النت من حين لاخر

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet Empty رد: تعلم كيفية إتصال تطبيقات الجوال j2me بقواعد بيانات MYSQL على سرفر مجانى بأستخدام Servlet

مُساهمة من طرف أيمن الإبراهيم الجمعة سبتمبر 27, 2013 7:41 pm

الله يحميكن  ومشكور جدا جدا
أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 398
التقيم : 1
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى