Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > Апплет и доступ к MYSQl


Автор: qpile 8.1.2010, 16:03
Здравствуйте! Имеется апплет на этом сайте  http://russian-robot.ru/iv.html  ... Пока он подключается к БД которая стоит у меня на компе..А хочется БД залить к провайдеру..Как это сделать?
Во-первых на данный момент у меня тариф без возможности MYSQL использования..скорее всего надо перейти на другой?!
Во-вторых как получать данные от провайдера? Пока запрос к базе у меня такой :
Код

  int i=0;
        Statement statement = null;
        Connection connection = null;
        String createDatabaseQyery="select * from quote.iv where data>='"+start_date+"' and data<='"+finish_date+"'   and code='iv' order by data,time";


        final XYSeries series =  new XYSeries("");
        this.min=1000000.1;
        this.max=0.0;


        try {
            connection = DriverManager.getConnection("jdbc:mysql://localhost/mysql","root", "");
            statement = connection.createStatement();
            ResultSet rs=statement.executeQuery(createDatabaseQyery);

            while (rs.next()){...................

Как его переделать ? Спасибо всем
 

Автор: qpile 8.1.2010, 16:24
И заодно дайте пожалуста совет как апплет можно улучшить

Автор: COVD 9.1.2010, 17:49
Как улучшить не знаю, но фразу
Цитата

Так же сдесь описаны некоторые услуги

исправил бы на
.. здесь предлагаются ..

И апплет ваш не открывается не потому, что java не установлена, а из-за ошибки

Код

exception: null.
java.io.FileNotFoundException: JNLP not available: launch.jnlp
    at sun.plugin2.applet.JNLP2Manager.loadJarFiles(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Exception: java.io.FileNotFoundException: JNLP not available: launch.jnlp


ЗЫ. Сомневаюсь, что хостер вам позволит подсоединяться к базе напрямую через интернет. Вам действительно придется поменять план, но соединение с базой обычно предполагается по локальной сети хостера, из PHP или JSP, т.е. из кода, работающего на сервере. Иными словами, придется реализовывать не двухзвенную, а трехзвенную архитектуру. 

Автор: qpile 12.1.2010, 09:41
Написал апплет с помошью нетбинс.  Запустил-работает. Загрузил к хостеру-работает с сайта. Но почему то я не могу посмотреть на него с другого компа, хотя виртуалка стоит на нем. И тепер ьзапустаю проект на другом компе-компилится , но отдельно стационарно через браузер тоже запускаться не хочет..Вот ссылка на апплет

http://www.russian-robot.ru/iv.html

Спасибо за помощь.
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- ########################## IMPORTANT NOTE ############################ -->
<!-- This preview HTML page will work only with JDK 6 update 10 and higher! -->
<!-- ###################################################################### -->
<html>
    <head>
        <title>Test page for launching the applet via JNLP</title>
    </head>
    <body>
        <h3>Test page for launching the applet via JNLP</h3>
        <applet width="300" height="300">
            <param name="jnlp_href" value="launch.jnlp"/>
        </applet>
        <!-- Or use the following script element to launch with the Deployment Toolkit -->
        <!-- Open the deployJava.js script to view its documentation -->
        <!--
        <script src="http://java.com/js/deployJava.js"></script>
        <script>
            var attributes = {
                codebase:   [applet codebase],
                code:       [class to launch],
                archive:    [JAR file with the applet],
                width:      [applet width],
                height:     [applet height]
            };
            var parameters = { [applet parameters] };
            var version = [JDK version];
            deployJava.runApplet(attributes, parameters, version);
        </script>
        -->
    </body>
</html>



Автор: qpile 13.1.2010, 17:17
все перепробовал. NETBEANS компилирует проект без проблем . Но когда его билдишь в папке disrt он уже не запускается через браузер. Почему такое происходиТ? Выводит следующее



Код
stModified = 1263391058156
exception: JNLP file error: launch.jnlp. Please make sure the file exists and check if "codebase" and "href" in the JNLP file are correct..
java.io.FileNotFoundException: JNLP file error: launch.jnlp. Please make sure the file exists and check if "codebase" and "href" in the JNLP file are correct.
    at sun.plugin2.applet.JNLP2Manager.loadJarFiles(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:717)
Exception: java.io.FileNotFoundException: JNLP file error: launch.jnlp. Please make sure the file exists and check if "codebase" and "href" in the JNLP file are correct.

http://webfile.ru/4227359

Автор: Alexandr87 14.1.2010, 07:34
qpile, попробуй постаринке загружать апплет на страничку:
Код

<APPLET code='somepackage.Applet' width=100 height=100 archive='somearch.jar'></applet>

Автор: qpile 14.1.2010, 13:25
небольшое продвижение есть..Теперь показывается стандартное окно загрузки java но тем не менее полоса бегает по кругу, а апплет не движется

Автор: LSD 14.1.2010, 18:31
Апплет загружается, но не работает из-за:
Код

Caused by: java.net.SocketException: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:3306 connect,resolve)
    at com.mysql.jdbc.StandardSocketFactory.unwrapExceptionToProperClassAndThrowIt(StandardSocketFactory.java:404)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:265)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2026)
    ... 39 more

