如何把SSH里的Hibernate换成iBatis ?
我现在有一个现成的SSH的例子已经跑通了,
我想把Hibernate换成iBatis ,咋整?
[解决办法]
工作量好大的
[解决办法]
ibatis可看成對SQL作OR-Mapping,所以最大的問題會在於原先用 hibernate寫在程序理的HQL,
如何抽離出來。
所以如果要設計成可抽換架構,最好從SQL與程式分離開始設計。
[解决办法]
如果直接手动改,必然改动量很大。你搜索一下看看有没有相关工具,可以协助你自动处理很多mapping的转换。但是依然会修改很多东西。
[解决办法]
这种后期改框架的肯定很烦,
不是三言两语能解决的。
[解决办法]
工作量比重新做不少多少!~~~~~~~
[解决办法]
DAO层全部换掉多做成ibatis的sqlmap映射,spring里面关于hibernate的配置都改为ibatis的,如果系统不大的话倒也是很快的。
[解决办法]
1.先换数据源从hibernate换成ibatis
<!-- 加载数据源配置文件 --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:data-source.properties </value> </list> </property> </bean> <!-- 定义 CP平台mysql数据源 --> <bean id="xxSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${xx_DriverClassName}" /> <property name="url" value="${xx_url}" /> <property name="username" value="${xx_username}" /> <property name="password" value="${xx_password}" /> <property name="initialSize" value="${xx_initialSize}" /> <property name="maxActive" value="${xx_maxActive}" /> <property name="maxWait" value="${xx_maxWait}" /> <property name="maxIdle" value="${xx_maxIdle}" /> <property name="minIdle" value="${xx_minIdle}" /> <property name="removeAbandoned" value="${xx_removeAbandoned}" /> <property name="removeAbandonedTimeout" value="${xx_removeAbandonedTimeout}" /> </bean> <!-- 为每个数据源单独定义 SqlSessionFactory --> <bean id="xxSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="xxSource" /> </bean> <!-- 为每个数据源单独定义 SqlMapper --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="路径1,路径2" /> <property name="sqlSessionFactory" ref="xxSqlSessionFactory" /> </bean>
[解决办法]