hibhernate and Mysql connection


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.java

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>

一切正常,但是数据没有存储在数据库中,我不明白什么问题!

您创建User实体,但是您不告诉持久性提供商实际管理它并最终将其物理存储在数据库中:

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

另外,您可以使用save方法。

创建新实体是这种情况。如果要更新在同一交易中查询的现有实体,则无需明确调用updatemerge操作,因为持久性提供者会在交易中隐含地为您执行此操作。

最新更新