Mybatis一对一中的SQL(查询、删除、更新、插入)及表的设计

  • Post author:
  • Post category:其他


mybatis是一个不完全的ORM框架,在进行使用时,需要程序员自己写SQL语句和设计表。本文主要在一对一的情况下对表进行设计以及编写SQL语句。

1.1现实模型

一个Company 有一个Boss,一哥Boss管理一个公司,通过Company 来维护Boss

1.2实体类

public class Company
{
    private int id;
    private String name;
    private int price;
    private Boss boss;
}

public class Boss
{

    private int id;
    private String name;
    private int age;

1.3表的设计

company

c_id c_name c_price
9 阿里巴巴 120000
10 腾讯 180000
11 百度 190000
12 微软 1000000

boss

b_id b_name b_age com_id
7 马云 51 9
8 马化腾 47 10
9 李彦宏 42 11

com_id为boss表中的外键,值是company的p_id,由于是一对一则com_id是唯一的

1.3.1创建表SQL

create table company(c_id int primary key auto_increment,c_name char(20),c_price int);
create table boss(b_id int primary key auto_increment,b_name char(20),b_age int,com_id int);

1.3.2添加外键关联

alter table boss add constraint b_c_const foreign key(com_id) references company(c_id) on delete cascade on update cascade;

有外键的一方boss为从表,company为主表,主表的删除、更新会引起从表的数据变化

1.3.3给boss表的com_id添加unique约束

alter table boss add constraint u_comid unique(com_id);

1.4SQL语句

1.4.1插入

insert into boss(b_name,b_age,com_id) values(?,?,?);

1.4.2删除

delete from company where c_id=?;

1.4.3更新

update company set c_id=1,c_name='google',c_price=102222 where c_id=?; 

1.4.4查询

select company.*, boss.b_id,boss.b_name,boss.b_age from company left outer join boss on boss.com_id=company.c_id where company.c_id=?;



版权声明:本文为gu_solo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。