使用两种方式(resultType和resultMap)实现一对一查询,查询订单信息,关联查询创建订单的用户信息
resultType实现
- sql语句
确定查询的主表:订单表
确定查询的关联表:用户表
关联查询使用内连接?还是外连接?
由于orders表中有一个外键(user_id),通过外键关联查询用户表只能查询出一条记录,可以使用内连接。
1 | SELECT |
使用两种方式(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
即可。