zoukankan      html  css  js  c++  java
  • mybatis的属性优化与别名优化

    在使用mybatis框架时,会发现几个比较麻烦的问题:

    例如在mybatis-config.xml配置文件中的代码

    <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=utf8"/>
                    <property name="username" value="root"/>
                    <property name="password" value="123456"/>
                </dataSource>
            </environment>

    其中的driver、url、username、password等信息需要直接写在配置文件中,不方便使用,也不利于修改。这里可以使用mybatis的属性优化来解决、实现更简洁的操作;

    再例如像“com.wong.pojo.User”这样的路径,重复编写显得繁杂,这里就可以使用别名优化的方式来解决;

    属性优化

    mybatis的官方文档中,对属性优化是这样描述的:这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。这里抓住一个关键词:动态替换。即我们可以将需要的配置文件单独写在外部的配置文件中,需要时将其引入,并使用“${}”来引用,同样可以达到想要的效果。

    例如:我们可以将driver、url、username、password等信息写在db.properties文件中:

    driver = com.mysql.jdbc.Driver
    url = jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf8
    username = root
    password = 123456

    并且在mybatis-config.xml中导入并使用:

    <!--引入外部配置文件-->
    <properties resource="db.properties" /><!--使用“${}”来引用-->
    <property name="driver" value="${driver}" />
    <property name="url" value="${url}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>

    这里需要注意一点,我们在mybatis-config.xml添加标签时经常会报错,此时要首先考虑标签的顺序问题,报错如下:

    如图所示,正确的顺序应该是"(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)",顺序错误即报错!

    别名优化

    类型别名
    • java的类型别名主要是为Java类型设置一个比较短的名称,方便使用;

    • 别名的作用仅限于减少类完全限定名的冗余

    第一种方式,采用typeAlias。(适合实体类比较少时使用,可以自定义名称)

    <!--可以给实体类起别名-->
    <typeAliases>
        <typeAlias type="com.wong.pojo.User" alias="user" />
    </typeAliases>

    第二种方式,采用package方式。(指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean。适合实体类比较多时使用,无法自定义名称,使用时默认名称为这个类类名的首字母小写,官方建议是小写字母,但大写也是可行的)

    <!--可以给实体类起别名-->
    <typeAliases>
        <package name="com.wong.pojo"/>
    </typeAliases>

    应用:

      <!--select查询语句-->
      <select id="selectUser" resultType="user">    /*使用别名user来替代com.wong.pojo.User*/
      select * from user
    </select>

    采用第二种方式时不能自定义名称,但是可以通过注解的方式来实现:

    sql语句:

      <!--select查询语句-->
      <select id="selectUser" resultType="hello">    /*使用注解名*/
      select * from user
    </select>

    结果也是可行的!

  • 相关阅读:
    平台总体技术架构
    防控激活
    dse测试说明
    设置内核tcp连接数
    删除topic的尝试
    用Jmeter进行接口压力测试的步骤
    性能测试
    配置文件的修改
    mysql 监控
    电子栅栏sql和接口查询
  • 原文地址:https://www.cnblogs.com/awong18/p/13375684.html
Copyright © 2011-2022 走看看