从01开始 从01开始
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)
  • JavaSE

  • JavaSenior

  • JavaEE

  • JavaWeb

  • Spring

  • 主流框架

    • Redis

    • Mybatis

      • Mybatis介绍
      • Mybatis入门案例
      • Mybatis入门案例-注解
      • Mybatis入门案例-实现类
      • Mybatis内部执行原理概述
      • 实现一个微型的Mybatis-配置文件版
      • 实现一个微型的Mybatis-注解版
      • Mybatis实现CRUD
      • Mybatis中传递对象参数
      • Mybatis中的列名和属性名的映射
      • Mybatis实现DAO层的开发
      • Mybatis实现类的执行过程-查询方法
      • properties标签的使用及细节
      • typeAliases标签和package标签
        • typeAliases
        • package标签
        • 源码
      • Mybatis连接池和事务
      • Mybatis与JNDI
      • Mybatis中的动态SQL
      • Mybatis多表查询
      • Mybatis中的多对多查询
      • Mybatis的延迟加载
      • Mybatis的缓存
      • Mybatis的注解开发-CRUD
      • Mybatis的注解开发-多表查询
      • Mybatis
    • Lucene

    • Elasticsearch

    • MQ

    • MyCat

    • Lombok

    • 主流框架
  • SpringMVC

  • SpringBoot

  • Java并发

  • Java源码

  • JVM

  • 韩顺平

  • Java
  • Java
  • 主流框架
  • Mybatis
2023-04-25
目录

typeAliases标签和package标签

# 130.typeAliases标签和package标签

如题,讲解下这两个标签的作用   ‍

‍

‍

# typeAliases

之前我们写delete标签的时候,说过parameterType​可以写int,INT,Integer,INTEGER(不区分大小写),java.lang.Integer等,而resultType不行,必须得严格按照要求来:

 <select id="findById" parameterType="INT" resultType="com.peterjxl.domain.User">
    select * from user where id = #{uid}
</select>
1
2
3

‍

为什么parameterType​可以这么随意呢?这是因为Mybatis起了别名,所以就不区分大小写,例如当解析到int,INT时,都知道是int类型。而我们也可以在SqlMapConfig.xml里配置别名:

<properties resource="jdbcConfig.properties"/>
<typeAliases>
    <typeAlias type="com.peterjxl.domain.User" alias="user"/>
</typeAliases>
1
2
3
4

type属性指定的是实体类全限定类名。alias属性指定别名。注意typeAliases标签得在properties标签后面定义。

‍

‍

当指定了别名,就不再区分大小写了。我们可以在select标签里直接用:

<!-- 根据QueryVo的条件查询用户-->
<select id="findUserByVo" parameterType="com.peterjxl.domain.QueryVo" resultType="USER">
    select * from user where username like #{user.userName}
</select>
1
2
3
4

‍

‍

# package标签

实际项目中,一个包下面有很多很多的类,如果每个都是用alias配置,就很麻烦;此时我们可以用package标签简化。

<typeAliases>
    <!-- <typeAlias type="com.peterjxl.domain.User" alias="user"/>-->
    <package name="com.peterjxl.domain"/>
</typeAliases>
1
2
3
4

当指定包的名称后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写,

‍

‍

在mappers标签里,也可以定义package,指定dao接口所在的包,这样就不用逐个指定配置文件了:

<mappers>
    <!--<mapper resource="com/peterjxl/dao/IUserDao.xml"/>-->
    <!--<mapper class="com.peterjxl.dao.IUserDao"/>-->
    <package name="com.peterjxl.dao"/>
</mappers>
1
2
3
4
5

当指定了之后就不需要在写mapper以及resource或者class了

‍

注意,在typeAliases标签里写的是实体类的包名,在mappers标签里写的是dao接口所在的包名

‍

# 源码

本文所有代码已上传到了GitHub (opens new window)和Gitee (opens new window)上,并且创建了分支demo12,读者可以通过切换分支来查看本文的示例代码。

‍

在GitHub上编辑此页 (opens new window)
上次更新: 2023/5/6 21:54:08
properties标签的使用及细节
Mybatis连接池和事务

← properties标签的使用及细节 Mybatis连接池和事务→

Theme by Vdoing | Copyright © 2022-2023 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式