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

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

05.09.2012, 14:38. Просмотров 1547. Ответов 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

Как правильно открывать и читать файлы?
Здравствуйте, не пойму из-за чего начала вылетать следующая ошибка при вызове...

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

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

0
Другие темы раздела
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