zoukankan      html  css  js  c++  java
  • mybatis学习坑路

    当mappers中设置package别名之后,如果

    这两个名字不一样,就会报错invalid bound statement (not found)



    这个不是绝对的,上面原因是因为,(举个例子 转自简书)只要按照resuorces/cn/itcat/mybatis/mapper这样的以 / 作为分割符的方式创建mybatis的映射文件包路径, 就能完成与 java/ 下的同名包的合并;无需其他配置;也就是说无需再pom文件中做其他配置;



    后续的开发中,用到了

            <!-- 3.配置SqlSessionFactory对象 -->
    	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    		<!-- 注入数据库连接池 -->
    		<property name="dataSource" ref="dataSource" />
    		<!-- 配置MyBaties全局配置文件:mybatis-config.xml -->
    		<property name="configLocation" value="classpath:mybatis-config.xml" />
    		<!-- 扫描entity包 使用别名 -->
    		<property name="typeAliasesPackage" value="com.imooc.myo2o.entity" />
    		<!-- 扫描sql配置文件:mapper需要的xml文件 -->
    		<property name="mapperLocations" value="classpath:mapper/*.xml" />
    	</bean>
    

    这种呢就是,举个例子,下面是网友代码

        <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="datasource"></property>
            <property name="typeAliasesPackage" value="com.fan.entity"/>
            <!-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。  
            *是个通配符,代表所有的文件,**代表所有目录下 -->   
            <property name="mapperLocations" value="classpath:com/fan/mapper/*.xml" /> 
       
            <!--也可以引入mybatis配置文件 
            <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"></property> -->
        </bean>
        <!-- 通过扫描的模式,扫描目录在com.lanyuan.mapper目录下的mapper-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.fan.mapper"></property>
        </bean>
    

    结论是:如果Mapper.xml与Mapper.class在同一个包下且同名,spring扫描Mapper.class的同时会自动扫描同名的Mapper.xml并装配到Mapper.class。
    如果Mapper.xml与Mapper.class不在同一个包下或者不同名,就必须使用配置mapperLocations指定mapper.xml的位置。
    此时spring是通过识别mapper.xml中的 namespace的值来确定对应的Mapper.class的。













    种一棵树最好的时间是十年前,其次是现在。
  • 相关阅读:
    linux下ssh端口的修改和登录
    linux找回密码
    XAMPP命令之LAMPP
    VirtualBox 复制vdi文件和修改vdi的uuid
    探讨PHP页面跳转几种实现技巧
    CSS盒模型和margin重叠
    8--数组旋转
    9--斐波那契数列
    7--动态规划
    6--树的遍历
  • 原文地址:https://www.cnblogs.com/islch/p/12769081.html
Copyright © 2011-2022 走看看