HibernateTest(测试类):
package club.mochunrong.hibernate.test;
import java.io.PrintStream;
import club.mochunrong.hibernate.bean.User;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
public class HibernateTest
{
public static void main(String[] args)
{
try
{
Configuration configuration = new Configuration()
.configure();
ServiceRegistry serviceRegistry =
new StandardServiceRegistryBuilder().applySettings(configuration.getProperties())
.build();
SessionFactory sf = configuration.buildSessionFactory(serviceRegistry);
System.out.println(sf);
User user = new User();
user.setId(12);
user.setName("moxi");
user.setAge(10);
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
session.save(user);
tx.commit();
session.close();
sf.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
User(持久化类):
package club.mochunrong.hibernate.bean;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity(name="tb_user2")
public class User
implements Serializable
{
@Id
@Column(name="TB_ID")
private int id;
@Column(name="TB_NAME")
private String name;
private int age;
public int getId()
{
return this.id;
}
public void setId(int id)
{
this.id = id;
}
public String getName()
{
return this.name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return this.age;
}
public void setAge(int age)
{
this.age = age;
}
public String toString()
{
return "User [id=" + this.id + ", name=" + this.name + ", age=" + this.age + "]";
}
}
<!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>
<!-- MySQL数据库的配置 -->
<!-- 数据库方法:告诉hibernate是什么数据库 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- 数据库驱动 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 数据库的连接地址 -->
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/haha</property>
<!-- 用户名 -->
<property name="hibernate.connection.username">root</property>
<!-- 密码 -->
<property name="hibernate.connection.password">chunrong</property>
<!-- ### c3p0连接池 ### -->
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.min_size">2</property>
<property name="hibernate.c3p0.timeout">5000</property>
<!-- 因为hibernate的sql语句是自动生成的 ,所有通过此配置来显示自动生成的sql语句输出 -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化输出的sql语句: 看起来更加清楚 -->
<property name="hibernate.format_sql">true</property>
<!-- hibernate的表是自动创建的:
根据持久化类(User Book),自动创建持久化类对象的表
正是因为hibernate的表示根据持久化类自动创建的
所以持久化类才可以与数据库表直接映射。
update : 如果持久化类对应的表不存在就自动创建,如果持久化类对应的表存在就不创建。
-->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 配置持久化类的映射 -->
<mapping class="club.mochunrong.hibernate.bean.User" />
</session-factory>
</hibernate-configuration>
导包图:
——————————————————————————————————————————————
测试类中要注意了:
Configuration configuration = new Configuration()
.configure();
ServiceRegistry serviceRegistry =
new StandardServiceRegistryBuilder().applySettings(configuration.getProperties())
.build();
SessionFactory sf = configuration.buildSessionFactory(serviceRegistry);
以上的语句不适合新版本的Hibernate
以上用的版本是“hibernate-release-4.3.11.Final”目前我只知道适合这个版本,其他版本还没有试。
如果用太高的Hibernate版本,这些语句,在myelicpse里面就会报错,曾我试过换数据库,改数据库ini里面的驱动格式,还有配置文件里面的修修改改,搞了差不多三天,也查了三天的资料,原来我弄的版本不一样,我对着视频跟着老师弄,老师却很顺的用Hibernate自动建立了表,而我,在官网下载最新版本,照样按照他的代码逐个逐个的敲,却错误!那么我就开始找原因了,知道今天我才知道,【有一些版本高的Hibernate的包,有新的技术用新的aip,以前的不适合罢了。】
也好,因为这个问题,让我遇见了CSDN!
hibernate-release-4.3.11.Finals下载地址:
链接:http://pan.baidu.com/s/1qZ0IVxi 密码:x489