我现在有一个现成的SSH的例子已经跑通了,
我想把Hibernate换成iBatis ,咋整?
------解决方案--------------------------------------------------------
工作量好大的
------解决方案--------------------------------------------------------
ibatis可看成對SQL作OR-Mapping,所以最大的問題會在於原先用 hibernate寫在程序理的HQL,
如何抽離出來。
所以如果要設計成可抽換架構,最好從SQL與程式分離開始設計。
------解决方案--------------------------------------------------------
如果直接手动改,必然改动量很大。你搜索一下看看有没有相关工具,可以协助你自动处理很多mapping的转换。但是依然会修改很多东西。
------解决方案--------------------------------------------------------
这种后期改框架的肯定很烦,
不是三言两语能解决的。
------解决方案--------------------------------------------------------
工作量比重新做不少多少!~~~~~~~
------解决方案--------------------------------------------------------
DAO层全部换掉多做成ibatis的sqlmap映射,spring里面关于hibernate的配置都改为ibatis的,如果系统不大的话倒也是很快的。
------解决方案--------------------------------------------------------
1.先换数据源从hibernate换成ibatis
- Java code
<!-- 加载数据源配置文件 --> <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>
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
没必全换。两个配合就行了。
hibernate是增删改。
mybatis作查询。
------解决方案--------------------------------------------------------
[/WEB-INF/applicationContext.xml]路径写错了吧,没找到文件