Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JDBC по вебу, реализация JDBC в веб 
:(
    Опции темы
initmax
Дата 24.7.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 24.7.2009

Репутация: нет
Всего: нет



Решил написать и скрутить несколько собственных классов для работы с БД Mysql ясно дело используя за основу пакеты которые для этого предназначаются. 

вот класс осуществляющий взаимодействие с БД загрузку API драйвара, покдлючение, отключение.. 



Код

/*
 * Class CreateBaseConnection provide connect to base MySQL
 * 
 */

package initmaxBaseConnection;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


/**
 *
 * @author initmax
 */
public class CreateBaseConnection {

private Connection CurrentConnect;

//this line need out to txt file
private String url = "jdbc:mysql://localhost:3030/maxim" +
                    "?autoReconnect=true&useUnicode=true&characterEncoding=utf8";
private String name = "root";
private String password = "123";


//***********************************************************************
//first need download driver, for work MySQL connect
    public void DownloadDriver()
    {
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Driver loading success!");
        }

        catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }
    }

//***********************************************************************
//Connected to MySQL Base use download driver
     public void Connected()
     {
            try
            {
                CurrentConnect = DriverManager.getConnection(url, name, password);
                System.out.println("Connected.");  
            }

            catch (SQLException e)
            {
                    e.printStackTrace();
            }
     }
        
    
//*********************************************************************
//disconnected base after finish work, get object connect
     public int DisConnected()
     {
         try
         {
          CurrentConnect.close();
          System.out.println("Disconnected.");
         }

         catch (SQLException e)
         {
                e.printStackTrace();
         }

         return 0;
      }

      public Connection GetConnection()
      {
          return this.CurrentConnect;
      }


}




Затем класс который в перспективе будет содержать MySQL запросы по БД 


Код



package initmaxMysqlQuery;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Statement;

/**
 *
 * @author initmax
 */
public class BaseQueryMysql {

private Connection CurrentConnect;

//constructor initial Current database connection
public BaseQueryMysql(Connection CurrentConnectBase)
{
    CurrentConnect = CurrentConnectBase;
}


public void selectedAll()
{
       try
       {
         Statement st = CurrentConnect.createStatement();
         String query = "select * from students";
         ResultSet rs = st.executeQuery(query);


         String FIO;
         int id_group;

         while (rs.next())
         {

            FIO = rs.getString("FIO");
            id_group = rs.getInt("id_group");

            System.out.println("******************************");
            System.out.println("FIO: " + FIO);
            System.out.println("GROUP: " + id_group);
           }



       }


       catch (SQLException e) {
         e.printStackTrace();
      }

        
}
 
}




Ну и наконец класс Майн в котором буду порождать экземпляры вышеперечисленных классов и вызывать их методы

Код



import initmaxBaseConnection.CreateBaseConnection;
import initmaxMysqlQuery.BaseQueryMysql;
import java.sql.Connection;
import java.io.*;

/**
 *
 * @author initmax
 */
public class ClassMain {
    public static void main(String[] args)
    {
//connected to MySql base
        CreateBaseConnection BaseObj = new CreateBaseConnection();
        BaseObj.DownloadDriver();
        BaseObj.Connected();


//set current connect to database, for execute query
        BaseQueryMysql QueryObj = new BaseQueryMysql(BaseObj.GetConnection());

//exec query
        QueryObj.selectedAll();
        

//disconnect database, finish work
        BaseObj.DisConnected();
    }



}





В майне создаю Объект для работы с БД вызываю из него метод для загрузки драйвера для работы MySQL после чего подключаюсь к БД, затем текущее подключение BaseObj.GetConnection() передаю объекту отвечающему за запросы по БД и начинаю выводить из БД информацию.

Не накрутил ли я лишнего? если кто-то это делает более логично или просто  smile 

и главный вопрос как теперь сие организовать через браузер? в сервлет Main вписать?
или как это делается?


Благодарю за внимание.


Это сообщение отредактировал(а) initmax - 24.7.2009, 16:15
PM MAIL   Вверх
DimW
Дата 24.7.2009, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 3
Всего: 44



Цитата(initmax @  24.7.2009,  16:14 Найти цитируемый пост)
Не накрутил ли я лишнего? 

для того чтобы это понять нужно знать какую цель вы приследуете.

Цитата(initmax @  24.7.2009,  16:14 Найти цитируемый пост)
Затем класс который в перспективе будет содержать MySQL запросы по БД

т.е. если возникнет надобность изменить запрос вы предпологаете перекомпилить класс и пересобрать проект.
вы точно уверены что это вам нужно?
PM MAIL ICQ   Вверх
initmax
Дата 27.7.2009, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 24.7.2009

Репутация: нет
Всего: нет



Цитата(DimW @ 24.7.2009,  17:10)
Цитата(initmax @  24.7.2009,  16:14 Найти цитируемый пост)
Не накрутил ли я лишнего? 

для того чтобы это понять нужно знать какую цель вы приследуете.

Цитата(initmax @  24.7.2009,  16:14 Найти цитируемый пост)
Затем класс который в перспективе будет содержать MySQL запросы по БД

т.е. если возникнет надобность изменить запрос вы предпологаете перекомпилить класс и пересобрать проект.
вы точно уверены что это вам нужно?


Цитата


для того чтобы это понять нужно знать какую цель вы приследуете.


Приследую - организацию работы с БД через веб


Цитата


т.е. если возникнет надобность изменить запрос вы предпологаете перекомпилить класс и пересобрать проект.
вы точно уверены что это вам нужно? 

Это для примера запрос в классе, а так думаю хранить запросы в отдельном тхт файле, делать с него выборку  и исполнять. Так делается или иначе?
PM MAIL   Вверх
DimW
Дата 27.7.2009, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 3
Всего: 44



Цитата(initmax @  27.7.2009,  08:24 Найти цитируемый пост)
Приследую - организацию работы с БД через веб

вы считаете что работа через "веб" с БД требует какого то особого подхода? если да то поясните плиз.

Цитата(initmax @  27.7.2009,  08:24 Найти цитируемый пост)
а так думаю хранить запросы в отдельном тхт файле, делать с него выборку  и исполнять

ну как вариант, но у вас есть еще jsp.
еще можете посмотреть в сторону ORM.
все зависит от предпочтений и от маштаба проекта.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.3292 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.