Это вообще что за фигня? Какой еще localhost?! Для апплета localhost это компьютер пользователя, откуда там MySQL?

Автор: qpile 14.1.2010, 19:54
Провайдер сказал что адрес у базы localhost.. А как мне прописать адрес?

Автор: qpile 15.1.2010, 12:03
Обращаюсь я к базе следующим образом :
 connection = DriverManager.getConnection("localhost",пользоваель, пароль);

Это правильно?

Автор: LSD 15.1.2010, 13:45

 ! 
LSD
Хватит плодить однотипные темы! В следующий раз, все темы отправятся в мусорку!




Цитата(qpile @  14.1.2010,  19:54 Найти цитируемый пост)
Провайдер сказал что адрес у базы localhost.

Цитата(LSD @  14.1.2010,  18:31 Найти цитируемый пост)
Для апплета localhost это компьютер пользователя



Для начала, выясни у провайдера можно ли обращаться к MySQL извне (слушает ли она интерфейсы отличные от 127.0.0.1 и открыты ли порты). Скорее всего нет и не будет.
Цитата(COVD @  9.1.2010,  17:49 Найти цитируемый пост)
Сомневаюсь, что хостер вам позволит подсоединяться к базе напрямую через интернет. Вам действительно придется поменять план, но соединение с базой обычно предполагается по локальной сети хостера, из PHP или JSP, т.е. из кода, работающего на сервере. Иными словами, придется реализовывать не двухзвенную, а трехзвенную архитектуру.

Автор: qpile 16.1.2010, 16:26
ПРо мусорку-понял


А дайте кто нить пример как приконектиться к базе хостера можно

Автор: qpile 16.1.2010, 17:08
дык я же и не извне обращаюсь..Апплет то тоже у хостура будет лежать

Автор: LSD 16.1.2010, 17:36
Интересно, сколько раз надо повторить
Цитата(LSD @  14.1.2010,  18:31 Найти цитируемый пост)
Для апплета localhost это компьютер пользователя

чтобы на нее наконец обратили внимание и задумались о ее смысле.



Налицо явное непонимание того как работает технология апплетов. Пока автор не прочитает какую нибудь книгу или http://java.sun.com/docs/books/tutorial/deployment/applet/index.html, продолжать дискуссию бессмысленно.

Автор: qpile 16.1.2010, 22:01
Пробую вот так 

connection = DriverManager.getConnection("jdbc:mysql://russian-robot.ru:3306/localhost","пользователь", "пароль"); 
и так 

connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/russian_quote","пользователь", "пароль"); 

Все равно LINK FAILURE... 

У меня база данный называет russian_quote, a таблица IV.

Добавлено через 53 секунды
Апплет я лью к хостеру

Добавлено через 4 минуты и 31 секунду
аааа....ТО есть получаться если я апплет заливаю к хостеру, потом запускаю его у себя на сайте, то я не смогу все равно к своей базе MYSQL обратиться?

Автор: qpile 18.1.2010, 12:06
а как получить с помощью апплета данные выдернутые из базы с помощью PHP? 

Теперь я понял..Нужно на PHP еще прибамбас писать

Автор: LSD 18.1.2010, 13:48
Цитата(qpile @  18.1.2010,  12:06 Найти цитируемый пост)
Теперь я понял..Нужно на PHP еще прибамбас писать 

Об этом писалось еще неделб назад:
Цитата(COVD @  9.1.2010,  17:49 Найти цитируемый пост)
Вам действительно придется поменять план, но соединение с базой обычно предполагается по локальной сети хостера, из PHP или JSP, т.е. из кода, работающего на сервере. Иными словами, придется реализовывать не двухзвенную, а трехзвенную архитектуру. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)