powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Session EJB 3.0 + Oracle
2 сообщений из 2, страница 1 из 1
Session EJB 3.0 + Oracle
    #34412406
BesZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я использую Oracle JDeveloper 10.1.3.2
Сейчас начал разбираться с EJB 3.0

Вопрос: Каким образом можно получить доступ из сессионого EJB к базе данных? Т.е. интересует каким образом в сессионном EJB можно получать из БД данные? Можно ли из сессионого EJB послать базе произвольный запрос, статический или динамический, и получить ответ? Каким образом в сессионном EJB можно вызвать хранимую процедуру или функцию базы данных?
...
Рейтинг: 0 / 0
Session EJB 3.0 + Oracle
    #34412451
yanich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работаю с такими же инструментами.
Ответ - можно всё.
Если хотите использовать SQL, то пример такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
@Stateless(name = "LoginFacade")
 public   class  LoginFacadeBean  implements  LoginFacade, LoginFacadeLocal {

    @PersistenceContext(unitName = "Model")
     private  EntityManager em;

    @Resource(name = "jdbc/oracleDS")
     private  DataSource ds;

     public  LoginFacadeBean() {
    }

    
     public  String getUser(String UserLogin, String UserPassword)  throws  ModelException {
        Connection conn =  null ;
        OracleCallableStatement cstmt =  null ;

        String user =  null ;

         try  {
            conn = ds.getConnection();

            cstmt = (OracleCallableStatement)conn.prepareCall("{ call ? := clb_get_user(?,?) }");


            cstmt.registerOutParameter( 1 , Types.VARCHAR); 
            cstmt.setString( 2 , UserLogin);
            cstmt.setString( 3 , UserPassword);
            cstmt.executeUpdate();
            user = cstmt.getString( 1 );

        }  catch  (SQLException e) {
             throw   new  ModelException(e.toString());
        }  finally  {
             try  {
                 if  (cstmt !=  null )
                    cstmt.close();
                 if  (conn !=  null )
                    conn.close();
            }  catch  (SQLException e) {
                 throw   new  ModelException(e.toString());
            }
        }
         return  user;
    }

Если используете JPA (что является более правильным), то пример такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
@Stateless(name="BooksSearchFacade")
 public   class  BooksSearchFacadeBean  implements  BooksSearchFacade, BooksSearchFacadeLocal {
    @PersistenceContext(unitName="Model")
     private  EntityManager em;

     public  BooksSearchFacadeBean() {
    }

    /** <code>select o from BooksSearch o</code> */
     public  List<BooksSearch> queryBooksSearchFindAll() {
         return  em.createNamedQuery("BooksSearch.findAll").getResultList();
    }


}
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Session EJB 3.0 + Oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]