كود برنامج يقوم بالاتصال بقاعدة بيانت باستخدام J2ME

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

كود برنامج يقوم بالاتصال بقاعدة بيانت باستخدام J2ME

مُساهمة من طرف أيمن الإبراهيم في الأربعاء أغسطس 14, 2013 11:29 pm

ساقدم لكم كود برنامج اتصال بقاعدة البيانات باستخدام J2ME
اتصال قاعدة البيانات باستخدام  J2ME

طار CLDC، لا تدعم JDBC اجهات برمجة التطبيقات. للاتصال بقواعد البيانات من الأجهزة التي يكون التكوين CLDC، يمكنك استدعاء بريمج من MIDLets. اتصال لقاعدة البيانات،تشغيل الاستعلامات وظائف أخرى يجب أن تنفذ في بريمج.تمرير المعلمات إلى بريمج مثل اسم المستخدم، كلمة السر ويمكن أن يتم من MIDLets.

المثال أدناه يأخذ اسم قاعدة البيانات، اسم المستخدم وكلمة المرور من MIDlet التي تعمل على الجهاز J2ME ويمررها إلى بريمج. يتم تمرير حالة اتصال إلى MIDlet


الرمز:



import java.io.*;


import java.util.*;


import javax.microedition.midlet.*;


import javax.microedition.lcdui.*;


import javax.microedition.io.*;





public class MySQLConn extends MIDlet implements CommandListener {


      private String username;


      private String url = "http://localhost:8080/servlets-examples/servlet/getConnection";


      private Display display;


      private Command exit = new Command("EXIT", Command.EXIT, 1);;


      private Command connect = new Command("Connect", Command.SCREEN, 1);


      private TextField tb;


      private Form menu;


      private TextField tb1;


      private TextField tb2;


      DBConn db;





      public MySQLConn() throws Exception {


            display = Display.getDisplay(this);





      }





      public void startApp() {


            displayMenu();


      }





      public void displayMenu() {


            menu = new Form("Connect");


            tb = new TextField("Please input database: ","",30,TextField.ANY );





            tb1 = new TextField("Please input username: ","",30,TextField.ANY);





            tb2 = new TextField("Please input password: ","",30,TextField.PASSWORD);





            menu.append(tb);


            menu.append(tb1);


            menu.append(tb2);


            menu.addCommand(exit);


            menu.addCommand(connect);


            menu.setCommandListener(this);


            display.setCurrent(menu);


      }





      public void pauseApp() {}





      public void destroyApp(boolean unconditional) {}





      public void commandAction(Command command, Displayable screen) {


            if (command == exit) {


                  destroyApp(false);


                  notifyDestroyed();


            } else if (command == connect) {


                  db = new DBConn(this);


                  db.start();


                  db.connectDb(tb.getString(),tb1.getString(),tb2.getString());


            }


      }





      public class DBConn implements Runnable {


            MySQLConn midlet;


            private Display display;


            String db;


            String user;


            String pwd;


            public DBConn(MySQLConn midlet) {


                  this.midlet = midlet;


                  display = Display.getDisplay(midlet);


            }





            public void start() {


                  Thread t = new Thread(this);


                  t.start();


            }





            public void run() {


                  StringBuffer sb = new StringBuffer();


                  try {


                        HttpConnection c = (HttpConnection) Connector.open(url);


                        c.setRequestProperty("User-Agent","Profile/MIDP-1.0, Configuration/CLDC-1.0");


                        c.setRequestProperty("Content-Language","en-US");


                        c.setRequestMethod(HttpConnection.POST);


                        DataOutputStream os = (DataOutputStream)c.openDataOutputStream();





                        os.writeUTF(db.trim());


                        os.writeUTF(user.trim());


                        os.writeUTF(pwd.trim());


                        os.flush();


                        os.close();





                        // Get the response from the servlet page.


                        DataInputStream is =(DataInputStream)c.openDataInputStream();


                        //is = c.openInputStream();


                        int ch;


                        sb = new StringBuffer();


                        while ((ch = is.read()) != -1) {


                              sb.append((char)ch);


                        }


                        showAlert(sb.toString());


                        is.close();


                        c.close();


                  } catch (Exception e) {


                        showAlert(e.getMessage());


                  }


            }


            /* This method takes input from user like db,user and pwd and pass to servlet */


            public void connectDb(String db,String user,String pwd) {


                  this.db = db;


                  this.user = user;


                  this.pwd = pwd;


            }





            /* Display Error On screen*/


            private void showAlert(String err) {


                  Alert a = new Alert("");


                  a.setString(err);


                  a.setTimeout(Alert.FOREVER);


                  display.setCurrent(a);


            }


      };


}




الرمز:






import java.io.*;


import java.text.*;


import java.util.*;


import javax.servlet.*;


import javax.servlet.http.*;


import java.sql.*;





public class getConnection extends HttpServlet {


      public void init() { }





      public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


            DataInputStream in = new DataInputStream((InputStream)request.getInputStream());


            String db = in.readUTF();


            String user = in.readUTF();


            String pwd = in.readUTF();


            String message ="jdbc:mysql://localhost:3306/"+db+","+user+","+pwd;


            try {


                  connect(db.toLowerCase().trim(),user.toLowerCase().trim(), pwd.toLowerCase().trim());


                  message += "100 ok";


            } catch (Throwable t) {


                  message += "200 " + t.toString();


            }


            response.setContentType("text/plain");


            response.setContentLength(message.length());


            PrintWriter out = response.getWriter();


            out.println(message);


            in.close();


            out.close();


            out.flush();


      }





      public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


            doPost(request,response);


      }





      /* This method connects to MYSQL database*/


      private void connect(String db, String user,String pwd) throws Exception {


            // Establish a JDBC connection to the MYSQL database server.


            //Class.forName("org.gjt.mm.mysql.Driver");


            Class.forName("com.mysql.jdbc.Driver").newInstance();


            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+db,user,pwd);


            // Establish a JDBC connection to the Oracle database server.


            //DriverManager.registerDriver(new oracle.jdbc.OracleDriver());


            //Connection conn = DriverManager.getConnection(


            // "jdbc:oracle:thin:@localhost:1521:"+db,user,pwd);





            // Establish a JDBC connection to the SQL database server.


            //Class.forName("net.sourceforge.jtds.jdbc.Driver");


            //Connection conn = DriverManager.getConnection(


            // "jdbc:jtds:sqlserver://localhost:1433/"+db,user,pwd);


      }


}


بقلم : ايمن


عدل سابقا من قبل NEXT في الخميس أغسطس 15, 2013 6:00 am عدل 1 مرات (السبب : التنسيق)

أيمن الإبراهيم
........
........

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

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

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


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