Hibernate 总结(一):HelloWorld
来源:互联网 发布:手机摇一摇软件 编辑:程序博客网 时间:2024/05/21 16:21
1. ORM:ORM(Object/Relation Mapping): 对象/关系映射(理解)
1). ORM 主要解决对象-关系的映射
2). 配置 hibernate 的配置文件:hibernate.cfg.xml
①. 利用 hibernate 插件生成 hibernate.cfg.xml
②. 编辑 hibernate.cfg.xml 文件
<!-- 配置 hibernate 的一些基本属性 -->
<!-- 创建数据表的策略 -->
<property name="hbm2ddl.auto">update</property>
<!-- 是否打印 SQL -->
<property name="show_sql">true</property>
<!-- 是否格式化 SQL -->
<property name="format_sql">true</property>
1). ORM 主要解决对象-关系的映射
2).ORM的思想:将关系数据库中表中的记录映射成为对象,以对象的形式展现,程序员可以把对数据库的操作转化为对对象的操作。
2. ORM 架构图:ORM 框架在开发中是一个什么样的地位(了解)
3. Hibernate 的 helloworld
1). 加入 jar 包:加入到当前项目的 classpath 下
hibernate-release-4.2.4.Final\lib\required\*.jarMySQL 的驱动
2). 配置 hibernate 的配置文件:hibernate.cfg.xml
①. 利用 hibernate 插件生成 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></session-factory></hibernate-configuration>
②. 编辑 hibernate.cfg.xml 文件
I. 加入链接数据库的基本信息:
<!-- 配置连接数据库的基本信息 --><property name="connection.driver_class" >com.mysql.jdbc.Driver</ property><property name="connection.username">root </property><property name="connection.password">mysql </property><property name="connection.url" >jdbc:mysql:///hibernate4</ property>
II. 配置 Hibernate 使用的数据库方言:每一种数据库使用的基本语法会有细微的区别,例如分页 MySQL 使用 limit,而 Oracle 使用 rownum。这就
需要告诉 Hibernate 底层使用的是哪一种数据库<!-- 配置 Hibernate 的数据库方言 --><property name="dialect" >org.hibernate.dialect.MySQLInnoDBDialect</property >注意:方言对应的类来自于 hibernate-release-4.2.4.Final\project\etc\hibernate.properties 中
III. 编辑 Hibernate 的一般属性
<!-- 创建数据表的策略(了解,最多使用的值是 update) -->
<!-- 配置 hibernate 的一些基本属性 -->
<!-- 创建数据表的策略 -->
<property name="hbm2ddl.auto">update</property>
<!-- 是否打印 SQL -->
<property name="show_sql">true</property>
<!-- 是否格式化 SQL -->
<property name="format_sql">true</property>
> create: 每次运行都会删除上一次的表 ,重新生成表, 哪怕二次没有任何改变
> create-drop:会根据 .hbm.xml 文件生成表, 但是SessionFactory一关闭, 表就自动删除
> update:最常用的属性值,也会根据 .hbm.xml 文件生成表, 但若 .hbm.xml 文件和数据库中对应的数据表的表结构不同,
> create-drop:会根据 .hbm.xml 文件生成表, 但是SessionFactory一关闭, 表就自动删除
> update:最常用的属性值,也会根据 .hbm.xml 文件生成表, 但若 .hbm.xml 文件和数据库中对应的数据表的表结构不同,
Hiberante 将更新数据表结构,但不会删除已有的行和列
> validate : 会和数据库中的表进行比较, 若 .hbm.xml 文件中的列在数据表中不存在,则抛出异常
3). 编写实体类(POJO)及 Hibernate 映射文件:xxx.hbm.xml
I. 编写一个 POJO:必须包含一个 OID 字段和数据表主键对应;必须有一个无参数的构造器;为字段定义 getter、setter;非 final 类
II. 由 hibernate 插件生成 xxx.hbm.xml 文件
注意:需要对文件进行简单的修改:修改主键生成方式(使用 id 的 generator 子节点的 class 属性配置主键的生成方式,native 表示使用数据库本地的方式来
生成主键, MySQL 会自动的选用 auto_increment,而 Oracle 则使用序列的方式)
<generator class="assigned" /> 修改为 <generator class="native" />
III. 在 hibernate 配置文件(hiberante.cfg.xml)中关联 hibernate 持久化类的映射文件
4). 通过 Hibernate API 完成持久化操作
注意:需要对文件进行简单的修改:修改主键生成方式(使用 id 的 generator 子节点的 class 属性配置主键的生成方式,native 表示使用数据库本地的方式来
生成主键, MySQL 会自动的选用 auto_increment,而 Oracle 则使用序列的方式)
<generator class="assigned" /> 修改为 <generator class="native" />
III. 在 hibernate 配置文件(hiberante.cfg.xml)中关联 hibernate 持久化类的映射文件
<!-- 关联 hibernate 映射文件 -->
<mapping resource= "com/entities/News.hbm.xml" />
4). 通过 Hibernate API 完成持久化操作
public class Main {
public static void main(String[] args) {
News news = new News();
news.setAuthor( "lizhenwei");
news.setContent( "Hibernate");
news.setContent( "java-ORM");
// 1. 创建 SessionFactory: Session 的工厂类.SessionFactory 是线程安全的,一般地,在一个 Java 应用中只有一个 SessionFactory 实例
Configuration configuration = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.buildServiceRegistry();
SessionFactory sessionFactory = configuration
.buildSessionFactory(serviceRegistry);
// 2. 创建 Session: 表示 Hibernate 应用程序和数据库的一次会话
Session session = sessionFactory.openSession();
// 3. 开启事务
Transaction transaction = session.beginTransaction();
// 4. 执行持久化操作
//save
//session.save(news);
// 利用 OID 加载对象
News news2 = (News) session.get(News. class, 1);
System. out.println(news2);
// 5. 提交事务
transaction.commit();
// 6. 关闭 Session
session.clear();
// 7. 关闭 SessionFactory
sessionFactory.close();
}
}
0 0
- Hibernate 总结(一):HelloWorld
- Hibernate HelloWorld(一)
- Hibernate入门(一)HelloWorld
- Hibernate学习总结(一)——Intellij IDEA下新建Hibernate HelloWorld
- hibernate学习(一)helloWorld,配置文件
- hibernate学习(一)helloworld程序
- Hibernate--HelloWorld案例--(一)
- 总结一下Hibernate Helloworld
- Hibernate 总结(一)
- Hibernate总结(一)
- Hibernate总结(一)
- Hibernate总结(一)
- 总结Hibernate(一)
- Hibernate总结(一)
- Hibernate HelloWorld(第一步)
- Hibernate总结(一)--之hibernate配置文件
- Hibernate阶段性总结(一)
- spring(一)helloworld
- Java 枚举7常见种用法
- 第十四章--块设备驱动程序
- android 安装apk 到 /system/app 目录
- javascript中的0级DOM和2级DOM
- java 文件读写大全
- Hibernate 总结(一):HelloWorld
- java笔记之分支、循环语句
- hitTest:withEvent:
- 个税改革没体现公平,只是增加政府收入
- 记录
- 第十五章--页高速缓存
- php获取环境是否安装zend optimizer
- 自己用C可变参数写个简单的printf函数
- 使用bash脚本从ftp上下载多个文件