MyBatis Mapper 配置 resultType 与 resultMap
输出映射有两种方式
resultType
resultMap
resultType
- 使用
resultType
进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。 - 如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象。
- 只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象。
MyBatis Mapper 配置 resultType 与 resultMap
输出映射有两种方式
resultType
resultMap
resultType
进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。使用两种方式(resultType和resultMap)实现一对一查询,查询订单信息,关联查询创建订单的用户信息
确定查询的主表:订单表
确定查询的关联表:用户表
关联查询使用内连接?还是外连接?
由于orders表中有一个外键(user_id),通过外键关联查询用户表只能查询出一条记录,可以使用内连接。
1 | SELECT |
MyBatis Mapper 动态 SQL 配置 if, sql 与 foreach
mybatis核心,对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装。
1 | <!-- 用户信息综合查询 |
MyBatis Mapper 配置 parameterType
通过parameterType指定输入参数的类型,类型可以是
1 | package com.iot.mybatis.po; |
1 | <!-- 添加用户 |
SqlMapConfig.xml中配置的内容和顺序如下
mybatis是一个持久层的框架,是apache下的顶级项目。
mybatis托管到goolecode下,再后来托管到github下(https://github.com/mybatis/mybatis-3/releases)。
mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句。
通过SqlSessionFactoryBuilder
创建会话工厂SqlSessionFactory
将SqlSessionFactoryBuilder
当成一个工具类使用即可,不需要使用单例管理SqlSessionFactoryBuilder
。在需要创建SqlSessionFactory
时候,只需要new一次SqlSessionFactoryBuilder
即可。
1.数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。