Java - URLConnection для PHP $ _GET Методы для MySQL

0

ОК, так что проблема с этим. Я попытался использовать MySQL JConnector для Java, и люди говорят, что это не так, потому что оно может содержать ваши данные апплета, поэтому я сказал им, что буду использовать URL-адреса метода PHP $_GET с использованием PHP-скриптов. Они сказали, что все будет хорошо. Однако я обнаружил две проблемы с этим.

1.) Они медленны. Для URLConnection требуется не менее 4-5 секунд. Даже когда я указываю его на localhost.

2.) Это много кода. Может быть, я просто делаю это неправильно?

Вот что я имею - что работает!

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.Applet;
import java.awt.TextArea.*;
import java.util.*;
import java.net.*;
import java.applet.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class test extends JApplet
{
    public JTextArea c;

    public void init()
    {
        c = new JTextArea();
        add(c);
        c.append("Let change the level!");
        try
        {
            URL game = new URL("http://localhost/mystikrpg/game.php?act=stats&username=Dan");
            URLConnection connection = game.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String inputLine;
            while ((inputLine = in.readLine()) != null)
            {
                String command = inputLine;
                System.out.println(command);
                String[] temp = command.split("\\|");
                c.append("\nYou're Lvl is: " + temp[1]);
            }
            in.close();

            c.append("\nTrying to update level...");
            String newLevel = "777";
            URL newGame = new URL("http://localhost/mystikrpg/game.php?act=updateLvl&username=Dan&lvl=" + newLevel);
            URLConnection levelConnection = newGame.openConnection();
            BufferedReader level_BR = new BufferedReader(new InputStreamReader(levelConnection.getInputStream()));

            URL updateLevelURL = new URL("http://localhost/mystikrpg/game.php?act=stats&username=Dan");
            URLConnection up_lvl_conn = updateLevelURL.openConnection();
            BufferedReader up_lvl_br = new BufferedReader(new InputStreamReader(up_lvl_conn.getInputStream()));
            String getLvl;

            while ((getLvl = up_lvl_br.readLine()) != null)
            {
                String[] newLvl = getLvl.split("\\|");
                c.append("\nYou're NEW Lvl is: " + newLvl[1]);
                // newLvl[1] == newLevel
            }
            c.append("\nLevel update done!");

            level_BR.close();
            up_lvl_br.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

и вот ответ:

Let change the level!
You're Lvl is: 123456
Trying to update level...
You're NEW Lvl is: 777
Level update done!

Он работает, но он медленный и громоздкий - как я могу исправить эту проблему?

Теги:

2 ответа

1
Лучший ответ

Я бы удостоверился, что ваша база данных MySQL имеет правильную настройку индексов. Не имея надлежащего Настройки MySQL может замедлить ваш код на тонну!

Но если это ваш PHP-код вызывает эту проблему, вы должны опубликовать это как appose на стороне Java. Поскольку PHP-код имеет дело с базой данных, моя ставка заключается в том, что это задержка.

  • 0
    ОК, вот и все. Я попробую индексирование. Могу ли я индексировать ВСЕ мои данные?
  • 0
    asdasdf.pastebin.com/wc040XuV
Показать ещё 9 комментариев
1

Проблема в том, что URLConnection на самом деле довольно медленный. Вы можете попробовать передать параметр Proxy.NO_PROXY в openConnection, но это не сделает его сверхбыстро. (От 1 до 3 секунд за звонок, поэтому вы все еще используете много времени) Альтернативой HttpConnection может быть Jakarta Commons HttpClient.

На самом деле также довольно забавно, что URL-адрес для обновления вашего уровня остается открытым: если кто-то узнает об этом, у вас будет много мошенников, использующих вашу игру.

  • 0
    Я собираюсь затмить (sp?) Код :)
  • 0
    Кроме того, что еще я могу сделать? : \ MySQL Java является уязвимым, и URLConnection работает медленно ... так что да ...: |

Ещё вопросы

Сообщество Overcoder
Наверх
Меню