`
TriEyes
  • 浏览: 10846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

阅读更多
最近开始学习Hibernate,做一个学习笔记(好脑子不如烂笔头嘛!),以备将来回顾查阅之用。
一、准备工作:
ID名称版本下载地址
1JDK5.0http://www.oracle.com/technetwork/java/javase/downloads/index-jdk5-jsp-142662.html
2Eclipse3.5.2http://www.eclipse.org/downloads/
3Hibernate3.2http://www.hibernate.org/downloads.html
4MySQL5.0http://dev.mysql.com/downloads/mysql/
5mysql-connector5.0.8http://dev.mysql.com/downloads/connector/j/

二、解压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包汇总:
ID包名备注异常
1hibernate3.jarhibernate的核心包N/A
2mysql-connector-java-5.0.8-bin.jarJava连接MySQL数据库的包严重: JDBC Driver class not found: com.mysql.jdbc.Driver
3dom4j-1.6.1.jardom4j是一个Java的XML API,用来读写XML文件的。Hibernate使用dom4j解析XML配置文件和XML映射元文件。Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentException
4commons-logging-1.0.4.jarApache Commons包中的一个,包含了日志功能Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
5commons-collections-2.1.1.jarApache Commons包中的一个,包含了一些Apache开发的集合类Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/LRUMap
6jta.jarJTA规范,当Hibernate使用JTA的时候需要Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/Synchronization

五、总结
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. 以上汇总的包不是全部的必须包,只是其中的一部分,只能保证正常连接数据库。以后需要其他的包再导入。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics