MyBatis的核心配置文件 SqlMapConfig.xml(五)下

简介: MyBatis的核心配置文件 SqlMapConfig.xml(五)

四.别名 typealiases


实体类的全限定名称过长,需要使用一个短的名称来代替它,可以在Mybatis整个上下文生命周期中使用。 可以分为 系统定义别名和自定义别名,其中 别名是不区分大小写的, 别名User 与别名user 是同样的意思。 一个typealiases 的实体是在解析配置文件的时候生成的,长期保存在Configuration 对象之中,当我们使用它时,再把它拿出来,而不是每一次使用时,都重新生成。


四.一 MyBatis 系统定义别名

20190625191836453.png

20190625191851138.png


支持数组的,只要加个 [] 就可以,如 byte[] 为_byte[] 。

系统定义的别名,在 org.apache.ibatis.type.TypeAliasRegistry 类中进行定义。


public TypeAliasRegistry() {
    registerAlias("string", String.class);
    registerAlias("byte", Byte.class);
    registerAlias("long", Long.class);
    registerAlias("short", Short.class);
    registerAlias("int", Integer.class);
    registerAlias("integer", Integer.class);
    registerAlias("double", Double.class);
    registerAlias("float", Float.class);
    registerAlias("boolean", Boolean.class);
    registerAlias("byte[]", Byte[].class);
    registerAlias("long[]", Long[].class);
    registerAlias("short[]", Short[].class);
    registerAlias("int[]", Integer[].class);
    registerAlias("integer[]", Integer[].class);
    registerAlias("double[]", Double[].class);
    registerAlias("float[]", Float[].class);
    registerAlias("boolean[]", Boolean[].class);
    registerAlias("_byte", Byte.TYPE);
    registerAlias("_long", Long.TYPE);
    registerAlias("_short", Short.TYPE);
    registerAlias("_int", Integer.TYPE);
    registerAlias("_integer", Integer.TYPE);
    registerAlias("_double", Double.TYPE);
    registerAlias("_float", Float.TYPE);
    registerAlias("_boolean", Boolean.TYPE);
    registerAlias("_byte[]", byte[].class);
    registerAlias("_long[]", long[].class);
    registerAlias("_short[]", short[].class);
    registerAlias("_int[]", int[].class);
    registerAlias("_integer[]", int[].class);
    registerAlias("_double[]", double[].class);
    registerAlias("_float[]", float[].class);
    registerAlias("_boolean[]", boolean[].class);
    registerAlias("date", Date.class);
    registerAlias("decimal", BigDecimal.class);
    registerAlias("bigdecimal", BigDecimal.class);
    registerAlias("biginteger", BigInteger.class);
    registerAlias("object", Object.class);
    registerAlias("date[]", Date[].class);
    registerAlias("decimal[]", BigDecimal[].class);
    registerAlias("bigdecimal[]", BigDecimal[].class);
    registerAlias("biginteger[]", BigInteger[].class);
    registerAlias("object[]", Object[].class);
    registerAlias("map", Map.class);
    registerAlias("hashmap", HashMap.class);
    registerAlias("list", List.class);
    registerAlias("arraylist", ArrayList.class);
    registerAlias("collection", Collection.class);
    registerAlias("iterator", Iterator.class);
    registerAlias("ResultSet", ResultSet.class);
  }


上面是Mybatis 系统已经定义好的,不需要我们重复定义,直接使用即可。


但常常使用开发都自定义的别名。


四.二 自定义别名


如 我们前面所使用的 com.yjl.pojo.User 类,当多次使用时,如 insert ,update 和select 时,不必要重复性定义,只定义别名即可 user .


<select id="getById"  parameterType="int" resultType="user">
    select * from user where id=#{id}
  </select>


只需要写成 resultType=“user” 即可,不需要 resultType=“com.yjl.pojo.User”


四.三 XML 形式定义别名


  1. 可以单个类定义


