您的位置:首页 > 数据库

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

2017-04-21 16:09 399 查看
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_idc_namec_price
9阿里巴巴120000
10腾讯180000
11百度190000
12微软1000000
boss

b_idb_nameb_agecom_id
7马云519
8马化腾4710
9李彦宏4211
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=?;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