1.持久态 2.瞬时态 3.游离态创建表
create database days53orders; use days53orders; # 用户表 create table user( uid int primary key auto_increment, username varchar(20) not null UNIQUE , password varchar(20) not null, age int, addr varchar(20), tel varchar(11) ); # 分类表 create table types( tid varchar(32) PRIMARY key, tname varchar(20) not null unique, tdesc varchar(20) ); # 商品表 create table products( pid varchar(32) primary key, pname varchar(20) not null UNIQUE, price double, imgs varchar(20), pdesc varchar(20), tid varchar(32), FOREIGN key(tid) REFERENCES types(tid) ); # 订单表 create table orders( oid varchar(32) primary key, price double, buytime date, uid int, FOREIGN KEY (uid) REFERENCES user(uid) ); # 商品详情 create table details( did varchar(32) PRIMARY KEY , count int, pid varchar(32), oid varchar(32), FOREIGN key (pid) REFERENCES products(pid), FOREIGN key (oid) REFERENCES orders(oid) );多表查询
select u.username, p.pname, p.price, d.count, o.oid, t.tname from orders o inner join user u on o.uid = u.uid inner join details d on o.oid = d.oid inner join products p on d.pid = p.pid INNER join types t on p.tid = t.tid ;表对应的实体类对象
user用户表对应实体类User
@AllArgsConstructor
@NoArgsConstructor
@Data
public class User {
private int uid;
private String username;
private String password;
private int age;
private String addr;
private String tel;
}
types商品类型表对应实体类Tyoes
@AllArgsConstructor
@NoArgsConstructor
@Data
public class Types {
private String tid;
private String tname;
private String tdesc;
}
products商品表对应实体类Products
@AllArgsConstructor
@NoArgsConstructor
@Data
public class Products {
private String pid;
private String pname;
private double price;
private String imgs;
private String pdesc;
private Types types;
}
orders订单表对应实体类Orders
@AllArgsConstructor
@NoArgsConstructor
@Data
public class Orders {
private String oid;
private double price;
private Date buytime;
private User user;
private List details;
}
details订单详情表对应实体类Details
@AllArgsConstructor
@NoArgsConstructor
@Data
public class Details {
private String did;
private int count;
private Products pro;
}
OrdersMapper.xml
select * from orders
UserMapper.xml
DetatilsMapper.xml
ProductsMapper.xml
TypesMapper.xml
测试类OrderTest.java
public class OrdersTest {
SqlSession sqlSession = null;
Orders orders = new Orders();
@Before
public void before() throws IOException {
//1)驱动mybatis核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
//2)创建SqlSessionFactoryBuilder构造者设计模式
//3) 通过加载资源文件输入流,获取SqlSessionFactory接口工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//4)创建执行对象
sqlSession = sqlSessionFactory.openSession();//手动提交
}
@Test
public void findall(){
//获取接口代理对象
OrdersMapper mapper = sqlSession.getMapper(OrdersMapper.class);
//测试查询全部
List list = mapper.findAll(orders);
System.out.println(list);
}
@After
public void finall(){
//增删改,提交事务
sqlSession.commit();
//执行对象释放
sqlSession.close();
}
}
对一关系
对多关系