<!-- 配置别名 -->
  <typeAliases>
    <!--type指类的全限定名称, alias 为 别名-->
    <typeAlias type="com.yjl.pojo.User" alias="user"/>
  </typeAliases>


  1. 如果类过多的话,那么可以用包。


<!-- 配置别名 -->
  <typeAliases>
    <!-- 定义包的形式 ,可以多个-->
    <package name="com.yjl.pojo"/>
    <package name="com.yjl.pojo2"/>
  </typeAliases>


四.四 注解定义 @Alias


@Alias(value ="user")
public class User {
}


这样就可以直接使用 user 别名了。


五. 环境设置 environments


<!-- 开发环境  development 环境为开发环境 -->
  <environments default="development">
    <environment id="development">
      <!-- 事务管理 -->
      <transactionManager type="JDBC"></transactionManager>
      <!-- 数据源 ,为pooled 连接池 -->
      <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>


环境 default 默认为development 开发环境。 其中, id 为默认的开发环境。


transactionManager 事务管理的类型有三种:


1.jdbc 使用jdbc的形式管理事务,在独立编码,不引用其他数据库框架时使用

2.managed 采用容器方式管理事务,在JNDI 中常常使用。

3.自定义 使用者自己定义,常常用于特殊的环境中。


datasource 的类型有四种:


1.pooled 连接池数据库

2.unpooled 非连接池数据库

3.JNDI JNDI 数据源

4.自定义数据源


六 引入映射文件 mapper


六.一 文件路径方式


  <mappers>
    <!-- 引入文件资源,可依次写多个-->
    <mapper resource="com/yjl/mapper/UserMapper.xml"/>
  </mappers>


采用的是 文件路径 / 的方式。


六.二 包名引入 (多个时)


<mappers>
    <!-- 包名引入,用. -->
    <package name="com.yjl.mapper"/>
  </mappers>


六.三 类注册引入


<mappers>
    <!--类注册引入,用class属性 -->
    <mapper class="com.yjl.mapper.UserMapper"/>
  </mappers>


建议使用 package, 可引入包。


谢谢!!!

相关文章
|
1月前
|
XML Java 数据格式
Spring从入门到入土(xml配置文件的基础使用方式)
本文详细介绍了Spring框架中XML配置文件的使用方法,包括读取配置文件、创建带参数的构造对象、使用工厂方法和静态方法创建对象、对象生命周期管理以及单例和多例模式的测试。
77 7
Spring从入门到入土(xml配置文件的基础使用方式)
|
7天前
|
SQL 缓存 Java
MyBatis如何关闭一级缓存(分注解和xml两种方式)
MyBatis如何关闭一级缓存(分注解和xml两种方式)
29 5
|
29天前
|
XML Java 应用服务中间件
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
这篇文章是关于Apache Tomcat服务器的目录结构、配置文件(特别是server.xml)的详细介绍和学习指南。
54 0
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
|
1月前
|
XML 存储 JSON
framework 的配置文件在.netcore里面不能用怎么处理?在.netcore中创建.xml配置文件
framework 的配置文件在.netcore里面不能用怎么处理?在.netcore中创建.xml配置文件
26 0
|
1月前
|
安全 内存技术
【文件上传-配置文件】crossdomain.xml跨域策略配置文件上传
【文件上传-配置文件】crossdomain.xml跨域策略配置文件上传
|
2月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
44 1
|
4月前
|
存储 缓存 分布式计算
Hadoop配置文件core-site.xml
【7月更文挑战第17天】
231 2
Hadoop配置文件core-site.xml
|
4月前
|
XML 分布式计算 资源调度
Hadoop配置文件mapred-site.xml
【7月更文挑战第18天】
321 7
|
4月前
|
存储 机器学习/深度学习 分布式计算
Hadoop配置文件hdfs-site.xml
【7月更文挑战第17天】
255 5
|
4月前
|
分布式计算 资源调度 Hadoop
Hadoop配置文件yarn-site.xml
【7月更文挑战第18天】
305 3