今日公司新项目计划采用MyBatis与Spring3,网上搜索一圈,发现了MyBatis提供了一个支持Spring3容器的jar包,于是取下用之,大概的写了一个小例子,供大家参考,不足之处,还望指出。
web.xml
Spring配置
最后看一下我的Dao的接口的写法
至此,使用MyBatis-Spring包的基本配置就结束了。
有什么表述不清的地方还望大家指出,如有需要更多信息,请留言,谢谢!
更新:上传相关工程附件,具体演示使用方法。。。。。。。。。
12年1月30日上传DEMO示例,附件中的bigdt.rar
一级相关jar包,附件中的other.zip和spring_iBATIS.zip
web.xml
- <servlet>
- <servlet-name>Dispatcher</servlet-name>
- <servlet-class>
- org.springframework.web.servlet.DispatcherServlet
- </servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>
- classpath:spring_config/applicationContext-mvc.xml
- </param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>Dispatcher</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping>
Spring配置
- <!--
- 使用SqlSessionFactoryBean工厂产生SqlSessionFactory对象,
- 方便后期注入Dao
- -->
- <bean id="sqlSessionFactory"
- class="org.mybatis.spring.SqlSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="configLocation"
- value="classpath:mybatis_config/Configuration.xml">
- </property>
- </bean>
- <!-- 会自动将basePackage中配置的包路径下的所有带有@Mapper标注的Dao层的接口生成代理,替代原来我们的Dao实现。-->
- <bean
- class="org.mybatis.spring.annotation.MapperScannerPostProcessor">
- <property name="sqlSessionFactoryBeanName"
- value="sqlSessionFactory" />
- <property name="basePackage" value="com.demo.dao" />
- </bean>
- <bean name="transactionManager"
- class="org.springframework.jdbc.
- datasource.DataSourceTransactionManager">
- <property name="dataSource" ref="dataSource"></property>
- </bean>
- <!--Spring AOP 2.0 的方式配置事务,这个就不用多解释了吧!-->
- <tx:advice id="txAdvice" transaction-manager="transactionManager">
- <tx:attributes>
- <tx:method name="delete*"
- propagation="REQUIRED" read-only="false"
- rollback-for="java.lang.Exception"
- no-rollback-for="java.lang.RuntimeException"/>
- <tx:method name="find*"
- propagation="SUPPORTS"/>
- </tx:attributes>
- </tx:advice>
- <aop:config>
- <aop:pointcut id="pc"
- expression="execution(* *.*.*(..))" />
- <aop:advisor pointcut-ref="pc" advice-ref="txAdvice" />
- </aop:config>
最后看一下我的Dao的接口的写法
- /**
- * 这里的@Mapper就是上面所讲的Mapper扫描器中所需要的配置,会自动生成代理对象。
- * 注意,接口中的方法名称要和对应的MyBatis映射文件中的语句的id值一样,因为生成的
- * 动态代理,会根据这个匹配相应的Sql语句执行。另外就是方法的参数和返回值也需要注
- * 意。接口中的方法如何定义,对应的MyBatis映射文件就应该进行相应的定义。
- * 最后,标注中的userDao是用来作为Spring的Bean的id(或name)进行使用的,方便我
- * 们在Service层进行注入使用。
- */
- @Mapper("userDao")
- public interface UserDao {
- public void insertUser(User user);
- public void updateUser(User user);
- public void deleteUser(Long uid);
- /**
- * 进行模糊查询
- */
- public List<User> getAllUser(Map<String,Object> likeCondition);
- public User getUser(Long uid);
- }
至此,使用MyBatis-Spring包的基本配置就结束了。
有什么表述不清的地方还望大家指出,如有需要更多信息,请留言,谢谢!
更新:上传相关工程附件,具体演示使用方法。。。。。。。。。
12年1月30日上传DEMO示例,附件中的bigdt.rar
一级相关jar包,附件中的other.zip和spring_iBATIS.zip
评论