2017-05-01 22 views
1
package com.simpleprogrammer; 

import org.hibernate.Session; 

public class Program { 

    public static void main(String[] args) { 
     System.out.println("HEY"); 
     Session session = HibernateUtilities.getSessionFactory().openSession(); 
     session.beginTransaction(); 

     User user = new User(); 
     user.setName("pallavi"); 
     user.setGoal(100); 

     session.getTransaction().commit(); 
     session.close(); 
     HibernateUtilities.getSessionFactory().close(); 
    } 

User.javahibhernateとMySQL接続

package com.simpleprogrammer; 

public class User { 
    private int id; 
    private String name; 
    private int total; 
    private int goal; 
    public int getId() { 
     return id; 
    } 
    public void setId(int id) { 
     this.id = id; 
    } 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public int getTotal() { 
     return total; 
    } 
    public void setTotal(int total) { 
     this.total = total; 
    } 
    public int getGoal() { 
     return goal; 
    } 
    public void setGoal(int goal) { 
     this.goal = goal; 
    } 

} 

HibernateUtilities.java

package com.simpleprogrammer; 

import org.hibernate.HibernateException; 
import org.hibernate.SessionFactory; 
import org.hibernate.boot.registry.StandardServiceRegistry; 
import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 
import org.hibernate.cfg.Configuration; 


public class HibernateUtilities { 

    private static SessionFactory sessionFactory; 
    private static StandardServiceRegistry serviceRegistry; 

    static{ 

     try{ 
      Configuration configuration = new Configuration().configure(); 
      serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); 
      sessionFactory = configuration.buildSessionFactory(serviceRegistry); 

     } 
     catch(HibernateException exception){ 
      System.out.println("Problem creating session factory"); 
      exception.printStackTrace(); 

     } 
    } 

    public static SessionFactory getSessionFactory() { 
     return sessionFactory; 
    } 


    /* 
    public static void setSessionFactory(SessionFactory sessionFactory) { 
     HibernateUtilities.sessionFactory = sessionFactory; 
    } */ 


} 

にHibernate設定ファイル:---------------- -

<?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.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.password">root</property> 
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306</property> 
    <property name="hibernate.connection.username">root</property> 
    <property name="hibernate.default_schema">protein_tracker</property> 
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
    <property name="hibernate.show_sql">true</property> 
    <property name="hibernate.generate_statistics">false</property> 
    <mapping resource="com/simpleprogrammer/User.hbm.xml"/> 
</session-factory> 
</hibernate-configuration> 

ユーザーマッピングファイル-----------------------

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<!-- Generated 1 May, 2017 12:09:45 PM by Hibernate Tools 3.5.0.Final --> 
<hibernate-mapping> 
    <class name="com.simpleprogrammer.User" table="USERS"> 
     <id name="id" type="int"> 
      <column name="ID" /> 
      <generator class="identity" /> 
     </id> 
     <property name="name" type="java.lang.String"> 
      <column name="NAME" /> 
     </property> 
     <property name="total" type="int"> 
      <column name="TOTAL" /> 
     </property> 
     <property name="goal" type="int"> 
      <column name="GOAL" /> 
     </property> 
    </class> 
</hibernate-mapping> 

すべてはうまくいっていますが、データはデータベースに格納されていませんが、何が間違っているのか分かりません。

答えて

1

あなたはUserエンティティを作成しますが、実際にそれを管理するために、持続性プロバイダを伝え、最終的には物理的にデータベースに格納しないでください:

User user = new User(); 
    user.setName("pallavi"); 
    user.setGoal(100); 

    session.persist(user); 

別の方法としては、saveメソッドを使用することができます。

これは、新しいエンティティを作成する場合です。同じトランザクション内で照会する既存のエンティティを更新する場合は、永続性プロバイダが暗黙的にトランザクションコミットを行うため、updateまたはmergeオペレーションを明示的に呼び出す必要はありません。