`
什么世道
  • 浏览: 219436 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Hibernate的第一个程序

阅读更多

    Hibernate 是一个开放源代码的对象关系映射(Obeject/Relation Mapping)框架 ,它对JDBC进行了非常轻量级的对象封装。支持现大部分常用的关系型数据库,使得对数据库表的CRUD操作变为OOP的操作。这样在开发效率和可拓展性上方便不少。

    环境准备:官网Hibernate 下载Hibernate ORM 在工程上搭载好核心jar包。

    资源: hibernatezh_CN 、  hibernate annotation references

 

Hibernate 有2方式来实现O/R Mapping,一种是xml(Hibernate风格)方式,另一种是Annotation(实现JPA)方式

 

以下内容可以参考Hibernate官网提供的Example

 

xml方式:

 建立domain类

 

 

package com.yk.domain;

import javax.persistence.Entity;
import javax.persistence.Id;

/**
 * domain user类
 * 
 * @author YangKang
 * 
 */ 
public class User {

	private int id;

	private String name;

	private String password;

	private String date;
 
	 
	public int getId() {
		return id;
	}

	public void setId(int 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 String getDate() {
		return date;
	}

	public void setDate(String date) {
		this.date = date;
	}
}

 

建立User映射文件 User.hbm.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">
<hibernate-mapping>
	<!-- 指定要持久化的类com.feytuo.education.domain.UserBean 与定义的数据库 表edu_user的对应关系 -->
	<class name="com.yk.domain.User" table="user">
		<id name="id" type="java.lang.Integer" column="id">
			<generator class="identity" />
		</id>
		<property name="name" type="java.lang.String"></property>
		<property name="password" type="java.lang.String"></property>
		<property name="date" type="java.lang.String"></property>
	</class> 
</hibernate-mapping>

 

将映射文件加入到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>
		<!-- 连接mySql数据库的驱动 -->
		<property name="hibernate.connection.driver_class">
			com.mysql.jdbc.Driver
		</property>
		<!-- 连接MySql数据库 -->
		<property name="hibernate.connection.url">
			jdbc:mysql://localhost:3306/test
		</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">qwertyuiopasdfghjkl</property>
		<!-- 设置dialect -->
		<property name="hibernate.dialect">
			org.hibernate.dialect.MySQLDialect
		</property>
		<!--数据库连接池的大小 -->
		<property name="hibernate.connection.pool.size">1</property>
		<!--是否在后台显示Hibernate用到的SQL语句,开发时设置为true -->
		<property name="hibernate.show_sql">true</property>
		<property name="hbm2ddl.auto">update</property>

		<!-- xml方式 -->
		<mapping resource="com/yk/domain/User.hbm.xml" />
		
		<!-- annotation 方式 -->
		<!-- <mapping class="com/yk/domain/User.java" />  -->

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

 

Annotation 方式:

 建立domain类引入JPA(Java Persistence API) annotation

package com.yk.domain;

import javax.persistence.Entity;
import javax.persistence.Id;

/**
 * domain user类
 * 
 * @author YangKang
 * 
 */
@Entity
public class User {

	private int id;

	private String name;

	private String password;

	private String date;
 
	@Id
	public int getId() {
		return id;
	}

	public void setId(int 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 String getDate() {
		return date;
	}

	public void setDate(String date) {
		this.date = date;
	}
}

 

在此不必再写映射的xml文件了,因为Entity替你完成映射了,默认数据库字段与属性名相同。

 但加入到hibernate.cfg.xml里的不是xml文件了,而是domain的CLASS

以上为例,<mapping class="com/yk/domain/User.java" />

 

CRUD测试(以添加数据为例)

package com.yk.dao;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

import com.yk.domain.User;

public class UserDAO { 
	public static void main(String args[]) {
		// 第一步:读取Hibernate的配置文件 hibernamte.cfg.xml文件
		Configuration config = new Configuration().configure();
		// 第二步:创建服务注册构建器对象,通过配置对象中加载所有的配置信息
		StandardServiceRegistryBuilder regbulider = new StandardServiceRegistryBuilder()
				.applySettings(config.getProperties());
		// 创建注册服务
		ServiceRegistry sry = regbulider.build();
		// 第三步:创建会话工厂
		SessionFactory factory = config.buildSessionFactory(sry);

		// 取得session
		Session session = null;
		try {
			session = factory.openSession();

			session.beginTransaction();
			User user = new User();
			user.setId(1);
			user.setName("张三");
			user.setPassword("123");
			user.setDate("20131014");
			// 保存User对象
			session.save(user);

			// 提交事务
			session.getTransaction().commit();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 先从创建一个会话(Session),之后就可以对Session 进行save,update,delete,load,get等操作。

 

我发现在之前的博客上,伙伴们对附在在CSDN的下载资源挺感兴趣的,附上下载地址

http://download.csdn.net/detail/u011458382/7411443

 

1
1
分享到:
评论

相关推荐

    我的第一个Hibernate 程序

    我的第一个Hibernate 程序,希望帮助大家更好的学习Hibernate。

    第一个hibernate程序及解释

    第一个hibernate程序及解释,增加、删除、显示、更新的代码及解释。适合初学者。

    Hibernate实践例子程序

    Hibernate 是一个开源的O/R mappimg的框架,基于JDBC...另外还有两个东东,一个是class2hbm,与第一个相反,是根据class来导出映射文件的。还有一个ddl2hbm,是根据数据库来导出表结构,并生成映射文件和POJO class。

    hibernate人生中第一个成功及完美程序(适合入门者)

    hibernate人生中第一个成功及完美程序(适合入门者)

    我的第一个hibernate例子

    # Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的...

    Eclipse开发第一个Hibernate

    用Eclipse开发第一个Hibernate程序

    hibernate程序设计

    第一讲 Hibernate概述 第二讲 对象-关系映射基础 第三讲 复杂实体映射 第四讲 关联映射 第五讲 Hibernate查询

    第一个hibernate程序

    数据库文件也打包在压缩文件里面了,因为已经亲自在Myeclipse8.5下调试成功过,所以免去了给位自己慢慢调试的麻烦,适合初学者学习hibernate。使用的版本是目前最新的hibernate,3.6.4

    hibernate人生中第一个使用myEclipse成功及完美程序(适合入门者)

    hibernate人生中第一个使用myEclipse 这是跟着hsp 一步步学习的

    我模仿的第一个Hibernate程序

    如果你也是自学,我写的这个程序你可以看下。绝对不会报错的哦,我试过了!!没写注释哈。。对不住了,我都不知道该怎么写,你要是看不懂,给我留言,我好加注释。。要知道我只看了一上午的书哦,菜也没办法!!!...

    深入浅出Hibernate(PDF)第一部分

    注:因为资源有点大,所以折分上传,需要把深入浅出hibernate(PDF)第一部分.深入浅出hibernate(PDF)第二部分,深入浅出hibernate(PDF)第三部分全部下载,并解压到一个地方才可以正常解压阅读.给大家带来不便望谅解.

    hibernate注释源程序

    刚学hibernate的注释和级联,第一个程序分享给大家

    hibernate-first-application:Hibernate第一个应用程序

    Hibernate优先应用程序Hibernate第一个应用程序

    第一个Hibernate程序(有注释)

    史上最简单的Hibernate入门程序,使入门者少走弯路。写的很详细,有详细的代码注释,对入门者有很大帮助

    Hibernate实战第二版

    《图灵程序设计丛书·Hibernate实战(第2版)》通过一个应用将数百个例子融合起来,不仅深入剖析了Hibernate 3.2和Java Persistence丰富的编程模型。还深刻阐述了数据库设计、ORM和优化等方面的基本原则、策略和最佳...

    hibernate环境搭建及第一程序

    NULL 博文链接:https://1028826685.iteye.com/blog/1526888

    深入浅出Hibernate(PDF)第二部分

    注: 因为此书共20M多,所以分开上传, 需要把深入浅出hibernate(PDF)第一部分.深入浅出hibernate(PDF)第二部分,深入浅出hibernate(PDF)第三部分全部下载,并解压到一个地方才可以正常解压阅读.给大家带来不便望谅解.

    使用Hibernate连接MySql的入门小程序

    这是一个使用Hibernate连接mysql 的入门小程序,,本程序中间包含Hibernate的相关api包以及一个sql脚本语句,祝,大家学习顺利额~

    Hibernate实战(第2版)高清

    《Hibernate实战(第2版)》通过开发一个将数百个单独示例联系起来的应用程序来探究Hibernate。你将直接深入到Hibernate的富编程模型之中,贯穿映射、查询、抓取策略、事务、会话、缓存以及更多其他内容。书中图文并茂...

    第一个Hibernate小程序

    NULL 博文链接:https://hellogava.iteye.com/blog/1570427

Global site tag (gtag.js) - Google Analytics