Mybatis映射关系mybatis核心配置文件

目录

1.Mybatis映射关系

1.1一对一映射之resultType

1.2resultMap处理映射关系

2.mybatis核心配置文件

[1. properties(属性)](#1. properties(属性))

[2. settings(设置)](#2. settings(设置))

3.typeAliases(类型别名)

4.environments(环境配置)

5.mappers(映射器)


1.Mybatis映射关系

1.1一对一映射之resultType

XML 复制代码
   <!--类的全路径名 包名+类名 com/rocky/mapper/UserMapper.java-->
    <select id="queryUserAll" resultType="com.rocky.pojo.User">
        select * from user;
    </select>


//因为简化类路径名称了可以写user 不区分大小写
   <select id="queryUserAll" resultType="userr">
        select * from user;
    </select>

  <!--2:简化类的全路径名称 typeAliases类型别名  alias别名
      如果不设置alias属性,那么默认就是类名 且不区分大小写
      package name属性:配置包的路径。使用类名并且忽略大小写
    -->
    <typeAliases>
<!--        <typeAlias type="com.rocky.pojo.User"></typeAlias>-->
        <package name="com.rocky.pojo"/>
    </typeAliases>

1.2resultMap处理映射关系

XML 复制代码
 <!--resultMap是专门处理数据列和javaBean字段之间的映射关系的
        id 指的是resultMap的id  type当前的javaBean 将来用里面的字段去映射数据表的列
        <id> 专门用来映射数据表的id和javaBean字段的映射
        <result property:JavaBean中的字段   column=列>
    -->
    <resultMap id="queryAll" type="Employee">
        <id property="a" column="id"></id>
        <result property="b" column="emp_name"></result>
        <result property="c" column="emp_pwd"></result>
        <result property="d" column="dept_id"></result>
    </resultMap>

    <select id="getEmployeeAll" resultMap="queryAll">
        select id,emp_name, emp_pwd ,dept_id from employee;
    </select>

2.mybatis核心配置文件

MyBatis 核心配置文件整体结构

注意:在编写配置是要严格按照以下顺序排列,不然会报错

MyBatis的配置文件中主要包括以下配置:

properties(属性)

settings(设置

typeAliases(类型别名)

typeHandlers(类型处理器)

objectFactory(对象工厂)

plugins(插件)

environments(环境配置)

transactionManager(事务管理器):声明事物管理器

dataSource(数据源)

databaseIdProvider(数据库厂商标识)

mappers(映射器)

1. properties(属性)

加载对应的配置文件

XML 复制代码
 <!--1:引入外部的配置文件-->
    <properties resource="jdbc.properties"></properties>

2. settings(设置)

:配置Mybatis的一些设置,如:log4j日志信息等

XML 复制代码
<settings>
     <!--name属性里面mybatis提供了一个属性可以让我们将数据表中的列和JavaBean中的字段映射
     映射规则:去掉数据列的下划线之后的首字母大写
     mapUnderscoreToCamelCase 忽略下划线并且下划线后的首字母大写。
     value="true" 打开映射关系
        -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

3.typeAliases(类型别名

:扫描对应包下面的实体类,在xml文件中用小写表示就好

第⼀种⽅式:typeAlias

alias是⼤⼩写不敏感的,type属性:指定给哪个类起别名. alias属性:别名

XML 复制代码
<typeAliases>
 <typeAlias type="com.hu.pojo.Car" alias="Car"/>
</typeAliases>

第⼆种⽅式:package

如果⼀个包下的类太多,每个类都要起别名,会导致typeAlias标签配置较多,所以mybatis⽤提供 package的配置⽅式,只需要指定包名,该包下的所有类都⾃动起别名,别名就是简类名。并且别名不 区分⼤⼩写。

XML 复制代码
<!--2:简化类的全路径名称 typeAliases类型别名  alias别名
      如果不设置alias属性,那么默认就是类名 且不区分大小写
      package name属性:配置包的路径。使用类名并且忽略大小写-->
    <typeAliases>
<!--        <typeAlias type="com.rocky.pojo.User"></typeAlias>-->
        <package name="com.rocky.pojo"/>
    </typeAliases>

4.environments(环境配置

:配置数据库环境,可以配置多个,最后生效的为default

XML 复制代码
<!--配置数据库的环境-->
    <environments default="dev">
        <!--开发人员去使用-->
        <environment id="dev">
            <!--数据库事务管理的方式 默认使用JDBC-->
            <transactionManager type="JDBC"/>
            <!--dataSource 数据库连接池  POOLED-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <!--username这个属性默认 是去找环境变量中的username-->
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

5.mappers(映射器)

:扫描对应包下面的mapper.xml文件

SQL映射⽂件的配置⽅式包括四种:

  • resource:从类路径中加载
  • url:从指定的全限定资源路径中加载
  • class:使⽤映射器接⼝实现类的完全限定类名
  • package:将包内的映射器接⼝实现全部注册为映射器

resource:这种⽅式是从类路径中加载配置⽂件,所以这种⽅式要求SQL映射⽂件必须放在resources⽬录下或其⼦ ⽬录下。

XML 复制代码
<mappers>
 <mapper resource="com/hu/mapper/AuthorMapper.xml"/>
</mappers>

url:这种⽅式显然使⽤了绝对路径的⽅式,这种配置对SQL映射⽂件存放的位置没有要求,随意。

XML 复制代码
<mappers>
 <mapper url="file:///var/mappers/AuthorMapper.xml"/>
</mappers>

class:如果使⽤这种⽅式必须满⾜以下条件: SQL映射⽂件和mapper接⼝放在同⼀个⽬录下。 SQL映射⽂件的名字也必须和mapper接⼝名⼀致。

XML 复制代码
<!-- 使⽤映射器接⼝实现类的完全限定类名 -->
<mappers>
 <mapper class="org.mybatis.builder.AuthorMapper"/>
 <mapper class="org.mybatis.builder.BlogMapper"/>
 <mapper class="org.mybatis.builder.PostMapper"/>
</mappers>

将CarMapper.xml⽂件移动到和mapper接⼝同⼀个⽬录下: 在resources⽬录下新建:com/powernode/mybatis/mapper【这⾥千万要注意:不能这样新建 com.powernode.mybatis.dao】

将CarMapper.xml⽂件移动到mapper⽬录下 修改mybatis-config.xml⽂件

XML 复制代码
<mappers>
 <mapper class="com.powernode.mybatis.mapper.CarMapper"/>
</mappers>

Package:如果class较多,可以使⽤这种package的⽅式,但前提条件和上⼀种⽅式⼀样。

XML 复制代码
<mappers>
<!--      <mapper resource="com/rocky/mapper/UserMapper.xml"/>-->
        <!--如果你想在mapper节点下面使用package
            1:在src下面必须有接口实现
            2:mapper配置文件的路径名称必须和src下面的路径名称一致
        -->
        <package name="com/rocky/mapper"/>
    </mappers>
相关推荐
xieliyu.15 小时前
Java算法精讲:双指针(三)
java·开发语言·算法
CryptoPP16 小时前
快速对接东京证券交易所API数据:实战指南与代码示例
开发语言·人工智能·windows·python·信息可视化·区块链
ZC跨境爬虫16 小时前
跟着 MDN 学JavaScript day_7:数学运算与逻辑判断实战测试
开发语言·前端·javascript·学习·ecmascript
阳区欠18 小时前
【LangChain】LLM基础介绍
开发语言·python·langchain
Jinkxs18 小时前
Java 跨域14-Java 与区块链(Hyperledger)集成
java·开发语言·区块链
晨曦中的暮雨19 小时前
Golang速通(Javaer版)
java·开发语言·后端·golang
小小编程路19 小时前
Python 还有容器类型互转、进制转换、字符编码转换
开发语言·windows·python
qeen8719 小时前
【C++】类与对象之类的默认成员函数(二)
android·c语言·开发语言·c++·笔记·学习
CRMEB系统商城19 小时前
CRMEB多商户系统(Java)v2.3公测版发布
java·开发语言·人工智能·小程序·开源·php
动能小子ohhh20 小时前
DocForge平台的设计与开发--文件上传接口的实现
开发语言·人工智能·python·langchain·ocr·fastapi