2011级-csdn-java-张侃— Hibernate原理与应用(一)
2012-12-17 19:50
465 查看
l Hibernate是一个开源ORM框架。
l ORM全称Object Relation Mapping,即对象关系映射。它是一种用来完成对象模型到关系模型的映射技术。
• 就是把应用程序中的对象数据持久化到关系数据库的表的一种技术。
l 使用ORM( ObjectRelation Mapping )框架来解决。主流的ORM框架有JBoss公司的Hibernate、Oracle公司的TopLink、Apache组织的OJB、Sun公司的JDO。
l 简单的说:ORM能利用面向对象的思想开放基于关系型数据库的应用程序,它的主要工作是将对象数据保存到关系数据库的表中,以及将关系数据库表中数据读入到对象中。
安装配置
l 下载地址http://www.hibernate.org,使用3.3版本。
l 解压获取必需类库文件
l 将下载目录/hibernate3.jar和/lib下的hibernate运行时必须的包加入classpath中:
l 配置文件hibernate.cfg.xml和hibernate.properties,XML和properties两种,这两个文件的作用一样,提供一个即可,推荐XML格式,下载目录/etc下是示例配置文件。
可以在配置文件指定:
数据库的URL、用户名、密码、JDBC驱动类、方言等。
启动时Hibernate会在CLASSPATH里找这个配置文件。
l 映射文件(hbm.xml,对象模型和关系模型的映射)。在/eg目录下有完整的hibernate示例。
快速开始小例子
l 步骤:
1.新建java项目,并加入相应的jar包,及jdbc驱动。
2.创建持久化类
3. 准备数据库表
4.创建配置文件hibernate.cfg.xml
5.创建映射文件xxx.hbm.xml
6.创建测试文件
Hibernate.connection.url 表示要链接的数据库地址
Hibernate.connection.driver_class 表示要链接的数据库的驱动类
Hibernate.connection.username 要连接的数据库的用户名
Hibernate.connection.password 要连接的数据库的密码
Hibernate.dialect 表示要使用的数据库的类型
org.hibernate.dialect.MySQL5Dialect mysql数据库
org.hibernate.dialect.Oracle9Dialect oracle数据库
org.hibernate.dialect.SQLServerDialect SQLServer数据库
hibernate.hbm2ddl.auto
validate:加载hibernate时验证创建表结构
update:加载hibernate时自动更新数据库结构,如果表存在不用创建,如果不存在就创建。
create:每一次加载hibernate时都创建表结构
create-drop:加载hibernate时创建,退出时删除
第一个hibernate
hibernate.cfg.xml
User.hbm.xml
User.java
Demo1.java
运行结果如下
控制台输出:
数据库结果:
l ORM全称Object Relation Mapping,即对象关系映射。它是一种用来完成对象模型到关系模型的映射技术。
• 就是把应用程序中的对象数据持久化到关系数据库的表的一种技术。
l 使用ORM( ObjectRelation Mapping )框架来解决。主流的ORM框架有JBoss公司的Hibernate、Oracle公司的TopLink、Apache组织的OJB、Sun公司的JDO。
l 简单的说:ORM能利用面向对象的思想开放基于关系型数据库的应用程序,它的主要工作是将对象数据保存到关系数据库的表中,以及将关系数据库表中数据读入到对象中。
安装配置
l 下载地址http://www.hibernate.org,使用3.3版本。
l 解压获取必需类库文件
l 将下载目录/hibernate3.jar和/lib下的hibernate运行时必须的包加入classpath中:
l 配置文件hibernate.cfg.xml和hibernate.properties,XML和properties两种,这两个文件的作用一样,提供一个即可,推荐XML格式,下载目录/etc下是示例配置文件。
可以在配置文件指定:
数据库的URL、用户名、密码、JDBC驱动类、方言等。
启动时Hibernate会在CLASSPATH里找这个配置文件。
l 映射文件(hbm.xml,对象模型和关系模型的映射)。在/eg目录下有完整的hibernate示例。
快速开始小例子
l 步骤:
1.新建java项目,并加入相应的jar包,及jdbc驱动。
2.创建持久化类
3. 准备数据库表
4.创建配置文件hibernate.cfg.xml
5.创建映射文件xxx.hbm.xml
6.创建测试文件
Hibernate.connection.url 表示要链接的数据库地址
Hibernate.connection.driver_class 表示要链接的数据库的驱动类
Hibernate.connection.username 要连接的数据库的用户名
Hibernate.connection.password 要连接的数据库的密码
Hibernate.dialect 表示要使用的数据库的类型
org.hibernate.dialect.MySQL5Dialect mysql数据库
org.hibernate.dialect.Oracle9Dialect oracle数据库
org.hibernate.dialect.SQLServerDialect SQLServer数据库
hibernate.hbm2ddl.auto
validate:加载hibernate时验证创建表结构
update:加载hibernate时自动更新数据库结构,如果表存在不用创建,如果不存在就创建。
create:每一次加载hibernate时都创建表结构
create-drop:加载hibernate时创建,退出时删除
第一个hibernate
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="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql:///newdb</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <property name="hbm2ddl.auto">update</property> <mapping resource="com/hbsi/domain/User.hbm.xml"/> </session-factory> </hibernate-configuration>
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 package="com.hbsi.domain"> <class name="User" > <id name="id"> <generator class="increment" /> </id> <property name="name" /> <property name="birthday" /> </class> </hibernate-mapping>
User.java
package com.hbsi.domain; import java.util.Date; public class User { private int id; private String name; private Date birthday; 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 Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
Demo1.java
package com.hbsi.demo; import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import com.hbsi.domain.User; public class Demo1 { public static void main(String[] args){ User user=new User(); user.setName("zhangkan"); user.setBirthday(new Date()); Configuration cfg=new Configuration(); cfg.configure(); SessionFactory sessionFactory=cfg.buildSessionFactory(); Session session=sessionFactory.openSession(); session.beginTransaction(); session.save(user); session.getTransaction().commit(); session.close(); } }
运行结果如下
控制台输出:
数据库结果:
相关文章推荐
- 2011级-csdn-java-张侃— Hibernate原理与应用(三)
- 2011级-csdn-java-张侃— Hibernate原理与应用(二)
- 2011级-csdn-java-张侃— Servlet监听器在开发中的应用案例
- 2011级-csdn-java-张侃—Struts2了解
- 2011级-csdn-java-张侃—Spring(1)
- 2011级-csdn-java-张侃— JDBC开发—文件的上传和下载(一)
- 2011级-csdn-java-张侃— JDBC开发—连接池(一)
- 2011级-csdn-java-张侃— JDBC开发—文件的上传和下载(二)
- 2011级-csdn-java-张侃— JavaWEB开发-国际化(一)
- 2011级-csdn-java-张侃— JDBC开发—连接池(二)
- 2011级-csdn-java-张侃—自定义JSP标签(一)
- 2011级-csdn-java-张侃— Servlet事件监听器
- 2011级-csdn-java-张侃— struts2-上传功能
- 2011级-csdn-java-张侃—Spring(2)
- 2011级-csdn-java-张侃—Spring(1)
- 2011级-csdn-java-张侃—JSP标准标签库
- 2011级-csdn-java-张侃— Struts2——HelloWorld
- 2011级-csdn-java-张侃—Spring加载配置web
- 2011级-csdn-java-张侃— struts2的优点
- 2011级-csdn-java-张侃—Spring加载配置web