新秀学习Hibernate——一个简单的例子

新秀学习Hibernate——一个简单的例子

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

一个、Hibernate开发。

上篇博客已经为大家介绍了持久层框架的发展流程,持久层框架的种类。

为了可以使用Hibernate高速上手,我们先解说一个简单的Hibernate应用实例hibernate_first

二、开发流程。

1.首先在MyEclipce中新建一个hibernate_first的项目,然后新建后的项目文件夹为:

新秀学习Hibernate——一个简单的例子

2.配置Hibernate环境。

3.编写持久化类User.java

package com.bjpowernode.hibernate;

import java.util.Date;

public class User {

	private String id;
	
	private String name;
	
	private String password;
	
	private Date createTime;
	
	private 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;
	}
}

4.编写生成映射文件User.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">
<hibernate-mapping>
	<class name="com.bjpowernode.hibernate.User">
		<id name="id">
			<generator class="uuid"/>
		</id>
		<property name="name"/>
		<property name="password"/>
		<property name="createTime"/>
		<property name="expireTime"/>
	</class>
</hibernate-mapping>

5.编写hibernate.cfg.xml文件。

<!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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_frist</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
	<mapping resource="com/bjpowernode/hibernate/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

6.生成表的类ExportDB.java。

package com.bjpowernode.hibernate;

import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

/**
 * 将hbm生成ddl
 * @author Administrator
 *
 */
public class ExportDB {

	public static void main(String[] args) {
		
		//默认读取hibernate.cfg.xml文件
		Configuration cfg = new Configuration().configure();
		
		SchemaExport export = new SchemaExport(cfg);
		export.create(true, true);
	}
}

7.以上六个步骤已经把表建起来了以下我们就保存个数据。新建一个Client.java类来存入一个数据。

代码例如以下:

package com.bjpowernode.hibernate;

import java.util.Date;

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

public class Client {

	public static void main(String[] args) {
		
		//读取hibernate.cfg.xml文件
		Configuration cfg = new Configuration().configure();
		
		//建立SessionFactory
		SessionFactory factory = cfg.buildSessionFactory();
		
		//取得session
		Session session = null;
		try {
			session = factory.openSession();
			//开启事务
			session.beginTransaction();
			User user = new User();
			user.setName("张三");
			user.setPassword("123");
			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
					session.close();
				}
			}
		}
	}
}


三、总结。

一个简单的Hibernate样例就出来了在Hibernate初学时利用这个样例能够让我们更好的入门。



版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117235.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月8日 下午8:00
下一篇 2022年1月8日 下午8:00


相关推荐

  • 二维数组转稀疏数组,稀疏数组存读入磁盘

    二维数组转稀疏数组,稀疏数组存读入磁盘稀疏数组当一个数组中大部分元素为 0 或者为同一个值得情况时 可以使用稀疏数组来保存该数组 稀疏数组的预览图一如此图 可看成一个二维数组 arr 11 11 其中绝大部分元素均为 0 其中非 0 的元素有三个 他们储存在二维数组的中的位置分别为 arr 1 4 arr 2 1 arr 3 4 将其保存到稀疏数组 sparesArr 如图二其中 row 代表行 col 代表列 vaule 代表元素的值图二中的第一行数字分别代表着原二维数组的行数为

    2026年3月17日
    1
  • 【Java基础】– instanceof 用法详解

    【Java基础】– instanceof 用法详解1 instanceof 关键字如果你之前一直没有怎么仔细了解过 instanceof 关键字 现在就来了解一下 instanceof 其实是 java 的一个二元操作符 和 lt gt 这些是类似的 同时它也是被保留的关键字 主要的作用 是为了测试左边的对象 是不是右边的类的实例 返回的是 boolean 值 AinstanceofB 注意 A 是实例 而 B 则是 Class 类下面使用代码测试一下 classA interfaceInt classBextend

    2026年3月17日
    1
  • Swoole来实现实时异步任务队列

    Swoole来实现实时异步任务队列

    2022年2月10日
    40
  • 7个免费的Linux FTP客户端工具[通俗易懂]

    7个免费的Linux FTP客户端工具[通俗易懂]在Dropbox、YouSendIt、idrive以及许多这样云存储和共享工具的帮助下,我们在互联网上发送和共享大型文件变得容易起来。所有这些网站都可以帮助你在互联网上传…

    2022年6月2日
    39
  • Java并发编程实战_Java并发编程实战

    Java并发编程实战_Java并发编程实战并发编程基础概念 原子性 多个线程一起执行的时候 一个操作开始就不会受到其他的影响 可见性 当一个线程修改了某一个共享变量的值 其他线程能否知道这个修改 有序性 在并发时 可能会进行指令重排 导致程序执行顺序发生改变 核心的问题 性能的提升 CPU 内存 I O 设备的存在严重的速度差异 根据木桶理论 程序的整体性能取决于最慢的操作 I O 为了性能的提升 计算机体系结构 操作系统

    2026年3月18日
    2
  • JavaSript模块规范 – AMD规范与CMD规范介绍(转)

    JavaSript模块规范 – AMD规范与CMD规范介绍(转)

    2022年2月23日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号