难道大家都不用hibernate?????

解决方案 »

  1.   

    解开后在samples\config\database目录下选一个你用的数据库
    修改连接参数。
    回到samples目录
    在命令窗口执行ant
    弹出界面,选hibernate 
    Generate代码后
    退出,然后在命令行下执行 ant hbm2java
    可生成POJO 
    生成的东西在build/gen-src下
      

  2.   


     usabcd(9号公路上的3名共军) ;怎麼用帶有xdoclet的pojo生成影射文件?
    我可以開貼給你分.
      

  3.   

    <taskdef name="middlegen"
                classname="middlegen.MiddlegenTask"
                classpathref="project.classpath"
                />        <middlegen appname="${name}"
                prefsdir="${src.dir}"
                gui="${gui}"
                databaseurl="${database.url}"
                initialContextFactory="${java.naming.factory.initial}"
                providerURL="${java.naming.provider.url}"
                datasourceJNDIName="${datasource.jndi.name}"
                driver="${database.driver}"
                username="${database.userid}"
                password="${database.password}"
                >            <hibernate destination="${build.gen-src.dir}"
                    package="${name}.hibernate"
                    genXDocletTags="false"
                    genIntergratedCompositeKeys="false"
                    javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"/>        </middlegen>
      

  4.   

    eclipse有一个插件,可以自动进行映射
      

  5.   

    用惯了idea,虽然也hibernate plugin, 但好像用不了,只能用ant,也很方便
      

  6.   


    老兄,试试这个。我该论坛上copy下来的。ant配置
    下载ant,解压
    将ant考到c:跟目录
    环境变量里加上ANT_HOME=c:\ant
    PATH=c:\ant\bin;
    进入命令行模式,输入: ant
    如:
    C:\>ant
    Buildfile : build.xml does not exist!
    Build failed
    出现该显示,说明ant已配置成功************************************
    Middlegen hibernate配置
    ************************************
    是hibernate的O/R Mapping工具
     http://hibernate.bluemars.net/98.html
    可以生成*.hbm.xml文件,是hibernate所需的映射文件
    下载Middlegen Hibernate,解压,如D:\hiber\Middlegen-Hibernate-r1进入目录,
    【配置数据库,以MS SQLSERVER为例,JBDC驱动为JSQL Connect(www.j-netdirect.com)】
    1、进入/config/database/目录
    2、将JSQLConnect.jar驱动考到/lib/目录
    3、编辑mssql.xml文件,如下
    <property name="database.script.file" value=""/>
    <property name="database.driver.file" value="${lib.dir}/JSQLConnect.jar"/>
    <property name="database.driver" value="com.jnetdirect.jsql.JSQLDriver"/>
    <property name="database.url" value="jdbc:JSQLConnect://数据库服务器名或IP/database=要操作的数据库名"/>
    <property name="database.userid" value="数据库用户名"/>
    <property name="database.password" value="数据库密码"/>
    <property name="database.schema" value=""/>
    <property name="database.catalog" value=""/>
    <property name="jboss.datasource.mapping" value="MS SQLSERVER2000"/>【编辑Middlegen hibernate配置】
    1、编辑build.xml
    2、修改数据库默认文件,找到这行,大概在22行左右
    <!DOCTYPE project [
    <!--ENTITY database SYSTEM "file&:./config/database/hsqldb.xml"-->//原内容,注解掉
    <!ENTITY database SYSTEM "file&:./config/database/mssql.xml">//加上
    ]>3、编辑输出的根目录名,找到该行,大概在30行左右
    <!--property name="name" value="airline"/-->//原内容,注解掉
    <property name="name" value="com"/>//加上,value为你想要的,如com4、编辑输出的包名,找到该行,大概在210行左右
    <!--hibernate
    destination="${build.gen-src.dir}"
    package="${name}.hibernate"
    /-->//原内容,注解掉
    <hibernate
    destination="${build.gen-src.dir}"
    package="${name}.test"
    />//加上,生成的xml文件里,会以com.test作为你的package
    输出目录为/build/gen-src/com/test/*.hbm.xml(*为对应的表,命名为你自己所定义的名称)5、定义输出的目录,找到该行,在文档最后
    <target name="validate">
    <xmlvalidate failonerror="no" lenient="no" warn="yes">
       <fileset dir="${build.gen-src.dir}/com/test" includes="*.xml" />改成你要输出的目录结构,最好以你的包的结构作为目录结构
    </xmlvalidate>
    </target>6、在连接Sql server时,提示数据库连接成功,但说没有表,找到该行
    <middlegen
    appname="${name}"
    prefsdir="${src.dir}"
    gui="${gui}"
    databaseurl="${database.url}"
    initialContextFactory="${java.naming.factory.initial}"
    providerURL="${java.naming.provider.url}"
    datasourceJNDIName="${datasource.jndi.name}"
    driver="${database.driver}"
    username="${database.userid}"
    password="${database.password}"schema="${database.schema}"//去掉
    catalog="${database.catalog}" //去掉,这样就可以了
    >【配置完毕】
    配置完毕后,在根目录下运行ant
    则会出现一个可视化的操作界面,如图
    默认会根据表名和字段名对应生成相应的名称,当然你也可以自己定义,对应没问题,则可以点击【Generate】,在可发现
    /build/gen-src/com/test/*.hbm.xml,会生成相应XML文件************************************
    hibernate-extensions-2.0应用配置
    ************************************
    这是hibernate的工具,/tools下有3个工具
    class2hbm.bat 根据你自己对应表所写的java文件,生成相应的*.hbm.xml文件
    ddl2hbm.bat 根据你的数据库表,自动生成*.hbm.xml和*.java文件(如果不需要详细的配置,建议用这种方式生成*.xml和*.java文件)
    hbm2java.bat 根据*.hbm.xml生成相应的*.java文件用之前,首先得用ant编译
    【注意的地方】
    build.xml
    <property name="hibernate-core.home" value="../../hibernate-2.0"/>//找到该行,40行左右
    value为你得hibernate解压目录【编译完毕】
    编译完的文件存放在/tools/target/hibernate-tools-2.0/
    现在可以用编译完的执行文件进行映射转化了【应用】
    hbm2java.bat
    1、进入命令行模式,进入hibernate-tools-2.0目录,进入/bin
    2、首先执行setenv.bat,设置一下环境变量,运行前,先检查一下setenv.bat文件,用文本编辑器打开,找到如下行:
    set JDBC_DRIVER=C:\Progra~1\SQLLIB\java\db2java.zip;C:\mm.mysql-2.0.14\mm.mysql-2.0.14-bin.jar;D:\j2sdk1.4.1\lib\JSQLConnect.jar
    //将你的JDBC驱动添加进去
    rem set HIBERNATE_HOME=..\..\hibernate-2.0//原来的
    set HIBERNATE_HOME=D:\hiber\hibernate-2.0//改成你当前hibernate-2.0所在目录
    3、执行hbm2java.bat D:\hiber\com\test\*.xml //后面所跟的是你用Middlegen Hibernate所生成的*.hbm.xml文件ddl2hbm.bat
    1、2步骤如hbm2java
    3、运行ddl2hbm,会弹开一个图形界面
    4、在Connection面板里,输入JDBC驱动的相关信息,如:
    DriverClass:com.jnetdirect.jsql.JSQLDriver
    ConnectionUrl:jdbc:JSQLConnect://服务器名/database=数据库名&user=用户名&password=密码(注意这是我所用的驱动支持将用户名和密码放在后面这种格式)
    UserName:用户名(我的ConnectionUrl已填写该信息,这里可不填)
    PassWord:密码(我的ConnectionUrl已填写该信息,这里可不填)
    5、在Code面板里,可以定义包名
    6、在Output面板里,可以定义文件输出路径
    7、设置好后,进入Table面板,点击tables…按钮,如果数据库连接成功,则会弹开一个小面板,选择你要映射的数据库,点击确定即可,此时
    Table面板里就会显示该数据库的所有表格,选择你需要的表,点击“Generate”,则在输出路径里生成*.hbm.xml和*.java文件【注意的地方】
    因为Sqlserver不支持hibernate里的sequences类型,在测试代码时会出错,你打开生成的*.hbm.xml

    <id column="test_id" name="id" type="java.lang.Long">
    <generator class="identity"/>//这里改成identity即可
    </id>
      

  7.   

    如果你用的是eclipse,那么有个不错的插件,它能自动生成代码和hbm文件。