MyBatis框架开发概览

       MyBatis 本是apache的一个开源项目iBatis, 2010 移到google code,改名MyBatis 。2013年11月迁移到Github。

目前最新版本MyBatis 3.5.4 ,发布于2020年2月4日。

优点:门槛低、灵活。  缺点:自己写SQL,数据库移植性差。
 

映射(配置文件)方式:

注解方式声明:@select ...

如果sql查询的列名和pojo的属性名不一致,可以使用resultMap将列名和pojo的属性名作一个对应关系,就可以映射成功了.
使用resultMap可以完成一些高级映射:将一些列聚合到一个pojo的对象中,完成一对一查询映射。将多行多列聚合到一个List<pojo>中,完成一对多查询映射。

resultMap:也是对查询结果集进行输出映射,根据自己需求可以通过resultMap将查询结果集映射到pojo中pojo属性中,还可以将多条记录结果集映射到pojo中List<pojo>集合属性中。一对多、多对多、一对多这是针对业务来说的,可以写成符合一对一、一对多、多对多业务的sql语句,sql语句的结果集的映射由mybatis完成。写成一个复杂的多对多的sql语句,使用resultMap或resultType完成结果集映射。

实际练习

有一个在线交易的电商平台,主要包括三张数据库业务表:

http://nos.netease.com/edu-image/F53F0EB1C1ED594F9CBF9151D75C7B4C.png?imageView&thumbnail=520x520&quality=100

现在需要基于MyBatis数据库ORM框架,实现读取商品信息和用户信息两个功能。

商品对象和用户对象定义如下:

http://nos.netease.com/edu-image/0101BD372E6DF30B6EAFF72A80C190E2.png?imageView&thumbnail=520x520&quality=100

 

http://nos.netease.com/edu-image/EA8F21075571741D6D23F8FB6875B580.png?imageView&thumbnail=520x520&quality=100

每个用户都关联了一个ProductList,用于表示该用户所购买的所有商品,可以通过查询transaction表的交易记录获得。

 

操作接口定义如下:

http://nos.netease.com/edu-image/04F857A2F8063B348FFABFA4D5F6357F.png?imageView&thumbnail=520x520&quality=100

 

请分别实现getProductgetUser两个函数方法与SQL语句的映射配置文件。

 

模板如下:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="MyBatisTest.Op">
  4.     <select >
  5.     </select>
  6. </mapper>

 

发布了76 篇原创文章 · 获赞 113 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/m0_37676429/article/details/105326220
今日推荐