Hibernate学习的第一个例子

这是本人学习Hibernate的第一个例子:

1,先配置数据库驱动,点击myeclipse的myeclipse Database Explore,选择相应的数据库,进行配置,完成之后退出。

2,给项目添加支持Hibernate的功能,使用到的jar包有如下的:

技术分享

 

进行了一系列的选项之后,到sessionfactory这一项,不选。然后点击完成。

3,配置表到java类的映射。点击右上方的myeclipse中的myeclipse database expore视图,选择数据驱动,选中要操作的表,然后右击,选择Hibernate reverse engineering,选择实体类所在的包,点Next,接着点击完成即可,这样就完成了表到java类中的对应映射关系。

4,编写POJO,封装数据库中的表。

package com.entity;

import java.util.Date;

//封装类
public class User {
public String id;
public String name;
public String password;
public Date createTime;// 创建日期
public Date expireTime;// 到期日期

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPassword() {
return password;
}

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

public Date getCreateTime() {
return createTime;
}

public void setCreateTime(Date createTime) {
this.createTime = createTime;
}

public Date getExpireTime() {
return expireTime;
}

public void setExpireTime(Date expireTime) {
this.expireTime = expireTime;
}

}

5,编写DAO,

(1)获得配置文件 

(2)建立sessionfactory

(3)从sessionfactory中获得打开session,一个session对应数据库一条记录

(4)开启session的事务

(5)执行数据库操作,

(6)提交事务,

(7)之前的最好是使用try catch,这样,如果有异常的话,这里可以进行事务的回滚

(8)关闭事务。

package com.test;

import java.util.Date;

import org.hibernate.cfg.Configuration;
import org.hibernate.SessionFactory;
import org.hibernate.Session;

import com.entity.User;

public class Test {
public static void main(String[] args) {
// 读取hibernate.cnf.xml配置文件,获得数据库的相关配置
Configuration cfg = new Configuration().configure();
// 创建sessionfactory,在配置文件里面创建获得sessionfactory
SessionFactory sfactory = cfg.buildSessionFactory();
// 在sessionfactory中取出session,即打开事务
Session session = null;
try {
for (int i = 0; i < 10000; i++) {
session = sfactory.openSession();
// 开启事物
session.beginTransaction();
// 通过user.hb.xml文件,把数据库的表抽象成为java的类,方便使用对象编程
// 通过封装的类中的属性来操作数据库中表中的字段
User user = new User();
// 通过setter方法来设置user类中的属性的值,这样就间接操作了数据库中的表的字段
user.setId("001" + i);
user.setName("xywei" + i);
user.setPassword("1234" + i);
user.setCreateTime(new Date());
user.setExpireTime(new Date());

// 通过保存user对象的方法相当于插入一条记录到数据库里面
session.save(user);
// 提交事务
session.getTransaction().commit();
}

} catch (Exception e) {
e.printStackTrace();
// 回滚事务
session.getTransaction().rollback();

} finally {
if (session != null) {
if (session.isOpen()) {
// 关闭事务
session.close();
System.out.println("====事务已经关闭!====");
}
}
}

}

}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。