栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习笔记

mybatis笔记(二) 多表操作 回顾对象的三种状态
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


    
                select * from details
    
    
        
        
    

ProductsMapper.xml


    
                select * from types where tid =#{id}
    

测试类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();
    }
}
对一关系


对多关系


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842418.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号