Mybatis文件配置及参数类型

核心配置文件 .properties
使用标签的好处:抽取配置属性值,增加配置文件代码可维护性

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test03?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--
    全局properties属性值
    resources属性值:设置外置数据库properties全局配置文件路径
    -->
    <properties resource="db.properties">
        <!--
        配置全局property属性键值key-value
        name属性:设置键
        value属性:设置值
        properties引入的外部配置文件的属性优先被读取。外部properties覆盖内部全局配置
        -->
        <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
        <property name="jdbc.url" value="jdbc:mysql://localhost:3306/test03?characterEncoding=utf8"/>
        <property name="jdbc.username" value="root"/>
        <property name="jdbc.password" value="root"/>
    </properties>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="UserMapper.xml"/>
    </mappers>
</configuration> 

typeAliases 注册别名
类型别名存在的意义:减少类全限定名的冗余。

<!--
注册别名
<typeAliases> 标签作用:为类的全限定名称,注册别名。为参数类型parameterType和返回值类型resultType写个简短的类型名称
-->
<typeAliases>
    <!--
    <typeAlias> 标签作用:注册单个别名
    type属性值:设置注册别名的类全限定名称
    alias属性值:设置别名
    -->
    <!--<typeAlias type="com.abc.pojo.User" alias="user"/>-->
    <!--
    <package>标签作用:批量注册别名
    name属性值:设置批量注册别名的pojo包路径,注册的别名为类名,不区分大小写
    -->
    <package name="com.abc.pojo"/>
</typeAliases>

有了注册的别名,在mapper.xml配置文件中,就可以使用设置的别名。

<!--
根据id查询用户信息
parameterType属性值:除了基本数据类型及其包装类,字符串,pojo实体类,还可以填写别名
resultType属性值:除了基本数据类型及其包装类,字符串,pojo实体类,还可以填写别名
别名不区分大小写
-->
<select id="findById" parameterType="int" resultType="UsER">
    select * from user where id=#{id};
</select>

mappers 文件:

<!--
<mappers>标签作用:配置映射器,加载SQL映射mapper配置文件
-->
<mappers>
    <!--
    <mapper>标签作用:加载单个SQL映射Mapper配置文件
    resource属性值:设置SQL配置Mapper文件路径
    class属性值:设置SQL配置Mapper文件全限定名,与resources写一个即可
    -->
    <!--<mapper resource="com/abc/mapper/UserMapper.xml"/>-->
    <!--<mapper class="com.abc.mapper.UserMapper"/>-->
    <!--
    <package>标签作用:批量加载SQL映射Mapper配置文件
    name属性值:设置批量加载的mapper所在包路径
    -->
    <package name="com.abc.mapper"/>
</mappers>

核心文件配置顺序:

1. properties(全局属性配置)
2. typeAliases(类型别名)
3. environments(环境集合属性对象)
    - environment(环境子属性对象)
1. mappers(映射器)

Mybatis 的参数类型及结果类型:
paramType 主要是返回查询类的信息(比如用户的信息 User)

<!--
根据用户名查询用户信息
parameterType属性值:1基本数据类型及其包装类,2字符串,3pojo实体类,4别名,5pojo实体类包装类
#{},取值可以通过点的形式取出对象中对象的成员变量值
-->
<select id="findByUsername" parameterType="QueryVo" resultType="user">
    select *
    from user where username=#{user.username};
</select>

resultType 主要是返回查询目标信息的条数 id

<!--
查询用户总记录数
resultType属性值:1、pojo实体类-返回实体类,返回集合均可。2、基本数据类型及其包装类...
-->
<select id="countUsers" resultType="int">
    select count(*)
    from user;
</select>```

`resultMap` 自定义结果集映射,替代 resultType 自动结果集映射

```xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.abc.mapper.OrderMapper">
    <!--
    <resultMap>标签作用:自定义查询结果集映射
    id属性值:resultMap唯一标识
    type属性值:设置resultMap映射结果类型:可以写别名,也可以写类全限定名称
    -->
    <resultMap id="findAllResultMap" type="order">
        <!--
        <id>标签作用:映射主键
        property属性值:指定Order实体类中的成员变量
        column属性值:指定查询结果集中的列名
        -->
        <id property="id" column="id"/>
        <!--
        <result> 标签作用:映射对象普通成员变量
        property属性值:指定Order实体类中的成员变量
        column属性值:指定查询结果的列名
        -->
        <result property="userId" column="user_id"/>
        <result property="number" column="number"/>
        <result property="createtime" column="createtime"/>
        <result property="note" column="note"/>
    </resultMap>

    <!--
    查询所有订单信息
    resultMap属性值:设置自定义查询结果映射配置的id,也就是resultMap的id
    -->
    <!--<select id="findAll" resultType="order">-->
    <select id="findAll" resultMap="findAllResultMap">
        select *
        from `order`;
    </select>
</mapper>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值