一些mybatis使用的小知识(易错点)

标签不要匹配错误

接口和接口对应的mapper文件要匹配。namespace里一定要是全限定名。CRUD里面id要和对应接口的方法名一致。

resources的mybatis核心配置文件没有注册接口对应的mapper文件。

每一个接口的方法对应的mapper.xml文件都要再Mybatis核心配置文件里<mappers>标签里进行注册。

程序配置文件要符合规范(注意顺序要求)

-----------------------配置文件顶部---------------------------------------------------
<?xml version="1.0" encoding="UTF-8" ?> 这一部分是xml配置文件的相关配置 版本+编码集

【MyBatis的DTD约束:固定写法】
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    -----------------------配置文件顶部--------------------------------------------------

核心配置文件中的 引入标签的顺序:
      是由约束决定的 通过约束 【ctrl+鼠标左键】 可以进入 约束查看
      <!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>
      按照约束规定的顺序书写就可以   顺序应该是:
   
      1.<properties自闭合标签  resource属性/>
          a. 标签作用:引入数据库的配置文件 文件名一般是:JDBC.properties
          b. 属性值:配置文件路径(String) 由于配置文件一般放在src文件夹下 所以一般写成配置文件的名称
   
      2.<settings标签>
              <setting标签  name属性1  value属性1/>
              <setting标签  name属性2  value属性2/>
        </settings>
          a. settings标签:引入插件的配置文件(相对根标签 内部可以引入多个插件)
          b. setting 标签:引入单个插件的配置文件 在settings 标签内部 可以有多个
          	b1. name 属性:自行百度 很多属性 根据需求查找
          	b2. value 属性:自行百度 很多属性 根据需求查找
   
      3.<typeAliases标签>
             <typeAlias 自闭合标签  type属性  alias属性/>
             <package 自闭合标签 name属性/>
        </typeAliases>
          a.typeAliases 标签 : 这里是对映射配置文件中的 resultType和 parameterType 起别名,为了使用便捷【相对根标签、起别名是对于自定义的javaBean类】
          b.typeAlias 标签: 对于单个javaBean类 起别名
          	b1.type属性:从src包开始的javaBean类的路径
          	b2.alias属性:起的别名【一般是以类名为别名 首字母小写】
          c.package 标签: 因为一般情况 我们会把所有的javaBean类 都放到bean这个包下 ,所以这里提供的这个标签是对一个包下所有的javaBean类起别名
          	c.name属性:从src包开始的bean包的路径
   
    -----------------------中间间隔-----[暂时还没有配置的标签]-----------------------------
         4.typeHandlers
         5.objectFactory
         6.objectWrapperFactory
         7.reflectorFactory
         
    ----------------------中间间隔------[暂时还没有配置的标签]-----------------------------
      8.<plugins标签>
        		<plugin标签 interceptor属性></plugin>
        </plugins>
        	a.plugins标签:配置插件的相对根标签 由于可能会配置多个插件 所以需要plugins根标签包裹
        	b.plugin标签:配置单个插件的标签
        		b1. interceptor属性:值为需要配置的插件的路径
        			配置分页功能的属性值为:com.github.pagehelper.PageInterceptor 固定路径【lib直接在src下】
      9.<environments标签 default属性>
            <environment标签 id属性>
                 <transactionManager标签 type属性>
                 <dataSource标签 type属性>
                     <property标签 name属性 value属性/>
                     <property标签 name属性 value属性/>
                     <property标签 name属性 value属性/>
                     ........
                </dataSource标签>
            </environment标签>
   
            <environment标签 id属性>
                 <transactionManager标签 type属性>
                 <dataSource标签 type属性>
                     <property标签 name属性 value属性/>
                     <property标签 name属性 value属性/>
                     <property标签 name属性 value属性/>
                     ........
                </dataSource>
            </environment>
        <environments>
         a. environments标签:用来引入数据库环境的配置单元根标签【可包含多个】
             a1. default 属性:与 environment中的id属性相对应 使用哪个environment中的id属性 就代表使用哪个配置
   
         b. environment 标签:单个数据库环境引入的根标签
             b1. id属性:每一个属性的唯一标识 通过id属性的值 来找到使用的是哪个配置
   
         c. transactionManager标签:确定事务管理模式的标签
             c1. type属性:确定使用哪个事务管理模式 一共两个值:
                 JDBC:正常的commit和rollback 方式
                 MANAGE:百度查具体是什么意思
                 
         d. dataSource 标签:规定使用何种数据源的标签(连接池,第三方容器等等)【相对根标签】
             d1. type属性:具体确定数据源使用何种模式配置 一共三个值:
                 UNPOOLED:百度查含义
                 POOLED:使用连接池
                 JNDI:其他框架提供的容器
                 
         e. property 标签:配置数据源的单个配置标签 【其实就是JDBC所需要的的配置 包含:驱动配置,数据库地址,登录账号,密码等等】
                 e1.name:与JDBC的配置文件中的key一一对应 每个key对应一条property 标签语句
                 e2.value:底层获取 JDBC配置文件 对应key的值  格式是: ${变量名} 变量名为了代码的可读性一般和key是一样的
   
   -----------------------中间间隔-----[暂时还没有配置的标签]-----------------------------
     10.databaseIdProvider
   -----------------------中间间隔-----[暂时还没有配置的标签]-----------------------------
    
     11.<mappers 根标签>【基于配置文件sql语句来实现 使用这个Mappers标签中的格式】
             <mapper标签 resource属性>
        </mappers>
         a. mappers标签 :引入映射文件(sql语句的配置文件)的根标签
         b. mapper标签:mapper标签 一次有且只能有一个  使用哪一个Mapper接口 就配置哪个相对应的Mapper
             resource:引入单个映射文件的标识:与每一个映射文件自定义文件名相同【需要加后缀】
      11.<mappers 根标签> 【基于注解配置sql语句 使用这个Mappers标签中的格式】
   		<package标签 name属性/>
   </mappers>
   	a.mappers标签:解释同上
   	package属性:值是 你的数据访问层的哪个接口所在的是哪个包 需要注意的是:这里是包路径而不是文件路径 而且包路径可以不用那么精确 
   	比如 准确包路径是: com.xxx.mapper   写成 com.xxx也可以  写成 com也可以【底层通过遍历找到】

出处为:MyBatis核心配置文件的标签顺序【笔记整理】

maven资源没有导出:

解决方法可以参考我的另一篇博客
就是在pom.xml文件里添加如下代码:

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值