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 版权协议,转载请附上原文出处链接和本声明。