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

Вопрос: Каким образом можно получить доступ из сессионого EJB к базе данных? Т.е. интересует каким образом в сессионном EJB можно получать из БД данные? Можно ли из сессионого EJB послать базе произвольный запрос, статический или динамический, и получить ответ? Каким образом в сессионном EJB можно вызвать хранимую процедуру или функцию базы данных?
...
Рейтинг: 0 / 0
23.03.2007, 17:15:10
    #34412451
yanich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session EJB 3.0 + Oracle
Работаю с такими же инструментами.
Ответ - можно всё.
Если хотите использовать 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
Форумы / Java [игнор отключен] [закрыт для гостей] / Session EJB 3.0 + Oracle / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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