- 浏览: 150281 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
flyingcatjj:
很适合我这种刚接触的
myeclipse xfire 开发webservice实例 -
tangzlboy:
非常好,非常详细,非常中用。
linux入门 -
yzz9i:
楼主说的很是详细。
myeclipse xfire 开发webservice实例 -
zqx888191:
很再理阿!
老程序员的教诲 -
simplecat123:
...
SQLite数据读取
写道
下载的hibernate解压目录
hibernate3.jar是hibernate的核心包
doc 文档
eg 例子程序
etc 配置文件
grammar 语法
lib 依赖的包
src hibernate源代码
test 测试用例
ORM Object Relation Mapping对象关系映射 主流的ORM框架有Hibernate、TopLink、OJB。
配置文件 hibernate.cfg.xml和hibernate.properties两种 一般使用xml形式
开发一个小例子
新建一个java项目 把hibernate的包全都引入到工程中
创建一个实体类 User
package dao.service;
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;
}
}
实体类的映射文件 User.hbm.xml 这个文件有点复杂 可以从hibernate的eg目录下找一个同样
的模板 修改下即可
<?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="dao.service">
<class name="User">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="birthday"/>
</class>
</hibernate-mapping>
引入配置文件 把模板程序拷贝到包的根目录下 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:///test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- 指定其方言 方言的作用就是告诉hibernate是哪种数据库 -->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<!-- 指定其hibernate是否根据映射文件自动创建表 -->
<property name="hbm2ddl.auto">update</property>
<mapping resource="dao/service/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
创建测试类
package dao.test;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import dao.service.User;
public class Base {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//对hibernate进行初始化操作
Configuration ctf=new Configuration();
ctf.configure();
//获取连接工厂
SessionFactory sf=ctf.buildSessionFactory();
//获取连接对象
Session s=sf.openSession();
Transaction tx=s.beginTransaction();
User user=new User();
user.setBirthday(new Date());
user.setName("name");
s.save(user);
tx.commit();
s.close();
System.out.print("end");
}
}
注意 对hibernate的配置文件的引入可以参考etc下的hibernate.properties
这里可以找到完整的配置信息
注意点1
## auto schema export
#hibernate.hbm2ddl.auto create-drop
#hibernate.hbm2ddl.auto create
#hibernate.hbm2ddl.auto update
#hibernate.hbm2ddl.auto validate
这是指定其hibernate是否可以根据映射文件建表
create-drop 这种形似指的是在程序在运行的时候就自动把以往同样的表给删除 只可以在测试环境下使用
create 这种跟create-drop一样
update 这种最实用 hibernate可以自动检查数据库中的表是否存在 如果不存在,就创建 存在,就更新其表中数据
validate 验证映射文件跟表是否一致,不一致就异常
注意点2
映射文件必须配置到hibernate配置文件中 不然hibernate会找不到该映射文件
注意点3 必须指定其方言 告诉其hibernate是采用的是什么数据库
注意点4 hibernate其实底层是基于jdbc操作的
注意点5 jdbc的事务是自动提交的 但是在hibernate中,事务的自动关闭了,但是有时候不开启事务发现数据也
能插入到数据库中 这是为什么呢,这是由表结构的引擎所决定的 查看表结构的方法 在命令行中
输入 show create table user; 有些引擎是不支持事务的 所以你开启事务和不开启事务是没什么区别的
mysql5版本后的数据库表结构的默认引擎是 InnoDB 这种是支持事务的
查看所有引擎的方法 在命令行输入 show engines;
完毕 end !
hibernate3.jar是hibernate的核心包
doc 文档
eg 例子程序
etc 配置文件
grammar 语法
lib 依赖的包
src hibernate源代码
test 测试用例
ORM Object Relation Mapping对象关系映射 主流的ORM框架有Hibernate、TopLink、OJB。
配置文件 hibernate.cfg.xml和hibernate.properties两种 一般使用xml形式
开发一个小例子
新建一个java项目 把hibernate的包全都引入到工程中
创建一个实体类 User
package dao.service;
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;
}
}
实体类的映射文件 User.hbm.xml 这个文件有点复杂 可以从hibernate的eg目录下找一个同样
的模板 修改下即可
<?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="dao.service">
<class name="User">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="birthday"/>
</class>
</hibernate-mapping>
引入配置文件 把模板程序拷贝到包的根目录下 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:///test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- 指定其方言 方言的作用就是告诉hibernate是哪种数据库 -->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<!-- 指定其hibernate是否根据映射文件自动创建表 -->
<property name="hbm2ddl.auto">update</property>
<mapping resource="dao/service/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
创建测试类
package dao.test;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import dao.service.User;
public class Base {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//对hibernate进行初始化操作
Configuration ctf=new Configuration();
ctf.configure();
//获取连接工厂
SessionFactory sf=ctf.buildSessionFactory();
//获取连接对象
Session s=sf.openSession();
Transaction tx=s.beginTransaction();
User user=new User();
user.setBirthday(new Date());
user.setName("name");
s.save(user);
tx.commit();
s.close();
System.out.print("end");
}
}
注意 对hibernate的配置文件的引入可以参考etc下的hibernate.properties
这里可以找到完整的配置信息
注意点1
## auto schema export
#hibernate.hbm2ddl.auto create-drop
#hibernate.hbm2ddl.auto create
#hibernate.hbm2ddl.auto update
#hibernate.hbm2ddl.auto validate
这是指定其hibernate是否可以根据映射文件建表
create-drop 这种形似指的是在程序在运行的时候就自动把以往同样的表给删除 只可以在测试环境下使用
create 这种跟create-drop一样
update 这种最实用 hibernate可以自动检查数据库中的表是否存在 如果不存在,就创建 存在,就更新其表中数据
validate 验证映射文件跟表是否一致,不一致就异常
注意点2
映射文件必须配置到hibernate配置文件中 不然hibernate会找不到该映射文件
注意点3 必须指定其方言 告诉其hibernate是采用的是什么数据库
注意点4 hibernate其实底层是基于jdbc操作的
注意点5 jdbc的事务是自动提交的 但是在hibernate中,事务的自动关闭了,但是有时候不开启事务发现数据也
能插入到数据库中 这是为什么呢,这是由表结构的引擎所决定的 查看表结构的方法 在命令行中
输入 show create table user; 有些引擎是不支持事务的 所以你开启事务和不开启事务是没什么区别的
mysql5版本后的数据库表结构的默认引擎是 InnoDB 这种是支持事务的
查看所有引擎的方法 在命令行输入 show engines;
完毕 end !
发表评论
-
二十六 Hibernate实践
2011-07-04 19:18 740不适合OLAP以查询分析数据为主的系统。适合OLTP联机事务处 ... -
二十五 SQL和命名查询
2011-07-04 19:17 1053SQL和命名查询 SQL查询 //根据sql语句查询 s ... -
二十四 拦截器与监听器
2011-07-04 19:14 959在保存 更新等操作的前 ... -
二十三 iterate查询与N+1次查询的问题
2011-07-04 19:13 789test.java view plaincopy to ... -
二十二 Hibernate映射文件配置
2011-07-04 19:12 896id 主键生成方式 incremen ... -
二十一 串讲Hibernate配置文件中的配置项
2011-07-04 19:11 871数据源配置 ## JNDI Datasource ... -
二十 悲观锁和乐观锁
2011-07-04 19:10 745为了避免对对象同步操作时候产生的数据不一致问题,我们对对象采用 ... -
十九 hibernate3之缓存
2011-07-04 19:09 935什么是缓存?现在我们来看一个模拟的缓存操作 模拟一个缓存例子 ... -
十八 一对一对象的懒加载
2011-07-04 17:59 744一对一对象的懒加载,对于主的一方,lazy是无效的,它在访问数 ... -
十七 懒加载
2011-07-04 17:58 746十七 懒加载 什么是hibe ... -
十六 继承映射
2011-07-04 17:56 504第一种 一个员工类它有两个子类,利用hibernate我们把 ... -
十五 cascade 级联操作与inverse表是否放弃维护关联关系
2011-07-04 17:54 855cascade 级联操作字段 Casade用来说明当对主对 ... -
十四 在hibernate中使用集合总结
2011-07-04 17:52 884集合映射(set, list, array,bag, map) ... -
十三 array数组形式的映射
2011-07-04 17:51 856数组其实跟List的集合映射没有多大的差别,当然它不可以使用b ... -
十二 集合映射之Map集合
2011-07-04 17:49 817十二 Map集合映射 Map是以键值对的形式存放数据的 ... -
十一 集合映射 List集合
2011-07-04 17:47 1030十一 集合映射 set的 ... -
十 组件关联
2011-07-04 17:45 719组件关联 什么是组件关联呢?比如说一个用户,它的名称,有一 ... -
九 多对多关系 学生<--->老师的关系
2011-07-04 17:44 1247九 多对多关系 学生<--->老师的关系 多对多 ... -
八 一对一 用户与身份证的关系
2011-07-04 17:42 874八 一对一 用户与身份证的关系 设计用户实体 主实体 ... -
七 一对多关系 部门与员工的关系
2011-07-04 17:41 1142一对多 部门与员工的关系 相对于部门来说 一对多 根据先前 ...
相关推荐
接下来需要从Hibernate官网下载Hibernate 3.0,其中包含了一个必需的`hibernate3.jar`文件。此外,还需要其他依赖库如`antlr`, `dom4j`, `CGLIB`, `asm`, `CommonsCollections`, `CommonsLogging`, `EHCache`以及`...
电影售票系统采用struts+hibernate再结合java的dao模式框架做的,具有典型的mvc结构,在后台操作电影影片中:在添加电影这步,我用了上传案例结合...很不错的例子,相信大家看后能比较清晰认识struts和hibernate
### Hibernate中Example的用法详解 #### 一、前言 ...通过本文的介绍,相信你已经对`Example`的使用有了全面的认识,接下来不妨在实际项目中尝试运用这些技巧,以提高你的Hibernate应用开发水平。
通过以上步骤,我们已经对Hibernate的基本配置和使用有了全面的认识。在实际项目中,还需要根据具体需求进行事务管理、缓存配置、性能优化等更高级的应用。对于`hibernate001`这个案例,它可能是进一步展示了这些...
Hibernate Synchronizer是一款强大的工具,专为简化Hibernate在Eclipse环境中的配置和管理而设计。它通过自动同步数据库模型与Java实体类,极大地提升了开发效率,减少了手动调整代码的工作量。在本文中,我们将深入...
3. **对象关系映射**:深入讲解Hibernate的核心——对象关系映射(ORM),包括实体类的设计、属性注解、主键生成策略、关联映射(一对一、一对多、多对一、多对多)等,使开发者理解如何将Java对象与数据库表进行...
3. **一对一(OneToOne)**: 这种关系意味着两个实体之间存在唯一的对应关系,例如一个人可能只有一个护照。在Hibernate中,可以通过`@OneToOne`注解来建立一对一的映射。 4. **一对多(OneToMany)**: 一个...
- 先实践后理论:通过动手实践,建立起对Hibernate的直观认识,然后再深入学习背后的原理。 - 注重注解:随着Java的发展,注解配置逐渐取代XML配置,因此在学习过程中应侧重于注解的使用。 资源: - Hibernate官方...
许多有经验的开发人员都有一个共同的认识,那就是Hibernate要比Struts和Spring难掌握得多,初学者要想学好Hiberante就更是难上加难了!本课程的讲解者李勇老师的技术功底非常深厚,课程内容组织得非常合理和巧妙,...
3. **Session接口**:模仿Hibernate的Session,实现增删改查(CRUD)操作。这个接口应该提供如save(), update(), delete()以及get()等方法,用于持久化对象。 4. **查询语言**:考虑创建一个简单的HQL(Hibernate ...
Hibernate3是Java应用程序与关系数据库之间的一个桥梁,它通过提供一种对象-关系映射(ORM)工具,简化了数据持久化的复杂性。这个框架允许开发人员使用面向对象的编程方式来操作数据库,极大地提高了开发效率。 二...
通过以上内容,我们对Hibernate的基本概念和使用有了初步的认识。在后续的文章中,我们将进一步学习如何创建实体类、配置映射文件,以及如何使用Session和Transaction进行数据的增删改查操作,逐步掌握Hibernate的...
总结,深入理解Hibernate3的源码有助于提升Java开发者对ORM框架的认识,能够更好地优化数据库操作,提高开发效率。通过逐步剖析源码,可以更全面地了解其设计理念,为自己的项目带来更高效的解决方案。
通过这节课程,初级学者将能够建立起对Hibernate的基本认识,理解如何配置和使用它来操作数据库。同时,实践文件"stu_class"将提供一个实际操作的例子,帮助巩固理论知识。在学习过程中,不断实践和调试代码是提高...
10. **实战认识**:通过实例演示如何在实际项目中应用Hibernate。 《hibernate in action》是另一本知名书籍,它通常会提供更深入的技术洞察,可能涵盖以下内容: 1. **Hibernate核心概念**:深入理解Hibernate的...
在IT行业中,Hibernate、Spring和Hibernate ...而"hibernate_reference.pdf"则能让你对Hibernate有更全面的认识,包括其非注解的使用方式。这些知识对于提升Java EE开发技能、优化项目结构和提高开发效率至关重要。
通过深入研究这个例子,你将对Hibernate的工作流程有清晰的认识,为后续的实际项目开发打下坚实基础。在实践中不断优化和调整,你会发现Hibernate是Java ORM领域的强大工具,能显著提升开发效率。
Hibernate详细的架构图,很好的架构系统,能全面认识Hibernate。
总的来说,这份"hibernate资料3"是一个完整的Hibernate入门到进阶的学习资源,通过尚学堂马士兵老师的讲解,你可以系统地掌握Hibernate 3.3.2的基本用法和实践技巧,为Java开发中的数据库操作提供有力的支持。...
#### 3. 操作联合主键 在示例代码中,展示了如何使用Hibernate操作具有联合主键的实体。包括插入、更新、删除和查询操作。值得注意的是,由于联合主键的存在,这些操作都需明确地指定联合主键的所有组成部分。 - *...