Mysql veritabanım var hibernate ile inser işlemi çok uzun sürüyor.

hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>
    <property name="hibernate.connection.CharSet">utf8</property>
    <property name="hibernate.connection.characterEncoding">utf8</property>
    <property name="hibernate.connection.useUnicode">true</property>

        <!-- Veritabanı baglanti bilgileri -->
        <!-- Veritabanı jdbc -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <!--Veritabanımız için bağlantı yolunu vereceğiz  -->
        <property name="connection.url">jdbc:mysql://</property>
         <!-- Veritabanı kullanıcı adı -->
        <property name="connection.username"></property>
         <!-- Kullanıcı parolamız -->
        <property name="connection.password"></property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

        <property name="show_sql">true</property>

        <property name="hbm2ddl.auto">update</property>

         <!-- Burası ise veritabanımıza haritalanacak olan personel sınıfımızın yolu -->
        <mapping class="com.mesutpiskin.modal.Product"/>

    </session-factory>

</hibernate-configuration>

veri ekleme yöntemim

public void InsertProduct(Product product) {

        @SuppressWarnings("deprecation")
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        session.save(product);
        session.getTransaction().commit();
        session.close();
        sessionFactory.close();

    }

Sizce sorun neyden kaynaklanıyor,veritabanında mı ekleme yöntemim demi yoksa hibernate config dosyasında mı yanlış birşeyler var.

soruldu: 09 Ağu '15, 17:54

meSutPiskin's gravatar image

meSutPiskin
3206611
cevap kabul oranı: 23%


Hibernate SessionFactory new Configuration().configure().buildSessionFactory() deprecated! Aslinda direk Hibernate Session yerine JPA kullanmaniz daha mantikli. Boylece EntityManagerFactory ve EntityManager kullanarak daha Hibernate'i daha optimal kullanabilirsiniz.

EntityManagerFactory (JPA'da) veya SessionFactory (Hibernate'de) olustururken her seferinde new yapmaniz yavaslatir, gerekli oldugunda bir kez Factory olusturup, o Factory ile bircok Session kullanabilirsiniz. Sadece ilgili Session'lari islem bittikten sonra kapatmalisiniz.

JPA ve Hibernate ile CRUD islemleri icin burdaki örnek demoya bakabilirsiniz.

permanent link

cevaplandı: 11 Ağu '15, 04:55

CemIkta's gravatar image

CemIkta ♦
19.9k29125190
cevap kabul oranı: 36%

1

Teşekkür ederim,dediğiniz gibi sürekli instance almak yerine constructor da oluşturdum,veri ekleme süresi 8694ms den 954ms ye düştü.

(11 Ağu '15, 09:15) meSutPiskin meSutPiskin's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×109

Soruldu: 09 Ağu '15, 17:54

Görüntüleme: 527 kez

Son güncelleme: 11 Ağu '15, 09:15

powered by BitNami OSQA