Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > preparedStatement


Автор: seth 8.12.2006, 18:28
Нельзя ли при создании preparedStatement вместо ? использовать какие то осмысленные имена?

Автор: shimopus 8.12.2006, 19:00
Нет

Автор: seth 11.12.2006, 15:23
Очень неудобны такие preparedStatement - ведь если изменить запрос - то и необходимо менять саму передачу параметров... smile

Автор: tux 11.12.2006, 15:24
Цитата(seth @  11.12.2006,  15:23 Найти цитируемый пост)
Очень неудобны такие preparedStatement - ведь если изменить запрос - то и необходимо менять саму передачу параметров... smile 

Других нет. Используй Hibernate, там можно осмысленные имена передавать.

Автор: seth 11.12.2006, 18:03
Цитата(tux @ 11.12.2006,  15:24)
Цитата(seth @  11.12.2006,  15:23 Найти цитируемый пост)
Очень неудобны такие preparedStatement - ведь если изменить запрос - то и необходимо менять саму передачу параметров... smile 

Других нет. Используй Hibernate, там можно осмысленные имена передавать.

Как раз я тут посмотрел - а хибернейт это таки то что надо... smile

Автор: seth 13.12.2006, 16:34
А можно ли работающий примерчик - как выполнить обычный запрос в хибернейте?

Автор: zera 13.12.2006, 18:32
хм. а насколько работающим должени быть пример? в виде war-файла? smile
Код
public Object getUnique(Class clazz, String property, Object value) {
        final Criteria c = sessionFactory.getCurrentSession()
            .createCriteria(clazz)
            .add (Expression.eq (property, value));
        return c.uniqueResult ();
    }
 вот пример выбора одной записи по проперти равному value.

Автор: seth 13.12.2006, 18:44
Что то типо такого:
Код

public class HibernateTest {
    public static void main(String[] argv) throws Exception {
        SessionFactory sf = new Configuration().configure().buildSessionFactory();
        Session session = sf.openSession();
        Query q = session.createSQLQuery("select * from event");
        List l=q.list();
        Iterator i=l.iterator();
        while (i.hasNext()) {
            System.out.println(i.next());
        }
        sf.close();
    }
}


конфиг:
Код

<?xml version='1.0' encoding='utf-8'?>
<hibernate-configuration>
   <session-factory>
      <property name="connection.driver_class">com.sybase.jdbc3.jdbc.SybDriver</property>
      <property name="connection.url">jdbc:sybase:Tds:localhost:2638</property>
      <property name="connection.username">dba</property>
      <property name="connection.password">sql</property>
      <property name="show_sql">true</property>
      <property name="dialect">org.hibernate.dialect.SybaseAnywhereDialect</property>
      <property name="transaction.factory_class">net.sf.hibernate.transaction.JDBCTransactionFactory</property>
      <mapping resource="hibernate.hbm.xml"/>
   </session-factory>
</hibernate-configuration>

маппинг даже не знаю что писать....

Автор: KostenkoSergey 15.12.2006, 18:38
так по-моему ж  в jdbc3   предусмотрено именование параметров.

Автор: seth 17.12.2006, 21:35
Цитата(KostenkoSergey @ 15.12.2006,  18:38)
так по-моему ж  в jdbc3   предусмотрено именование параметров.

Мне нужно выполнять запросы к нескольким субд а в jdbc3 там помоему для каждой субд свой preparedStatement

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