Learning Hibernate step by step -- 00 搭建环境

最近开始学习Hibernate,做一个学习笔记(好脑子不如烂笔头嘛!),以备将来回顾查阅之用。
一、准备工作:
[table]
|ID|名称|版本|下载地址
|1|JDK|5.0|http://www.oracle.com/technetwork/java/javase/downloads/index-jdk5-jsp-142662.html
|2|Eclipse|3.5.2|http://www.eclipse.org/downloads/
|3|Hibernate|3.2|http://www.hibernate.org/downloads.html
|4|MySQL|5.0|http://dev.mysql.com/downloads/mysql/
|5|mysql-connector|5.0.8|http://dev.mysql.com/downloads/connector/j/
[/table]
二、解压Hibernate,目录结构如下:
hibernate-3.2
|- doc 文档目录
|- eg auction的例子
|- etc 其他相关
|- grammar 语法
|- lib 依赖包
|-asm.jar
|-...
|- src 源文件
|- test 测试目录
|- hibernate3.jar hibernate核心包
三、新建一个Java工程LearnigHibernate
1. 导入hibernate核心包hibernate3.jar到LearnigHibernate工程目录下
2. 导入mysql-connector-java-5.0.8-bin.jar包到LearnigHibernate工程目录下
3. 导入如下依赖包到LearnigHibernate工程目录下
hibernate-3.2/lib/dom4j-1.6.1.jar
hibernate-3.2/lib/commons-logging-1.0.4.jar
hibernate-3.2/lib/commons-collections-2.1.1.jar
hibernate-3.2/lib/jta.jar
4. 拷贝\hibernate-3.2\etc\hibernate.cfg.xml到LearnigHibernate/src目录下,修改相关内容,得到如下配置:

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory name="foo">
<!-- 方言 -->
<property name="hibernate.dialect org.hibernate.dialect">MySQLInnoDBDialect</property>
<!-- 驱动包 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 数据库连接url jdbc:mysql:///test<==>jdbc:mysql:/localhost/3306/test -->
<property name="hibernate.connection.url">jdbc:mysql:///test</property>
<!-- 用户名 -->
<property name="hibernate.connection.username">root</property>
<!-- 密码 -->
<property name="hibernate.connection.password">*******</property>
</session-factory>
</hibernate-configuration>

5. 编写一个简单的测试程序,测试是否可以正常连接数据库:

public class TestConnection {
public static void main(String[] args) {
if(test()) {
System.out.println("数据库连接成功!");
} else {
System.out.println("数据库连接失败!");
}
}
public static boolean test() {
Configuration cfg = new Configuration();
cfg.configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
try {
Session session = sessionFactory.openSession();
if(session == null) {
return false;
} else {
session.close();
return true;
}
} catch (Exception e) {
return false;
}
}
}

6. 运行该程序,控制台输出 数据库连接成功!
四、相关jar包汇总:
[table]
|ID|包名|备注|异常
|1|hibernate3.jar|hibernate的核心包|N/A
|2|mysql-connector-java-5.0.8-bin.jar|Java连接MySQL数据库的包|严重: JDBC Driver class not found: com.mysql.jdbc.Driver
|3|dom4j-1.6.1.jar|dom4j是一个Java的XML API,用来读写XML文件的。Hibernate使用dom4j解析XML配置文件和XML映射元文件。|Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentException
|4|commons-logging-1.0.4.jar|Apache Commons包中的一个,包含了日志功能|Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
|5|commons-collections-2.1.1.jar|Apache Commons包中的一个,包含了一些Apache开发的集合类|Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/LRUMap
|6|jta.jar|JTA规范,当Hibernate使用JTA的时候需要|Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/Synchronization
[/table]
五、总结
1. 如果配置文件中对session-factory设置属性name的值(<session-factory name="foo">),可能会出现如下异常:javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 解决方法是去掉name属性,即改为:<session-factory>
2. 以上汇总的包不是全部的必须包,只是其中的一部分,只能保证正常连接数据库。以后需要其他的包再导入。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值