Eclipse neon+hibernate5创建小例子

本文介绍了如何使用Eclipse和Hibernate5搭建一个简单的Java项目。从项目的创建到配置数据库连接,再到实现基本的数据持久化操作都有详细的步骤说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天抽个时间写个关于用Eclipse none和hibernate创建一个hibernate的小例子

一、新建一个Java项目

二、手动添加src和test文件夹,然后java build path ,手动添加hibernate和mysql的相关jar包,并引入junit4的相关支持

此处没有添加lib目录

三、此时的相关目录结构为


注意   此处我引用的是hibernate5.1.0,

四、创建相应的目录,此处不做深处介绍,目录为下:



五、相应的代码:


Stu.java



public class Stu {
private int id;
private String name;
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 Stu(int id, String name) {
super();
this.id = id;
this.name = name;
}
public Stu() {
super();
}
@Override
public String toString() {
return "Stu [id=" + id + ", name=" + name + "]";
}


}

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="connection.username">root</property>
    <property name="connection.password">xq1996621</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql:///testhibernate1?useUnicode=true&amp;characterEncoding=UTF-8</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
   
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="hbm2ddl.auto">create</property>
   
   
    <mapping resource="Stu.hbm.xml"/>
    
    </session-factory>
</hibernate-configuration>


Stu.hbm.xml

<?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 Oct 24, 2016 3:56:46 PM by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="Stu" table="STU">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="assigned" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
    </class>
</hibernate-mapping>


stutest1.java


import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;






/*
 * 
 * 在使用hibernate5版本时  出现logging包重复的现象  导致测试出现错误  删除jboss-logging-3.1.0.GA即可正常运行
 * 
 * 
 * 
 */




public class stutest1 {


@Test
public void save(){
SessionFactory seFactory = null;
        final StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure().build();
         try{
             seFactory = new MetadataSources( registry ).buildMetadata()
                       .buildSessionFactory();
       } catch(Exception e){
            StandardServiceRegistryBuilder.destroy( registry );
        }
        
        
        //2.创建一个Session对象
        
       Session session = seFactory.openSession();
        
      //3.开启事务
       session.beginTransaction();
        //4.执行操作
       
      session.save(new Stu(1,"ssss"));
       
        /*
        //!!!!写hql语句,from 类名(区分大小写)
        String hql = "from UserInfo";
        @SuppressWarnings("unchecked")
        List<UserInfo> list = session.createQuery(hql).list();
        for(UserInfo u : list){
            System.out.println(u);
        }
        */
        //5.提交事务
       session.getTransaction().commit();
        //6.关闭Session
        session.close();
       //7.关闭SessionFactory
       seFactory.close();
}

}


我在运行中也出现了错误,首先sessionFactory在hibernate5后就改了,要用上面的方法才能正确的获得sessionFactory

其次,在直接引入hibernate5的required包的的全部jar时,会出现jar包重复错误,此时按照上面的注释方法可以解决



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值