Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Работа с БД на сервлетах


Автор: freel 16.7.2009, 12:06
Здравия!

Ранее в PHP для орагнизации работы с БД я пользовал следующую схему
1)    class_my_sql.inc – содержал строки для подключения БД, установки кодировки итд…
например вот:

Код

class class_my_sql 
{

/**
*
*Переменные для работы с БД
*/
    private  $data_base; 
    private  $host; 
    private  $is_open;
    private  $resourse_id;
    private  $user;
    private  $pass;


    function __construct($host,$db,$user,$pass)
    {
        $this->host=$host;
        $this->data_base=$db;
        $this->user=$user;
        $this->pass=$pass;
    }    
    
    function __destruct()
    {
        $this->close();
 //               echo"<br> мусукул деструктор сработал <br>";
    }

/**
*
*метод подключения к БД
*/
    function connect()
    {
        
        if ($this->resourse_id = mysql_connect($this->host, $this->user,$this->pass)) 
        {
            if($this->data_base==""){return false;}                
………………



2)    class_query_mysql.inc – Класс запросов под КОНКРЕТНУЮ реализацию БД
т.е. например выбрать весь товар не превышающий определённую цену.
Например:

Код

function query_get_mass_table($name_table,$db)
{

  $query = " SELECT * FROM `$name_table` LIMIT 0 , 30 ";
  $res = $this->exect_query($query,$db);
  return $res;

}



function query_get_line_table($name_table,$id,$db)
{

  $query = " SELECT * FROM `$name_table` WHERE `id`= $id LIMIT 0 , 30 ";
  $res = $this->query_get_res($query,$db);
  return $res;

}




Касательно WEB в Java система работы с БД такая же как и выше мной указаная?
Т.е. создание двух сервлетов 
1) Сервлет 1 -  Содержит системные вызовы для подключение БД 
2) Сервлет 2 – Содержит набор MySQL запросов для работы с конкретной БД




Автор: Samotnik 16.7.2009, 12:15
freel, тут мало пхпэшников   smile
Цитата(freel @  16.7.2009,  12:06 Найти цитируемый пост)
Касательно WEB в Java система работы с БД такая же как и выше мной указаная?

ну .... вобщем можно и так smile
лучше всего для работы с БД обратите внимание на фреймворк https://www.hibernate.org/ 

Автор: freel 16.7.2009, 14:37
Другими словами Сервлет для выбора и подключения к БД является стандартным? а сервлет с набором запросов по БД пишется самостоятельно?

Автор: Samotnik 16.7.2009, 14:44
freel, по-разному можно реализовать. Самый распространенный способ, создать  *.properties файл, там прописать все настройки для соединения с БД, затем в классе их использовать, получить доступ к БД, выбрать данные, вернуть результат. 
Цитата(freel @  16.7.2009,  14:37 Найти цитируемый пост)
Другими словами Сервлет для выбора и подключения к БД является стандартным? а сервлет с набором запросов по БД пишется самостоятельно? 

нет, почитай про концепцию MVC сервлет всего лишь принимает/отправляет запросы, необходимы обычные Java классы, которые будут хибернетным  smile   
Почитай лучше доки, hibernate мощная и интересная штука  smile

Добавлено через 53 секунды
Для начала http://www.roseindia.net/hibernate/firstexample.shtml  smile 

Автор: DimW 16.7.2009, 15:26
Цитата(Samotnik @  16.7.2009,  14:44 Найти цитируемый пост)
Для начала вот  

первая доза песплатно...  smile 

Автор: Старовъръ 16.7.2009, 20:43
На Хибернете свет клином не сходится. Некоторые от него отказываются вовсе в пользу обычных хранимых процедур и SQL-команд из-за производительности.

Автор: DimW 17.7.2009, 11:19
Цитата(Старовъръ @  16.7.2009,  20:43 Найти цитируемый пост)
Некоторые от него отказываются вовсе в пользу обычных хранимых процедур

главное что бы у СУБД внутренний язык был достаточно развитым для реализации логики, иначе танцы с бубном обеспечены, т.е. из за нехватки возможностей языка часть логики выносится на уровень приложения, а это сами понимаете чем грозит...

Цитата(Старовъръ @  16.7.2009,  20:43 Найти цитируемый пост)
из-за производительности

ну производительность можно потерять и при написании хранимок, все от опыта зависит.
в случае с ORM сделать обратное весьма сложно, да и 99% об этом даже не задумываются.

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