hibernate的hello word(国内高手撰写)

终于有点对hibernate入门的感觉。方便门外的学习者,给一个简单的入门例子。
如果你有用过其他持久架构 转到hibernate其实很简单。一些原理方面就不讲了,
robbin讲的肯定比我好的多,自己去精华版看看。
我所给的只是我当初刚开始接触hibernate时候很想要的一个简单例子和设置方法。
一直没有找到,所以现在放到这里给大家看看,(只给想要入门的一个直观的感应,呵呵)

首先当然要新建一个项目

然后在project properties->paths->required libraries->add->new 这里定义hibernate的类库 把hibernate的lib下面的所有jar包进去 当然还有hibernate2.jar也要
然后一路ok下去就可以了。

再来就是hibernate.properties
从hibernate的src下面找到
把它拷到你项目的src目录下
(什么,你的项目没有src目录,新建一个随便的类就有src目录了)

这样一个jb下面的hibernate的开发环境就好了

然后在hibernate.properties里面设置你的 数据库连接
默认是hypersonicsql

嗯 接下来的是你最想要做的事情了 其实很简单
新建一个类message.java
代码如下

代码:
package hello;

import java.io.serializable;

/**
* @author getdown
* @version 1.0
*/

public class message implements serializable {
private long id;
private string text;
//定义一个简单链表 指向另外的一个message
private message nextmessage;
public message() {}

public message(long id) {
this.id = id;
}

public message(string text) {
this.text = text;
}

public message(long id, string text) {
this.id = id;
this.text = text;
}

public long getid() {
return id;
}

private void setid(long id) {
this.id = id;
}

public string gettext() {
return text;
}

public void settext(string text) {
this.text = text;
}

public message getnextmessage() {
return nextmessage;
}

public void setnextmessage(message nextmessage) {
this.nextmessage = nextmessage;
}

}

接下来是这个类对应的hibernate的配置文件 message.hbm.xml

代码:


"-//hibernate/hibernate mapping dtd 2.0//en"
"http://hibernate.sourceforge. net/hibernate-mapping-2.0.dtd">


name="hello.message"
table="messages"
>

column="message_id"
>


name="text"
type="string">

name="text"
length="100"
not-null="true"
/>


name="nextmessage"
cascade="all"
column="next_message_id"
/>



然后就是 测试

代码:
package hello;

import net.sf.hibernate.cfg.configuration;
import net.sf.hibernate.sessionfactory;
import net.sf.hibernate.tool.hbm2ddl.schemaexport;
import net.sf.hibernate.session;
import net.sf.hibernate.query;
import net.sf.hibernate.hibernate;
import net.sf.hibernate.type.longtype;
import net.sf.hibernate.transaction;



/**
* @author getdown
* @version 1.0
*/

public class hello {
public hello() {
}

public static void main(string[] args) throws exception {
configuration cfg = new configuration().addclass(message.class);

/** 顾名思义 构建表。。。第一次运行的时候运行下面语句可以在数据库生成表
* 之后可以把下面这句去掉
* */
// new schemaexport(cfg).create(true, true);

//先生成sessionfactory
sessionfactory sessions = cfg.buildsessionfactory();
//再从sessionfactory 得到一个session
session session = sessions.opensession();
//开始对数据库的操作



/*----对数据库的创建操作--------*/
message message = new message("helloworld");
//创建一条记录
session.save(message);
//存入记录
session.flush();


/*---对数据库的查询操作---------------*/
// message message = new message();
// query q = session.createquery("from message as message where message.id=1");
// message = (message) q.list().get(0);
// message.getnextmessage().settext("hellonext");
// session.flush();
// session.close();
// long id = new long(1);
// message message = (message) session.find("from message as message where message.id=?", id, hibernate.long).get(0);
// system.out.println(message.gettext());


// /*------- 事务处理----------------*/
// transaction tx = session.begintransaction();
// try {
// message message = new message("hello");
// session.save(message);
// session.flush();
// message = new message("hello");
// session.save(message);
// session.flush();
// tx.commit();
// }
// catch (hibernateexception ex) {
// tx.rollback();
// }

/*-------添加1000条记录 时间--------------*/
// message message;
// long start = system.currenttimemillis();
// for(int i = 0; i < 1000; i ++) {
// message = new message("hello");
// session.save(message);
// session.flush();
// }
// long end = system.currenttimemillis();
// system.out.println("添加1000条记录时间---" + (end-start)/1000 + "s");



session.close();


}

}

ok了 运行一下hello看看出来什么吧
怎么样 比起cmp的持久 hibernate的持久是不是显得很轻量级。。
还可以试试看hibernate的性能 把hello.java的最后一段注释去掉运行看看

当然hibernate最重要的还是它的原理,还有很多很好的,很有趣的功能和o/rm 设计思想等着你自己发掘。
多看看它自己的文档,可以学到很多东西,它的文档真的非常好。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!关于学习Hibernate,我可以为你提供一些指导。Hibernate是一个Java持久化框架,用于将Java对象映射到关系数据库中。它简化了与数据库的交互,提供了ORM(对象关系映射)的功能。 如果你想学习Hibernate,以下是一些建议的步骤: 1. 了解基本概念:开始之前,建议你先了解一些Hibernate的基本概念,例如持久化、实体类、会话(Session)等。这将帮助你更好地理解Hibernate的工作原理。 2. 学习Hibernate配置:Hibernate使用一个配置文件来连接数据库和定义映射关系。你可以学习如何配置Hibernate以适应你的项目需求。这包括数据库连接配置、实体类映射等。 3. 学习Hibernate实体映射:Hibernate通过注解或XML文件将Java实体类映射到关系数据库表中。你可以学习如何使用注解或XML文件来定义实体类的映射。 4. 学习Hibernate查询语言(HQL):HQL是一种类似于SQL的查询语言,用于对数据库进行查询操作。学习如何使用HQL进行查询和操作数据库是很重要的。 5. 学习Hibernate事务管理:事务管理是在处理数据库操作时非常重要的一部分。学习如何使用Hibernate进行事务管理,包括开启事务、提交事务、回滚事务等。 6. 实践项目:最好的学习方法是通过实际项目来应用所学的知识。尝试在一个小型项目中使用Hibernate来进行数据库操作,这将帮助你更好地理解和掌握Hibernate的使用。 除了上述步骤,还有很多其他方面的内容可以学习,例如缓存管理、性能优化等。希望这些步骤能够帮助你入门Hibernate!如果你有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值