在Spring MVC中动态创建模型

时间:2014-07-23 08:38:04

标签: spring spring-mvc dynamic

如您所知,Spring MVC允许您通过模型访问db表,该模型在.java中定义,并且在编译时为Spring所知。在我的情况下,这些是在里面指定的:

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="annotatedClasses">
            <value>.......model.Name1</value>
            <value>.......model.Name2</value>

</list>
    </property>

....... 问题是我需要在执行时创建一些表,因此我需要为每个表动态创建一个模型。 有可能吗?怎么样? 提前致谢, 弗朗西斯

2 个答案:

答案 0 :(得分:0)

你必须在Spring MVC中使用Hibernate;例如

  1. Hibernate示例Src / main / resources示例:

    <class name="YOUR CLASS NAME IN JAVA" table="TM_ANDROID_CATEGORIES">
    
        <id name="_id" column="category_no" type="long">
            <generator class="sequence">
                <param name="sequence">SEQUENCE NAME</param> 
            </generator>
        </id>
    
        <property name="_dirName" not-null="true">
           <column name="category_path_name" />
        </property>
    
        <property name="_nameTR" not-null="true">
           <column name="category_name" />
        </property>
    
        <property name="_nameEN" not-null="true">
           <column name="category_name_en" />
        </property>
    
        <property name="_typeNo" not-null="true">
           <column name="category_type" />
        </property>
    
        <property name="_isAdult" not-null="true">
           <column name="category_adult" />
        </property>                          
    </class>
    

  2. Java类。你必须在src / main / java

  3. 中创建类似hibernate.xml的java类
  4. 在root-context.xml中为hibernate创建bean示例:

    <bean id="_hibernateSessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    
    <property name="dataSource">
        <ref bean="_dataSourceProxy"></ref>
    </property>
    
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
            <prop key="hibernate.connection.SetBigStringTryClob">true</prop>
            <prop key="hibernate.jdbc.batch_size">0</prop>
            <prop key="hibernate.jdbc.use_streams_for_binary">false</prop>
            <prop key="javax.persistence.validation.mode">none</prop>
            <prop key="connection.useUnicode">true</prop>   
            <prop key="connection.characterEncoding">utf-8</prop>
    
    
            <prop key="hibernate.connection.defaultNChar">true</prop>
            <prop key="hibernate.show_sql">true</prop>
    
        </props>
    </property>
    
    <property name="mappingResources">
        <list>
            <value>hibernate/content/AndroidCategory.hbm.xml</value>
        </list>
    </property>
    

  5. 自动连接这个hibernate和java类

  6. 欲了解更多信息:

    CLICK HERE

答案 1 :(得分:0)

JDBC提供创建表所需的全部内容,并动态查询修改表。但是ORM将表映射到必须在使用之前编译的java类。

Spring对JDBC有很好的支持,只需阅读着名手册(当然是Spring Reference Manual)。如果你举例说明你想做什么,我可以给你更多细节。