Java EE入门教程系列第六章Hibernate框架(三)——第一个Hibernate项目

6.3 创建一个Hibernate项目

6.3.1 Hibernate项目开发的一般步骤

1)新建Java工程

2)导入MySQL数据库的JDBC驱动

3)导入Hibernate库

4)新建POJO文件

5)创建POJO文件对应的数据库及表

6)新建Hibernate配置文件hibernate.cfg.xml

7)新建Hibernate映射向导(就是选择数据库和数据表)文件hibernate.hbm.xml

8)编写main()函数,通过Hibernate配置文件和映射文件对POJO类进行持久化处理,将对该类的操作永久地保存到MySQL数据库中

6.3.2 项目实例(注意:根据数据库版本和hibernate版本的不同,配置、java语句也有所不同,最好根据自己的版本去找资料)

首先介绍一下如何在eclipse配置hibernate环境:

打开eclipse,点击help-->eclipse marketplace,如图输入:Hibernate 搜索,找到JBoss Tools

点击install安装

选择Hibernate Tools,点击Confrm安装。安装完成后重启eclipse,项目右键->new->other,如果有Hibernate Configuration File则说明配置成功。

接着先去官网下载需要的jar包:http://hibernate.org/orm/

点击releases-overview,选择右上角latest版本,选择需要的版本,点击download等待几秒后就开始下载了

 

下面按照之前说的步骤进行:

1)新建一个Java应用程序项目,命名H1。file-new-project-java-java project

2)添加mysql驱动程序。右击项目-build path-configure build path-add external jars找到你自己电脑里的数据库jar包加入

3)添加hibernate库。右键项目-build path-add libraries-user libraries-new-随便填写一个名字(我填的是hibernate)-add external jars将解压完的各个文件夹jar包都加入进来

导入后结构为:

4)创建实体类User1。在项目H1中新建java类文件,命名为User1.java。

import java.util.Date;
public class User1 {
	private int id;
	private String username;
	private String password;
	private Date createTime;
	private Date expireTime;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	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;
	}
	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)创建数据库及表。首先创建数据库studb,接着在此数据库中创建表user1,表结构中的每个字段应与User1类中定义的成员变量一一对应,数据类型也应该是对应的,如下图(数据库的下载、建表不再介绍):

6)新建hibernate配置文件。先新建包h1(下图是没有新建包的情况,后面觉得还是放在包里比较好),然后项目src右键-new-other-找到下图

注意:这一步版本不能选择最新的,否则点击finish会出现没有响应无法创建的情况!!!

<?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">java</property>
  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/studb</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  <mapping resource="User1.hbm.xml"/>
 </session-factory>
</hibernate-configuration>

7)新建hibernate映射向导(就是选择数据库和数据表)

可以找到项目工作空间,找到该xml文件,用记事本打开查看或者修改,由此文件可以看出类和表的映射关系

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2018-12-3 8:58:57 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="h1.User1" table="user1">
        <id name="id" type="int">
            <column name="id" />
            <generator class="increment" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="username" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" />
        </property>
        <property name="createTime" type="java.util.Date">
            <column name="createTime" />
        </property>
        <property name="expireTime" type="java.util.Date">
            <column name="expireTime" />
        </property>
    </class>
</hibernate-mapping>

 8)编写main()函数H1.java

import java.util.Date;

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

public class H1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
 try {
	 SessionFactory sf=new Configuration().configure().buildSessionFactory();
	 Session session=sf.openSession();
	 Transaction tx=session.beginTransaction();
	 for(int i=0;i<5;i++) {
		 User1 u1=new User1();
		 u1.setUsername("user"+i);
		 u1.setPassword("java");
		 u1.setCreateTime(new Date());
		 u1.setExpireTime(new Date());
		 session.save(u1);//将User1对象逐个保存到session中
		 
	 }
	 tx.commit();//提交事务,将User1对象永久化保存到数据库中
	 session.close();
 }catch(HibernateException e) {
	 e.printStackTrace();
 }
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值