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
相关推荐
我的第一个Hibernate 程序,希望帮助大家更好的学习Hibernate。
第一个hibernate程序及解释,增加、删除、显示、更新的代码及解释。适合初学者。
Hibernate 是一个开源的O/R mappimg的框架,基于JDBC...另外还有两个东东,一个是class2hbm,与第一个相反,是根据class来导出映射文件的。还有一个ddl2hbm,是根据数据库来导出表结构,并生成映射文件和POJO class。
hibernate人生中第一个成功及完美程序(适合入门者)
# Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的...
用Eclipse开发第一个Hibernate程序
第一讲 Hibernate概述 第二讲 对象-关系映射基础 第三讲 复杂实体映射 第四讲 关联映射 第五讲 Hibernate查询
数据库文件也打包在压缩文件里面了,因为已经亲自在Myeclipse8.5下调试成功过,所以免去了给位自己慢慢调试的麻烦,适合初学者学习hibernate。使用的版本是目前最新的hibernate,3.6.4
hibernate人生中第一个使用myEclipse 这是跟着hsp 一步步学习的
如果你也是自学,我写的这个程序你可以看下。绝对不会报错的哦,我试过了!!没写注释哈。。对不住了,我都不知道该怎么写,你要是看不懂,给我留言,我好加注释。。要知道我只看了一上午的书哦,菜也没办法!!!...
注:因为资源有点大,所以折分上传,需要把深入浅出hibernate(PDF)第一部分.深入浅出hibernate(PDF)第二部分,深入浅出hibernate(PDF)第三部分全部下载,并解压到一个地方才可以正常解压阅读.给大家带来不便望谅解.
刚学hibernate的注释和级联,第一个程序分享给大家
Hibernate优先应用程序Hibernate第一个应用程序
史上最简单的Hibernate入门程序,使入门者少走弯路。写的很详细,有详细的代码注释,对入门者有很大帮助
《图灵程序设计丛书·Hibernate实战(第2版)》通过一个应用将数百个例子融合起来,不仅深入剖析了Hibernate 3.2和Java Persistence丰富的编程模型。还深刻阐述了数据库设计、ORM和优化等方面的基本原则、策略和最佳...
NULL 博文链接:https://1028826685.iteye.com/blog/1526888
注: 因为此书共20M多,所以分开上传, 需要把深入浅出hibernate(PDF)第一部分.深入浅出hibernate(PDF)第二部分,深入浅出hibernate(PDF)第三部分全部下载,并解压到一个地方才可以正常解压阅读.给大家带来不便望谅解.
这是一个使用Hibernate连接mysql 的入门小程序,,本程序中间包含Hibernate的相关api包以及一个sql脚本语句,祝,大家学习顺利额~
《Hibernate实战(第2版)》通过开发一个将数百个单独示例联系起来的应用程序来探究Hibernate。你将直接深入到Hibernate的富编程模型之中,贯穿映射、查询、抓取策略、事务、会话、缓存以及更多其他内容。书中图文并茂...
NULL 博文链接:https://hellogava.iteye.com/blog/1570427