您的位置:首页 > 其它

Hibernate之hello world

2015-10-13 11:29 477 查看

1. 包含hibernate库

使用maven

<!-- hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.0.1.Final</version>
</dependency>


不使用maven

hibernate官网:http://hibernate.org/orm/,将下载的jar包放到lib目录下。

2. 配置hibernate

class目录下新建配置文件:hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 配置数据源 -->
<property name="connection.url">jdbc:mysql://localhost:3306/yourDatabaseName?characterEncoding=UTF-8</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="show_sql">true</property>
<property name="current_session_context_class">thread</property>
<!-- hibernate启动时自动创建表:将update改为create -->
<property name="hbm2ddl.auto">update</property>

<!-- 需要映射的类 -->
<mapping class="com.yourPackage.ClassA"/>
<mapping class="com.yourPackage.ClassB"/>

</session-factory>
</hibernate-configuration>


3. 使用hibernate

3.1 新建HibernateUtil类

public class HibernateUtil {

private static final SessionFactory sessionFactory;
private static Logger log;

static {
try {
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}

public static SessionFactory getSessionFactory() {
return sessionFactory;
}

}


HibernateUtil类用于获取sessionFactory,之后在代码中就可以这样获取session:

Session session = HibernateUtil.getSessionFactory().getCurrentSession();


3.2 新建java类:User

package com.yourPackage;

// 注解@Entity和@Table表示这是一个实体类,映射到表:tb_user
@Entity
@Table(name = "tb_user")
public class User{
// Column表示将属性映射到表的userName列。属性名和列名相同时,可以省略注解
@Column(name="userName")
private String userName;

@Column(name="password")
private String password;

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}


使用注解的方式,需要在hibernate.cfg.xml中声明映射类:

<hibernate-configuration>
<session-factory>
...
...

<!-- 需要映射的类 -->
<mapping class="com.yourPackage.User"/>
...
</session-factory>
</hibernate-configuration>


3.3 在MySQL中创建相应的表:tb_user



3.4 向表中新增一个用户

User user = new User();
user.setUserName("jack");
user.setPassword("123456");

Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();          // 开启事务
session.persist(user);               // 保存对象
session.getTransaction().commit();
} catch (Exception e) {
session.getTransaction().rollback();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate