ssm-mybatis进阶

ssm-mybatis进阶

简介

ssm-mybatis入门后,理解一下进阶概念,从mybatis配置和sql映射器两大方向探索。

config配置文件

configuration配置比较多,这里选一些经常使用的配置来举例。
须要注意的是,配置项必须按照规定的顺序进行配置,不然会出现匹配错误:
  1. 属性(properties):属性能够在外部进行配置,并能够进行动态替换。
  2. 在resources目录下建立 db.properties配置文件,并配置数据库链接参数:

    mybatis-config.xml配置文件中,用引入外部properties方式,配置db链接参数,使用符号: ${}

    上图方式一和方式二还能够混合使用,若是同一属性都有配置方式一会覆盖方式二属性。验证能够正确链接到数据库:
  3. 类型别名(typeAliases):类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在下降冗余的全限定类名书写。
    • typeAlias: 为单个Java类设置别名
    • package: 为包名下的全部类设置别名,默认为其类名对应小写
    设置完别名后,在映射文件中进行配置:

    验证能够正确链接到数据库:
  4. 环境配置(environments):
  5. MyBatis 能够配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中, 现实状况下有多种理由须要这么作。 例如,开发、测试和生产环境须要有不一样的配置;或者想在具备相同 Schema 的多个生产数据库中使用相同的 SQL 映射。还有许多相似的使用场景。 不过要记住:尽管能够配置多个环境,但每一个 SqlSessionFactory 实例只能选择一种环境。 因此,若是你想链接两个数据库,就须要建立两个 SqlSessionFactory 实例,每一个数据库对应一个。sql

  6. 映射器(mappers):
  7. 映射器主要用来告诉mybatis去哪里找sql语句的。mapper有四种配置方法,其中用包名的形式我的以为更简单,可是性能可能会差一些

mapper映射文件

MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。因为它的异常强大,映射器的 XML 文件就显得相对简单。 若是拿它跟具备相同功能的 JDBC 代码进行对比,你会当即发现省掉了将近 95% 的代码。MyBatis 致力于减小使用成本,让用户能更专一于 SQL 代码。
  1. select: 最经常使用的sql语句,下面看几个简单例子
  2. 首先在UserMapper中,增长一个接口:
    public interface UserMapper {
            ...
            User getById(int id);
            ...
    }

    • 示例一:

    • sql中直接使用字段别名映射到POJO对象属性。
    • 示例二:
    使用resultMap对将数据库字段名映射到POJO对象属性,resultMap和resultType只能二选一不能同时使用。

    查询返回数据除了用pojo接收,还能够用map接收,map能够说是万能的,特别是在字段较多的复杂场景,优点很明显。
    • 示例三:
    增长接口:

    编写映射:

    编写测试:

    查看结果:

  3. insertinsert,update 和 delete 的实现很是类似,下面举例说明
  4. 增长接口:

    编写映射:pojo和map均可以插入,map更加灵活

    编写测试:记得commit才生效

    查看结果:两种方式都正确写入数据

  5. update:
  6. 增长接口:

    编写映射:pojo和map均可以,map更加灵活

    编写测试:记得commit才生效

    查看结果:

  7. delete:
  8. 增长接口: void delete(int id);
    编写映射:

    编写测试:记得commit才生效

    查看结果:
相关文章
相关标签/搜索