Mybatis如何在xml

时间:2015-12-01 06:56:23

标签: java mysql spring mybatis

之前,我使用

<select id="queryUser" parameterType="userInfo">
    select * from uc_login_${tableSuffix}
</select>

userInfo:{
    private String tableSuffix;
}

我用tableSuffix创建userInfo,如

new DateTime().getYear() + "_" + new DateTime().getMonthOfYear();

现在我从uc_login_nowYear_nowMonth(uc_login_2015_12)中选择。 现在,我不想自己创建tabkeSuffix,我希望Mybatis帮助我在xml中动态创建sql。 我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决这个问题的方法。 我找到了一个问题:question

所以,我为createSuffix创建一个类似

的工具
 TimeUtil:
 public static String getLoginTableSuffix(){
    if(DateTime.now().getMonthOfYear()<10){
        return DateTime.now().getYear()+"_0"+DateTime.now().getMonthOfYear();
    }else{
        return DateTime.now().getYear()+"_"+DateTime.now().getMonthOfYear();
    }

}

我配置了像我这样的spring-dao.xml

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation" value="classpath:mybatis-config.xml" />
    <property name="configurationProperties">
        <props>
            <prop key="LoginTableSuffix">#{new com.qunar.secteam.basis.web.util.TimeUtil().getLoginTableSuffix()}</prop>
        </props>
    </property>
</bean>

然后,我在我的mybatis中使用这个Param:

select * from uc_login_${LoginTableSuffix}

,所以它可能会解决我的问题,但不是很好