bluesky35(蓝天)的专栏

我喜欢蓝天,因为它能带给我无边无际的憧憬和幻想.

用户操作
[即时聊天] [发私信] [加为好友]
赵麟ID:bluesky35
21077次访问,排名5962(1),好友1人,关注者7人。
bluesky35的文章
原创 19 篇
翻译 0 篇
转载 0 篇
评论 29 篇
bluesky35的公告
个人简介
网名:bluesky35(蓝天)
真实姓名:赵麟
性别:男
Q Q:81806701
MSN:bluesky35@hotmail.com
Email:
bluesky35@263.net
最近评论
ibsrvk:wow power leveling
ibsrvk:wow power leveling
netpirate:<![CDATA[ + ? + ]]>
SSS:对我这个门外汉来说是天书~
楼主:用你的例子了,不知道是原创不,挺好。

但是有一个很重要的细节要强调一下:
jbuilder project->project properties->build->Resource
中一定要把 xml 改为copy。
这样才会在编译的时候自动将src文件夹中的xml文件拷贝到classes文件夹里相应的目录下
文章分类
收藏
    相册
    SOA
    钢琴曲
    picture
    桃桃的博客
    萍萍的博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 [原创]手把手配置Hibernate环境(JBuilderX版)收藏

    新一篇: [原创]编写自定义TAG的WEB应用(JBuilderX版) | 旧一篇: [原创]在JAVA环境下建立数据库连接池

                                                                                       
                                                                                       作者:bluesky35(蓝天)

    开发环境: Windows2000 + JBuilderX + Hibernate2.1.6 + Oracle9i
    1.安装JBuilderX和Oracle9i,并使用以下信息配置Oracle
    用户名:system
    密码:admin
    服务:cpdb

    2.先去http://prodownloads.sourceforge.net/hibernate/
    下载Hibernate API的包hibernate-2.1.6.zip,如下图所示


    3.在JBuilder中选择Project菜单中的Project Properties,在Require Library中加入Hibernate所有的API包,还要加入Oracle目录ORANT\jdbc\lib\classes12.zip



    4.然后将截压缩后的hibernate-2.1\etc\hibernate.properties拷贝到本地project的classes目录下然后做以下变化:
    ①注释默认的数据库连接,将
    ## HypersonicSQL

    hibernate.dialect net.sf.hibernate.dialect.HSQLDialect
    hibernate.connection.driver_class org.hsqldb.jdbcDriver
    hibernate.connection.username sa
    hibernate.connection.password
    hibernate.connection.url jdbc:hsqldb:hsql://localhost
    hibernate.connection.url jdbc:hsqldb:test
    hibernate.connection.url jdbc:hsqldb:.

    改为
    ## HypersonicSQL

    #hibernate.dialect net.sf.hibernate.dialect.HSQLDialect
    #hibernate.connection.driver_class org.hsqldb.jdbcDriver
    #hibernate.connection.username sa
    #hibernate.connection.password
    #hibernate.connection.url jdbc:hsqldb:hsql://localhost
    #hibernate.connection.url jdbc:hsqldb:test
    #hibernate.connection.url jdbc:hsqldb:.

    然后修改Oracle的连接,将
    ## Oracle

    #hibernate.dialect net.sf.hibernate.dialect.Oracle9Dialect
    #hibernate.dialect net.sf.hibernate.dialect.OracleDialect
    #hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
    #hibernate.connection.username ora
    #hibernate.connection.password ora
    #hibernate.connection.url jdbc:oracle:thin:@localhost:1521:test

    改为
    ## Oracle

    hibernate.dialect net.sf.hibernate.dialect.Oracle9Dialect
    hibernate.dialect net.sf.hibernate.dialect.OracleDialect
    hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
    hibernate.connection.username system
    hibernate.connection.password admin
    hibernate.connection.url jdbc:oracle:thin:@172.28.122.49:1521:cpdb

    注意:@172.28.122.49为Oracle服务器的ip地址,1521为端口号

    5.在project下建立package person,在package下建立四个class,分别为:
    ①PersonModel.java

    package person;

    import java.io.Serializable;

    public class PersonModel implements Serializable {
      private Long id;
      private String name;
      private String address;
      public Long getId() {
        return id;
      }
      public void setId(Long id) {
        this.id = id;
      }
      public void setName(String name) {
        this.name = name;
      }
      public String getName() {
        return name;
      }
      public void setAddress(String address) {
        this.address = address;
      }
      public String getAddress() {
        return address;
      }

    }

    ②TestPersonModel1.java
    package person;

    import net.sf.hibernate.SessionFactory;
    import net.sf.hibernate.cfg.Configuration;
    import net.sf.hibernate.tool.hbm2ddl.SchemaExport;

    public class TestPersonModel1 {
      private static SessionFactory sessionFactory;
      public static void main(String[] args) throws Exception{
        System.out.println("start");
        Configuration conf= new Configuration().addClass(PersonModel.class);

        SchemaExport dbExport=new SchemaExport(conf);
        dbExport.setOutputFile("sql_out_lib\\sql.txt");
        dbExport.create(true, true);
      }
    }

    ③TestPersonModel2.java
    package person;

    import net.sf.hibernate.Session;
    import net.sf.hibernate.Transaction;
    import net.sf.hibernate.SessionFactory;
    import net.sf.hibernate.cfg.Configuration;

    public class TestPersonModel2 {
      private static SessionFactory sessionFactory;
      public static void main(String[] args) throws Exception{
        Configuration conf= new Configuration().addClass(PersonModel.class);

        //在表中插入第一条数据

        sessionFactory = conf.buildSessionFactory();
        Session s = sessionFactory.openSession();

        Transaction t =  s.beginTransaction();

        PersonModel p1=new PersonModel();
        p1.setName("zhaol");
        p1.setAddress("shanghai");

        //持久化
        s.save(p1);
        //数据库中已有记录
        t.commit();
        s.close();
      }
    }

    ④TestPersonModel3.java
    package person;

    import net.sf.hibernate.Session;
    import net.sf.hibernate.SessionFactory;
    import net.sf.hibernate.cfg.Configuration;
    import net.sf.hibernate.Query;

    public class TestPersonModel3 {
      private static SessionFactory sessionFactory;
      public static void main(String[] args) throws Exception{
        Configuration conf= new Configuration().addClass(PersonModel.class);

        sessionFactory = conf.buildSessionFactory();
        Session s = sessionFactory.openSession();
        PersonModel p = new PersonModel();
        Query q = s.createQuery("from PersonModel as p where p.id=1");
        p = (PersonModel) q.list().get(0);
        System.out.println(p.getName());
        s.close();
      }
    }

    其中PersonModel.java是对应数据库中字段的存储结构,TestPersonModel1.java是测试自动创建表和字段,TestPersonModel2.java是测试在表中插入记录,TestPersonModel3.java是测试从表中取得记录.

    6.编译所有的java文件

    7.好了,到最后一步了,也是最关键的一步,我们已经定义了数据库连接(hibernate.properties)
    创建了字段的存储结构(PersonModel.java),也写好了操作数据库的代码(TestPersonModel1.java~TestPersonModel3.java),接下来要做的是定义数据库中表的配置文件,因为我们的字段的存储结构文件是PersonModel.java,所以创建PersonModel.hbm.xml(注意:表的配置文件名是由[字段的存储结构文件名+.hbm.xml]构成,创建位置为project的class\person目录下(注意:数据库定义文件hibernate.properties是放在class目录下的,而表的配置文件要放在相对应的包下,我们这里的包名是person,所以就放在class\person下)

    PersonModel.hbm.xml的内容如下:
    <?xml version="1.0" encoding="GB2312"?>
    <!DOCTYPE hibernate-mapping SYSTEM "
    http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd
    " >
    <hibernate-mapping>
      <class name="person.PersonModel"
             table="zl">
        <id name="id" type="long">
          <generator class="sequence">
            <param name="sequence">ZL_ID_SEQ</param>
          </generator>
        </id>

        <property name="name"/>
        <property name="address"/>
       
      </class>
    </hibernate-mapping>

    表名为zl,里面有两个字段(name和address,对应person.PersonModel),id是一个sequence.

    总的目录结构如下图所示


    JBuilder内部结构如下:


    9.好了,配置完成,接下来运行一下吧,先运行TestPersonModel1.class,让hibernate为我们自动建立一张名为zl(内有字段name和address)的表,运行完成后的JB显示以及数据库的变化如下:




    怎么样?表是不是已经建好了,呵呵.
    接下来运行TestPersonModel2.class,让hibernate再为我们插入一条记录,运行结果如下:


    hibernate环境的配置就讲到这里,如有疑问可以和我联系:),我的QQ是81806701.

    发表于 @ 2004年11月18日 13:38:00|评论(loading...)|编辑

    新一篇: [原创]编写自定义TAG的WEB应用(JBuilderX版) | 旧一篇: [原创]在JAVA环境下建立数据库连接池

    评论

    #红客robby 发表于2004-11-27 13:00:00  IP: 218.19.59.*
    为什么你的oracle SQL*Plus 是日文的???
    #小螃蟹 发表于2004-12-01 15:29:00  IP: 61.51.156.*
    我按楼主所说,执行person.TestPersonModel1结果如下:

    D:\JBuilderX\jdk1.4\bin\javaw -classpath "E:\myApp\HiberApp\classes;E:\myApp\newApp\WEB-INF\lib\mssqlserver4v65.jar;F:\Install\mysql-connector-java-3.0.14-production\mysql-connector-java-3.0.14-production\mysql-connector-java-3.0.14-production-bin.jar;D:\JBuilderX\lib\ant.jar;D:\JBuilderX\lib\optional.jar;D:\JBuilderX\lib\jbuilder.jar;D:\JBuilderX\lib\xercesImpl.jar;D:\JBuilderX\lib\xmlParserAPIs.jar;D:\hibernate2.1.6\hibernate2.jar;D:\hibernate2.1.6\lib\ant-1.5.3.jar;D:\hibernate2.1.6\lib\ant-optional-1.5.3.jar;D:\hibernate2.1.6\lib\c3p0-0.8.4.5.jar;D:\hibernate2.1.6\lib\cglib-full-2.0.2.jar;D:\hibernate2.1.6\lib\commons-collections-2.1.1.jar;D:\hibernate2.1.6\lib\commons-dbcp-1.2.1.jar;D:\hibernate2.1.6\lib\commons-lang-1.0.1.jar;D:\hibernate2.1.6\lib\commons-logging-1.0.4.jar;D:\hibernate2.1.6\lib\commons-pool-1.2.jar;D:\hibernate2.1.6\lib\concurrent-1.3.3.jar;D:\hibernate2.1.6\lib\connector.jar;D:\hibernate2.1.6\lib\dom4j-1.4.jar;D:\hibernate2.1.6\lib\ehcache-0.9.jar;D:\hibernate2.1.6\lib\jaas.jar;D:\hibernate2.1.6\lib\jboss-cache.jar;D:\hibernate2.1.6\lib\jboss-common.jar;D:\hibernate2.1.6\lib\jboss-jmx.jar;D:\hibernate2.1.6\lib\jboss-system.jar;D:\hibernate2.1.6\lib\jcs-1.0-dev.jar;D:\hibernate2.1.6\lib\jdbc2_0-stdext.jar;D:\hibernate2.1.6\lib\jgroups-2.2.3.jar;D:\hibernate2.1.6\lib\jta.jar;D:\hibernate2.1.6\lib\junit-3.8.1.jar;D:\hibernate2.1.6\lib\log4j-1.2.8.jar;D:\hibernate2.1.6\lib\odmg-3.0.jar;D:\hibernate2.1.6\l
    #无名小卒 发表于2005-02-01 13:05:00  IP: 218.104.7.*
    你的知识我佩服,用日版不赞成!
    #bigbear 发表于2005-02-05 16:54:00  IP: 202.38.124.*
    你的问题在这里
    <generator class="sequence">
    <param name="sequence">ZL_ID_SEQ</param>
    </generator>
    这个sequence是Oracle里面的序列,自动产生的一个唯一的号码。
    Mysql是不支持的,尝试修改为 uuix.hex
    #燈雪 发表于2005-02-20 14:52:00  IP: 219.131.62.*
    用日版,也是因為開發需要吧,,我的也全是繁體版的
    #楼主 发表于2006-04-17 09:52:00  IP: 61.138.129.*
    用你的例子了,不知道是原创不,挺好。

    但是有一个很重要的细节要强调一下:
    jbuilder project->project properties->build->Resource
    中一定要把 xml 改为copy。
    这样才会在编译的时候自动将src文件夹中的xml文件拷贝到classes文件夹里相应的目录下
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © bluesky35