(mywes) 他们彼此深信,是瞬间迸发的热情让他们相遇。这样的确定是美丽的,但变幻无常更为美丽 |
首先:修改你的数据库配置文件,我用的是数据库是oracle,修改oracle.xml < property environment ="env" /> 上的的配置文件得注意database.schema 属性,这个属性为数据库用户名称在此。如果不加上这个的value值 就会抛出\build.xml:148: middlegen.< property name ="database.script.file" value ="${src.dir}/sql/${name}-oracle.sql" /> < property name ="database.driver.file" value ="${lib.dir}/classes12.jar" /> < property name ="database.driver.classpath" value ="${database.driver.file}" /> < property name ="database.driver" value ="oracle.jdbc.driver.OracleDriver" /> < property name ="database.url" value ="jdbc:oracle:thin:@localhost:1521:cqeagle" /> < property name ="database.userid" value ="eagle" /> < property name ="database.password" value ="eagle" /> < property name ="database.schema" value ="eagle" /> < property name ="database.catalog" value ="" /> < property name ="jboss.datasource.mapping" value ="Oracle8" /> MiddlegenException: Middlegen successfully connected to the database, but couldn 't find any tables. Perhaps the specified schema or catalog is wrong? -Or maybe there aren't any tables in the database at all? 这个异常,在就是修改build.xml文件。搜索--(entity) 改成你自己的文件路径到oracle.xml。 搜索--(airline) 把它的值改成HibernateSample 搜索---(name=build.gen-src.dir) 指向你自己的输出地址:我的是../../src 在查找destination 修改 <hibernate
destination="${build.gen-src.dir}" package="org.eagle.hibernate" genXDocletTags="true" genIntergratedCompositeKeys="false" javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper" /> 用MiddleGen和Hibernate-Extension自动生成Hibernate文件在应用中,Hibernate可以把数据库表对象化,其中重要的文档就是VO(虚拟对象)和*.hbm.xml,这两个文件是一一对应的,数据库中每个表都映射成一个VO,即一个JavaBean,而后者负责记录对象到数据库的映射。所以要使用Hibernate,首先就应该生成这两种文件。我们用自动工具来生成。
在这之前先描述一下部署的位置,作为Web应用,要部署Hibernate,应把hibernate.cfg.xml放到classes目录中,注意其中不再包含连接数据库的内容,同时log4j.properties文档也放在这里(类的根目录);把VO和hbm.xml文档打包后放到lib目录中;最后在server.xml中配置该Web应用,并加上数据库的连接。 用MiddleGen可以从数据库中读取该用户的所有表结构,生成*.hbm.xml,然后可以利用Hibernate-Extension把xml转成对应的JavaBean(VO)。由于这两个工具都针对Hibernate2开发,所以要进行一些修改和自定义的设置。 MiddleGen要做的修改包括:修改数据库的配置文件,注意database.schema要填入Oracle的用户名才可以;修改ant使用的build.xml,主要是改变build.gen-src.dir属性和hibernate标签中的package,这样可以在指定目录直接生成。由于该文件太大,还涉及到许多其他内容,以后再详述。如果只用到生成hbm的功能,只需要键入“ant Middlegen”即可。 Hibernate-Extension的修改主要集中在对Hibernate3的适应。修改所有类的路径,以org开头;修改CompositeUserType和UserType的路径;修改StringHelper类中的常数参量;有一个类找不到,去掉好像也没有什么关系,程序中用@@@注明;在环境设置文件中加入新的hibernate-extension的jar,或替换旧的,jar中放入log4.properties。执行语句hbm2java $hbm文件地址$ --output=$目的路径$,注意包名的路径不需要。 最后应该让hbm文件和java文件在同一个目录中,即java文件的包名。 |