• 02


    关联映射

    什么是?

    数据库中有关联关系的表,通过实体对象引用的方式体现出来,叫关联映射.

    为什么?

    将多表的记录封装成实体对象.

    何时用?

    对数据库中的表进行多表查询时.

    怎么用?

    cn_user------>User

    cn_notebook-->Book

    public class User{

    cnuserid

    cnusername

    .

    .

    .

    List books; }

    public class Book{

    cnuserid

    cnusername

    .

    .

    .

    User user;

    }

    单个对象的关联

    • 单个SQL语句实现

    • 两条SQL语句实现

    多个对象的关联

    • 单个SQL语句实现:一条SQL语句实现,SQL语句复杂,与数据库交互一次.

    • 两条SQL语句实现:一条语句查询USER,一条语句查询BOOK,SQL语句简单,与数

    据库进行了两次交互

    案例:查询User关联Book的相关信息

    实现步骤:

    1. 定义Dao接口文件

    2. 定义Mapper文件

    3. 执行测试

    4. 练习: 用一条语句实现加载多个关联对象

      select * from cn_user u join cn_notebook b on
      
      (u.cn_user_id=b.cn_user_id)
      
      where u.cn_user_id=#{userId}
      
      mapper文件中定义一个<select>标签和<resultMap>标签
      

    案例:查询Book关联User信息(单个对象关联)

    实现步骤:

    1. 定义Dao接口文件

    2. 定义Mapper文件

    3. 执行测试

    4. 一个SQL语句实现关联查询

    练习:通过两个SQL语句查询Book关联User信息

    • Mapper定义:

          <select>
              cn_notebook全表查询
          </select>
          <resultMap>
              定义Book映射
              <association>
                  定义User映射
              </association>
          </resultMap>
          <select>
              关联cn_user表查询
          </select>
      

    主键字段的处理

    利用数据自增列作为主键时,执行insert操作时,可以在服务器端自动获取主键值

    如何实现

        <insert
        useGeneratedKeys="true" keyProperty="id">
    

    创建表:

        create table t_emp(id int primary key auto_increment,name varchar(30),age int)
    

    作业:

    • 利用一个SQL语句实现单个对象关联

    • 利用两个SQL语句实现多个对象关联

  • 相关阅读:
    Spring Boot 搭建项目阶段Group和Artifact的含义
    设置Mysql数据库账号密码以及时区
    反射
    线程与进程
    网络编程
    队列和栈
    linux下的mysql
    积累的关于linux的安装卸载软件基本命令
    各种url编码
    解决浏览器传值乱码
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/6618435.html
Copyright © 2020-2023  润新知