• MyBatisSpring整合示例


    今日公司新项目计划采用MyBatis与Spring3,网上搜索一圈,发现了MyBatis提供了一个支持Spring3容器的jar包,于是取下用之,大概的写了一个小例子,供大家参考,不足之处,还望指出。
    web.xml
    Java代码  收藏代码
    1. <servlet>  
    2.     <servlet-name>Dispatcher</servlet-name>  
    3.     <servlet-class>  
    4.         org.springframework.web.servlet.DispatcherServlet  
    5.     </servlet-class>  
    6.     <init-param>  
    7.         <param-name>contextConfigLocation</param-name>  
    8.         <param-value>  
    9.             classpath:spring_config/applicationContext-mvc.xml  
    10.         </param-value>  
    11.     </init-param>  
    12. </servlet>  
    13. <servlet-mapping>  
    14.     <servlet-name>Dispatcher</servlet-name>  
    15.     <url-pattern>*.do</url-pattern>  
    16. </servlet-mapping>  

    Spring配置
    Java代码  收藏代码
    1. <!--   
    2.     使用SqlSessionFactoryBean工厂产生SqlSessionFactory对象,  
    3.      方便后期注入Dao   
    4. -->  
    5. <bean id="sqlSessionFactory"    
    6.       class="org.mybatis.spring.SqlSessionFactoryBean">  
    7.     <property name="dataSource" ref="dataSource" />  
    8.     <property name="configLocation"   
    9.               value="classpath:mybatis_config/Configuration.xml">  
    10.     </property>  
    11. </bean>  
    12.   
    13. <!-- 会自动将basePackage中配置的包路径下的所有带有@Mapper标注的Dao层的接口生成代理,替代原来我们的Dao实现。-->  
    14. <bean         
    15.      class="org.mybatis.spring.annotation.MapperScannerPostProcessor">  
    16.     <property name="sqlSessionFactoryBeanName"   
    17.               value="sqlSessionFactory" />  
    18.     <property name="basePackage" value="com.demo.dao" />  
    19. </bean>  
    20.   
    21. <bean name="transactionManager"   
    22.       class="org.springframework.jdbc.  
    23.              datasource.DataSourceTransactionManager">     
    24.     <property name="dataSource" ref="dataSource"></property>  
    25. </bean>  
    26.   
    27. <!--Spring AOP 2.0 的方式配置事务,这个就不用多解释了吧!-->  
    28. <tx:advice id="txAdvice" transaction-manager="transactionManager">  
    29.     <tx:attributes>  
    30.         <tx:method name="delete*"   
    31.                    propagation="REQUIRED" read-only="false"   
    32.               rollback-for="java.lang.Exception"   
    33.                    no-rollback-for="java.lang.RuntimeException"/>  
    34.         <tx:method name="find*"   
    35.                    propagation="SUPPORTS"/>  
    36.     </tx:attributes>  
    37. </tx:advice>  
    38.       
    39. <aop:config>  
    40.     <aop:pointcut id="pc"   
    41.          expression="execution(* *.*.*(..))" />  
    42.     <aop:advisor pointcut-ref="pc" advice-ref="txAdvice" />  
    43. </aop:config>  

    最后看一下我的Dao的接口的写法
    Java代码  收藏代码
    1. /** 
    2.  * 这里的@Mapper就是上面所讲的Mapper扫描器中所需要的配置,会自动生成代理对象。 
    3.  * 注意,接口中的方法名称要和对应的MyBatis映射文件中的语句的id值一样,因为生成的 
    4.  * 动态代理,会根据这个匹配相应的Sql语句执行。另外就是方法的参数和返回值也需要注 
    5.  * 意。接口中的方法如何定义,对应的MyBatis映射文件就应该进行相应的定义。 
    6.  * 最后,标注中的userDao是用来作为Spring的Bean的id(或name)进行使用的,方便我  
    7.  * 们在Service层进行注入使用。 
    8. */  
    9. @Mapper("userDao")  
    10. public interface UserDao {  
    11.     public void insertUser(User user);  
    12.     public void updateUser(User user);  
    13.     public void deleteUser(Long uid);  
    14.     /** 
    15.      * 进行模糊查询 
    16.      */  
    17.     public List<User> getAllUser(Map<String,Object> likeCondition);  
    18.     public User getUser(Long uid);  
    19. }  

    至此,使用MyBatis-Spring包的基本配置就结束了。
    有什么表述不清的地方还望大家指出,如有需要更多信息,请留言,谢谢!

    更新:上传相关工程附件,具体演示使用方法。。。。。。。。。

    12年1月30日上传DEMO示例,附件中的bigdt.rar
    一级相关jar包,附件中的other.zip和spring_iBATIS.zip

    分享到:
    评论
    8 楼 c__06 2011-12-26   引用
    把整个工程放上来!
    7 楼 qq308560726 2011-07-15   引用
    不能跑啊大大在在大八22222222222222222
    6 楼 zhouxianglh 2011-06-22   引用
    就算不配AOP,UserDao 也会被事务管理,AOP配了,也不能管理事务.如何才能上AOP来管理事务呢?
    5 楼 wq611403 2011-05-05   引用
    有相应的LIB吗
    4 楼 Rong_it 2011-01-21   引用
    SQL mapper 不同 如果里面映射的SQL 对应标签ID重复 必须用到namespace namespace怎么加到映射中啊?
    3 楼 yanxunjian 2010-12-09   引用
    怎么没有 LIB 呢?
    2 楼 lunzuo 2010-12-08   引用
    有代码没   我配置后  dao  空指针啊
    1 楼 yaogaoyu 2010-12-03   引用
    能更详细一点吗?比如ibatis的配置文件,映射文件,映射类等。。
  • 相关阅读:
    qemu-kvm虚拟化——内存
    Virtualization and Performance: Understanding VM Exits
    Linux日志文件
    Linux那些让你虎躯一震的命令
    Linux命令——watch
    Linux kernel buffer ring
    Linux命令——dmesg
    Linux命令——systemctl
    Linux命令——taskset
    /sys 和 /dev 区别
  • 原文地址:https://www.cnblogs.com/lexus/p/2344737.html
Copyright © 2020-2023  润新知