- 浏览: 180256 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
lst923:
...
【转】Java 高性能Web 开发(2)-图像合并实现 CSS Sprites -
静静-黑夜:
离开
jquery uploadify 实现批量上传,带进度显示,判断文件大小 -
lizhao6210126.com:
确认一下这3个参数'multi': true, //是否支持多 ...
jquery uploadify 实现批量上传,带进度显示,判断文件大小 -
hpuyancy:
请问,出问题了,每次仅能上传一个文件,是不是设置的问题呢?
jquery uploadify 实现批量上传,带进度显示,判断文件大小 -
许助云:
例子很好很强大,只不过在调试的时候遇到一个小问题,需要修改to ...
jquery uploadify 实现批量上传,带进度显示,判断文件大小
第一个hibernate项目,
Hibernate中文“冬眠”,我们将对象保存到数据库的这个行为比喻成对象的冬眠。
Hibernate优点:提高生产力(不用开发枯燥的jdbc),开发更对象化,移植性(自动生成针对不同厂家的sql---方言),支持透明持久化(轻量级),没有侵入性。
Hibernate 弱点,不适用的情况:1,批量操作;2,需要使用数据库的特定优化机制,因为sql是由hibernate控制生成的,个人无法控制。
Hibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,hibernate可能不是最好的解决方案。
正确开发步骤:
先建立对象模型(领域模型)
建立映射关系
根据映射关系导出相应的表。
现实中先考虑数据库。(观念慢慢改变)
使用hibernate步骤:
1、新建java项目
2、创建User Library,加入如下jar
* HIBERNATE_HOME/hibernate3.jar
* HIBERNATE_HOME/lib/*.jar
* MySql jdbc驱动
3、创建hibernate配置文件hibernate.cfg.xml,为了便于调试最好加入log4j配置文件
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate_first</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">bjsxt</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
//文件名可以随意取,习惯User.hbm.xml格式
<mapping resource="com/bjsxt/hibernate/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
4、定义实体类
package com.bjsxt.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;
}
}
5、定义User类的映射文件User.hbm.xml
<hibernate-mapping>
<class name="com.bjsxt.hibernate.User">
<id name="id">
//uuid 据说10000不会重复
<generator class="uuid"/>
</id>
<property name="name"/>
<property name="password"/>
<property name="createTime"/>
<property name="expireTime"/>
</class>
</hibernate-mapping>
6、将User.hbml.xml文件加入到hibernate.cfg.xml文件中
<mapping resource="com/bjsxt/hibernate/User.hbm.xml"/>
7、编写hbm2ddl工具类,将实体类生成数据库表
public class ExportDB {
public static void main(String[] args) {
//hibernate支持两种配置文件 .properties和.xml
//读取.properties文件,不经常使用
Configuration cfg = new Configuration();
//读取hibernate.cfg.xml文件,一般使用这种
Configuration cfg = new Configuration().configure();
//工具类,生成ddl,将对象转化成表
SchemaExport export = new SchemaExport(cfg);
export.create(true, true);
}
}
8、开发客户端
//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
//创建SessionFactory,每个数据库对应一个,跟二级缓存相关
//重量级对象,创建比较耗时,线程安全的,可以只创建一次
SessionFactory factory = cfg.buildSessionFactory();
Session session = null;
try {
//session是用到的时候去连接池中拿,对实体对象生命周期管理,缓存相关,
//非线程安全的,用完之后必须关闭
session = factory.openSession();
//开启事务
session.beginTransaction();
User user = new User();
user.setName("张三");
user.setPassword("123");
user.setCreateTime(new Date());
user.setExpireTime(new Date());
//保存数据
session.save(user);
//提交事务
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
//回滚事务
session.getTransaction().rollback();
}finally {
if (session != null) {
if (session.isOpen()) {
//关闭session
session.close();
}
}
}
为了方便跟踪sql执行,在hibernate.cfg.xml文件中加入<property name="hibernate.show_sql">true</property>
发表评论
-
hibernate映射mysql text类型字段,报Data too long错误
2013-05-06 11:36 5651hibernate映射mysql text类型字段 ... -
Open_Session_In_View详解
2012-12-11 10:32 779在没有使用Spring提供的Open Session I ... -
Could not initialize proxy - the owning Session was closed
2012-12-11 09:35 6007Could not initialize proxy - ... -
hibernate学习笔记第22讲-抓取策略
2012-10-19 09:15 981抓取策略:抓取关联对象。 1单端代理的批量抓取: ... -
hibernate学习笔记第21讲-查询缓存
2012-10-19 09:15 924hibernate查询缓存 查询缓存是针对普通属 ... -
hibernate学习笔记第20讲-二级缓存
2012-10-18 08:27 900sessionFactory可以管理二级缓存。 Hib ... -
hibernate学习笔记第19讲-一级缓存
2012-10-18 08:27 723hibernate一级缓存 一级缓存很短和se ... -
hibernate学习笔记第18讲-悲观锁-乐观锁
2012-10-18 08:27 802Hibernate对悲观锁和乐观锁的支持,主要解决并发问 ... -
hibernate学习笔记第17讲-其他Set-List-Array-Map等映射
2012-10-18 08:27 8011,set映射:set是无序的 2,List映射,l ... -
hibernate学习笔记第16讲-复合主键映射
2012-10-18 08:26 970复合(联合)主键映射: 复合主键映射一般采用把主键相关 ... -
hibernate学习笔记第15讲-component映射
2012-10-17 09:08 762Component组件映射:对象模型细粒度划分,复用率提 ... -
hibernate学习笔记第14讲-继承映射
2012-10-17 09:08 843继承映射: 1,一个类继承树映射到一张表。一般采用第一 ... -
hibernate学习笔记第13讲-jdk动态代理和CGLib
2012-10-17 09:07 1497Jdk动态代理,CGLib字节码生成 如果目标对象实现 ... -
hibernate学习笔记第12讲-lazy策略
2012-10-17 09:07 852Hibernate lazy策略:延迟加载、懒加载。 ... -
hibernate学习笔记第11讲-多对多关联映射many-to-many
2012-10-17 09:07 869单向映射 hibernate多对多关联映射( ... -
hibernate学习笔记第10讲-一对多关联映射one-to-many双向
2012-10-16 11:18 897hihernate一对多关联映射(双向Classes&l ... -
hibernate学习笔记第9讲-一对多关联映射one-to-many单向
2012-10-16 11:18 735一对多关联映射利用了多对一关联映射的原理。 ... -
hibernate学习笔记第8讲-session_flush-数据库隔离级别
2012-10-16 11:18 962Session flush: 默认在commit之前 ... -
hibernate学习笔记第7讲-一对一唯一外键关联映射one-to-one
2012-10-16 11:18 880Hibernate一对一唯一外键关联: 就是多对一的特 ... -
hibernate学习笔记第6讲-一对一主键关联映射one-to-one
2012-10-16 11:18 878Hibernate一对一主键关联: 1,单向主键关联: ...
相关推荐
《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...
在深入探讨Hibernate学习笔记第二天的源码之前,我们先来理解一下Hibernate的核心概念。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转化为对象模型,大大简化了数据访问层的开发...
【Java相关课程系列笔记之十四Hibernate学习笔记】 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。本笔记将详细阐述Hibernate的核心概念、使用方法和特性。 一、...
【Hibernate学习笔记第一次课】 在本课程中,我们将深入探讨Hibernate框架的基础知识,这是一个流行的Java对象关系映射(ORM)工具,它简化了数据库与Java应用程序之间的交互。我们的重点是Hibernate 3.1版本,虽然...
《马士兵Hibernate学习笔记》是一份深入浅出的教程,旨在帮助初学者掌握Hibernate这一流行的Java持久化框架。Hibernate是一个对象关系映射(ORM)工具,它允许开发者用面向对象的方式来操作数据库,从而减少了传统...
【hibernate学习笔记】 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它极大地简化了数据库操作。以下是对Hibernate的学习要点的详细解释: 1. **建立第一个Hibernate版本的HelloWorld** - **...
### 马士兵Hibernate学习笔记知识点总结 #### 一、HelloWorld示例 - **目的**:通过简单的示例理解Hibernate的基本使用流程。 - **步骤**: - 创建Java项目`hibernate_0100_HelloWorld`。 - 建立库依赖,包括...
根据提供的信息,我们可以总结出以下关于达内HIBERNATE学习笔记的重要知识点: ### 第一章:Hibernate入门 #### 1.1 学习目标 - 理解Hibernate的基本概念。 - 掌握如何使用Hibernate进行开发。 #### 1.2 对象持久...
- **第一步**:创建`HibernateSessionFactory`类和`hibernate.cfg.xml`配置文件。`HibernateSessionFactory`是Hibernate的核心,负责管理数据库会话,而`hibernate.cfg.xml`文件用于配置数据库连接信息。 - **第...
### Hibernate学习笔记01 #### 一、Hibernate简介与安装 **Hibernate** 是一款开源的对象关系映射(Object Relational Mapping, ORM)框架,它能够有效地简化Java应用程序与数据库之间的交互,提供了一种更为优雅...
**hibernate入门学习笔记+源码** **一、Hibernate简介** Hibernate是一个开源的对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互。通过提供对象化的数据访问方式,Hibernate消除了传统JDBC代码中的...
【hibernate学习笔记】 在Java开发中,Hibernate是一个非常重要的框架,它是一个开源的Object/Relational Mapping(O/R映射)框架。这个框架的主要目的是简化数据库操作,通过将Java对象与数据库表进行映射,让...
【Hibernate学习笔记】 在当前的IT领域,尤其是Java开发中,Hibernate是一个不可或缺的框架,它极大地简化了对象与关系数据库之间的交互。这篇笔记主要涵盖了如何开始使用Hibernate进行数据持久化操作,适合所有...
### Hibernate 学习笔记知识点详解 #### 一、Hibernate 简介 - **概念**:Hibernate 是一种“对象/关系映射”(Object/Relational Mapping,简称 ORM)技术,用于解决 Java 应用程序与关系型数据库交互的问题。 - *...
以上是Hibernate学习笔记的概览,接下来会详细讲解映射文件的各个部分,包括如何配置实体类的属性、主键生成策略、以及如何通过实例来实现数据库的操作。通过深入学习,开发者可以更高效地管理和操作数据库,同时...