JR 精品文章 - 在MyEclipse快速搭建Hibernate应用
AD: jr (at) javaresearch.org


首页 | 动态 | 文章 | FAQ  | 新闻 | 下载 | 代码 | 工作 | 调查 | 术语 | 站点 | 图书 | 论坛 | 帮助 | 全部  

TOP | 交流 | 软件 | 专栏 | 开源 | 译/著 | 源码 | API  | 推荐 | FTP  | 积分 | 统计 | 搜索 | Blog | 我们  
首页 » 研究文集 » 开发工具 搜索标题相关文章 搜索标题相关文章    评论此文章 发表评论     开始监控此文章 开始监控   加入收藏夹  加入收藏夹
在MyEclipse快速搭建Hibernate应用
suhaoyuan 原创   更新:2007-03-16 09:29:04  版本: 1.0   


  我们所要建的应用非常简单,只是利用hibernate3.0对一张表进行操作。
  软件环境:
   1.Eclipse3.1.2;
   2.MyEclipse4.1.0;
   3.MySql Server 5.0 ;
   4.MySql Java Connector J 5.0.4; 
   5.hibernate3.0 Core Libraries;
   6.hibernate3.0 Advanced Libraries;
   参考书籍及文档:
   <<深入浅出Hibernate>>夏昕,唐勇,曹晓刚
   MyEclipse Help Content

   整个应用的创建依以下步骤完成:
   (1)新建一个名为hibernatetest的mysql schema;

   (2)创建一张名为User的表格,其语句如下:
        CREATE TABLE `hibernatetest`.`User` (
            `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
            `name` VARCHAR(45) NOT NULL,
            `sex` CHAR NOT NULL,
            `age` TINYINT UNSIGNED NOT NULL,
             PRIMARY KEY (`id`)
        )
        ENGINE = InnoDB;    

   (3)打开MyEclipse的DB Browser视图,在右击选项菜单(Context Menu)上选择New...,弹出Database 

Profile对话框,用于新建一个Profile,填入以下信息:
       <3.1>Profile Name: localhost_mysql_profile;
       <3.2>Driver: 打开Configure database driver链接,配置jdbc驱动,我们只需加入MySql 

Connector J的JDBC驱动即可;
       <3.3>URL: jdbc: mysql://127.0.0.1:3306/hibernatetest;
       <3.4>User Name: 用户名;
       <3.5>Password: 密码;
       创建完profile后,尝试一下连接至数据库,成功即可;

   (4)在Eclipse中新建一个名为HibernateSample的Java项目;
       <4.1>创建一个名为config的目录,用于放置hibernate.cfg.xml;
       <4.2>创建一个名为mappings的目录,用于放置映射文件;
   
   (5)在HibernateSample项目的右击选项菜单中,选择MyEclipse->Add Hibernate Capabilities...这

样会弹出一个Hibernate Support for MyEclipse的对话框:
       <5.1>第一步是选择要添加到工程的包,我们把Hibernate3.0的Core及Advanced包都勾上;
       <5.2>第二步是否创建hibernate.cfg.xml,我们把configuration folder设定为src\config;
       <5.3>第三步是指定数据库连接细节(specify database connection details),我们只需名为

localhost_mysql_profile即可,因为我们之前已经进行了设置;
       <5.4>第四步问你是否创建SessionFactory,这个SessionFactory其实是Hibernate提供的一个用于

管理Session的类,它可以确保在每个独立的线程中Session是唯一的,我们创建名为

cn.com.test.hibernatesample.factory.HibernateSessionFactory的类;
       通过上述的四步,现在的工程里面已经拥有了hibernate所需的包及配置文件。
   
    
   (6)在src目录下创建一个名为log4j.properties的文件,内容如下:
    ### direct log messages to stdout ###
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

    log4j.rootLogger=warn, stdout
    log4j.logger.org.hibernate=error
        因为hibernate是通过log4j进行日志管理的,所以加上这个会比较好,不加会在运行时出错。

   (7)创建cn.com.test.hibernatesample.model.User类,篇幅所限,大致如下
        -------------------------------------------------------------------------
        package cn.com.test.hibernatesample.model;
        public class User {

          private Integer id;
        private String name;
        private char sex;
        private byte age;

            //后面是一堆的setter,getter,用于set及get各个属性
 
       }
       ------------------------------------------------------------------------------

    (8)在工程的mappings(在第4步创建的目录)目录下创建一个名为User.hbm.xml,内容如下:
         <?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 >
            <class name="cn.com.test.hibernatesample.model.User" table="USER">

              <id name="id" column="id" type="integer" >
                <generator class="increment"/>
          </id>
          <property name="name" column="name" type="string" />
              <property name="sex" column="sex" type="char"/>
              <property name="age" column="age" type="byte"/>
           </class>
        </hibernate-mapping>

    (9)在HibernateSample项目的右击选项菜单中,选择New -> JUnit Test Case...,弹出新建JUnit 

Test Case的对话框:
        <9.1>package上输入:cn.com.test.hibernatesample.test;
        <9.2>type上输入UserTest;
        <9.3>在which method stubs whould you like to create中勾上setUp(),tearDown();
        整个UserTest类的代码如下:

    
        ---------------------------------------------------------------------------------
    package cn.com.test.hibernatesample.test;

    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.Transaction;

    import cn.com.test.hibernatesample.factory.HibernateSessionFactory;
    import cn.com.test.hibernatesample.model.User;

    import junit.framework.Assert;
    import junit.framework.TestCase;

    public class UserTest extends TestCase {

        //hibenate的session对象
        private Session session = null;
    
        protected void setUp() throws Exception {
            super.setUp();
            session = HibernateSessionFactory.currentSession();
        }
    
        public void testUserInsert() {
            Transaction tran = null;
            try {
                tran = session.beginTransaction();
                User user = new User();
                user.setName("suhaoyuan");
                user.setSex('M');
                user.setAge(Byte.parseByte("27"));
                session.save(user);
                tran.commit();
                Assert.assertEquals(.getId().intValue() > 0, true);
            }
            catch(HibernateException ex) {
                ex.printStackTrace();
                Assert.fail(ex.getMessage());
                if(tran != null) {
                    try {
                      tran.rollback();
                    }
                    catch(HibernateException tranEx) {
                        tranEx.printStackTrace();
                    }
                }
            }
        }

        protected void tearDown() throws Exception {
            super.tearDown();
            HibernateSessionFactory.closeSession();
        }

    }
        ----------------------------------------------------------------------------


        (10)运行刚创建的UserTest测试用例即完成该应用;



                                                                         suhaoyuan
                                                                         2007.03.15


       

版权声明   给作者写信
本篇文章对您是否有帮助?  投票:         投票结果:     13       0
作者其它文章: 作者全部文章
评论人:qq17004331 发表时间: Thu May 31 16:36:01 CST 2007
太有才了

这个文章共有 1 条评论
主题: ant使用简介 上一篇文章
返回文章列表 返回〔开发工具〕
下一篇文章 主题: JBuilder8新特性


文字广告链接
        自主、快速定制基于JAVA的B/S业务系统          重量级企业在线自定义WEB报表平台
        Excel制表、零代码发布、打印、图表结合——快逸报表,免费、稳定、功能强大的java工具
        技术圈: 关于Java、dotNet、PHP、Ruby、奇客、Web2.0等更多资讯博客精选文章

关于 JR  |  版权声明  |  联系我们 

©2002-2006 JR 版权所有 沪ICP备05019622号