Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
titans2011
302 / 263 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
05.09.2012, 14:38  [ТС]

Как и где правильно открывать метод - Java EE

05.09.2012, 14:38. Просмотров 1530. Ответов 11
Метки (Все метки)

Решил я на практике сделать Jpa+DAO.Как обычно ничего не получается. Пример был обрезанный.
Значит сам Enplement класс:
Java
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
46
47
package test;
 
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
 
@Entity
@Table (name="taxi")
public class Taxi {
    @Id
    @GeneratedValue 
    @Column(name="ID")
    private int ID;
    @Column(name="Name")
    private String Name;
    @Column(name="Numbercur")
    private String Numbercur;
    @Column(name="Mobile")
    private String Mobile;
    public int getID() {
        return ID;
    }
    public void setID(int iD) {
        ID = iD;
    }
    public String getName() {
        return Name;
    }
    public void setName(String name) {
        Name = name;
    }
    public String getNumbercur() {
        return Numbercur;
    }
    public void setNumbercur(String numbercur) {
        Numbercur = numbercur;
    }
    public String getMobile() {
        return Mobile;
    }
    public void setMobile(String mobile) {
        Mobile = mobile;
    }
    
}
Потом пример посоветовал создать интерфейс.
Java
1
2
3
4
5
6
7
8
package test;
 
public interface DAO<K,E> {
    void persist (E entity);
    void remove (E entity);
    E finDyId(K id);
 
}
От него имплементить абстрактный класс:
Java
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
package test;
 
import javax.persistence.EntityManager;
import java.lang.reflect.ParameterizedType; 
import java.util.List; 
 
 
import javax.persistence.EntityManager; 
import javax.persistence.PersistenceException; 
import javax.persistence.Query;
 
 
 
public abstract class JpaDao<K,E> implements DAO<K,E> {
    protected Class<E> entityClass;
    protected EntityManager entityManager;
    
    public JpaDao()
    {
        ParameterizedType genericSuperclass= (ParameterizedType) getClass().getGenericSuperclass();
        this.entityClass=(Class<E>) genericSuperclass.getActualTypeArguments()[1];
    }
    public void persist (E entity) {entityManager.persist(entity);}
    public void remove (E entity) {entityManager.remove(entity);}
    public E findById (K id) {return entityManager.find(entityClass, id);}
 
}
Ну и главный класс (вообще дрова, т.к. я не понимаю что от куда вызывать):
Java
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
package test;
 
import java.util.List;
 
import org.hibernate.Query;
 
 
 
public class Main {
 
    /**
     * @param args
     */
    //@EJB(name="DAO")
    private DAO d;
    public static void main(String[] args) {
        
        Taxi base=new Taxi();
        base.setName("Ivan Ivanov");
        base.setNumbercur("XX7777XX");
        base.setMobile("1111111");
        d.persist(base);
        
        //читаем данные
        Query list=session.createQuery("from  taxi as base");
        List <Taxi> taxiList=list.list();
        for (Taxi e:taxiList)
        {
            System.out.println("Name: "+e.getName());
        }
        
 
    }
 
}
А также на всякий случай создал persistence.xml Но я его так ни к чему не присоеденил.
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="taxiDB" transaction-type="RESOURCE_LOCAL"> 
<!-- comment out to use the default provider  
<provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>-->
 <class>test.Taxi</class>
     <properties>
     <property name="toplink.jdbc.url" value="jdbc:mysql://****:3306/taxi"/>
     <property name="toplink.jdbc.user" value="***"/>
     <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
     <property name="toplink.jdbc.password" value="****"/>
     <property name="toplink.ddl-generation" value="drop-and-create-tables"/>
     </properties>
 </persistence-unit>
 </persistence>
Подскажите, как эту всю штуку заставить работать, чего тут не хватает? DAO сам открывает сессии, или где-то нужно их самому открывать?
Прошу заметить, что Spring я тут сознательно не исспользую.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2012, 14:38
Темы с ответами и решениями для Java EE Как и где правильно открывать метод:

Как правильно открывать файл и записывать/читать из него
Как правильно открывать файл и записывать/читать из него? На разных сайтах и...

Как открывать следующую форму правильно не нарушая принцыпы WPF(MVVM)?
Как открывать следующую форму правильно не нарушая принцыпы WPF(MVVM)? К...

Метод lfind(), как правильно написать метод сравнения?
Всем привет. У меня задача предельно проста. Есть массив char M;, В него...

По двум кликам по гиперссылке открывать диалоговое окно (как в проводнике), где можно указать папку с файлами
Уважаемые форумчане возникла проблема с гиперссылками! В базе данных по...

0
Как и где правильно открывать метод Java EE   Следующее сообщение темы 
Другие темы раздела
Java EE Как правильно отнести One to many http://www.cyberforum.ru/java-j2ee/thread645153.html
Всем привет. Я только начал изучать Hibernate. Возник вопрос, который я не могу понять. Есть один класс, в нем есть экземпляр другого класса. Я хочу их сохранить в sql. Первая проблема. Как быть с...
Java EE Очень странная ошибка. (Spring MVC) @RequestMapping(value = "/voylist", method = RequestMethod.GET) public Object listVoyages(HttpServletRequest request, HttpServletResponse response, ModelMap model) { PersistenceManager pm =... http://www.cyberforum.ru/java-j2ee/thread644272.html
PersistentTokenBasedRememberMeServices Java EE
Необходимо реализовать функцию RememberMe, только не с помощью xml описаний, а через java код, использовать можно все стандартное ничего переопределять не надо, может кто знает как сделать или...
отслеживание изменений Java EE
И вновь день добрый. как отследить, изменилось ли определенное поле в jsp, непосредственно через Controller ?
Java EE ошибка названия в hibernate http://www.cyberforum.ru/java-j2ee/thread642942.html
Доброго времени суток. столкнулся с такой проблемой: есть схема в БД, называется COLLECT... не могу ее вызвать, т.к. "collect" зарезервирована под название функции кусок описания функции: ...
Java EE Eclipse: как запустить проект с ejb и jsf? Есть проект с использованием ejb и jsf. Как его запустить под Eclipse? Сервера: Tomcat и Jboss. Добавлено через 3 часа 48 минут При запуске приложения через сервер Jboss, падает следующая... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru