如何使用SQL脚本保存对象集?

时间:2016-02-21 11:46:03

标签: java sql spring-jdbc pojo

我必须以SQL格式创建测试原因表。 应该加载它们以进行测试设置。 之后,应该测试Service和DAO层。

我一直坚持为实体创建中间人。

这是User类:

public class User {
    private Integer id;
    private String name;
    private Calendar birthday;
    private String email;
    private String role;
    private Set<Ticket> bookedTickets = new HashSet<>();

它包含一套门票。

这是Ticket POJO:

public class Ticket {
    private Integer id;
    private Event event;
    private Double price;
    private User user;

它有 用户 事件 实例。 如果Ticket未分配给任何用户(user == null)=&gt;这是免费的。如果是=&gt;它已被购买。

EventAuditorium POJO:

public class Event {
    private Integer id;
    private String name;
    private Double price;
    private EventRating eventRating;
    private Set<Calendar> eventDateTime;

public class Auditorium {
    private Integer id;
    private String name;
    private Integer numberOfSeats;
    private Set<Integer> vipSeats;

事件有一组可用日期,因为某些事件可以在一天内重复几次。

代码段中省略了getters和setter。

这是我的create-db.sql脚本:

----------------------
-- Create Users table
----------------------
CREATE TABLE Users (
  user_id        INTEGER PRIMARY KEY NOT NULL,
  user_name      VARCHAR(30) NULL,
  user_birthday  DATETIME NULL,
  user_email     VARCHAR(30) NULL,
  user_role      VARCHAR(20) NULL,
  user_tickets   VARCHAR(100) NULL,  -- Here should be collection of objects
);

----------------------
-- Create Events table
----------------------
CREATE TABLE Events (
  event_id       INTEGER PRIMARY KEY NOT NULL,
  event_name     VARCHAR(30),
  event_price    DECIMAL(8,2),
  event_rating   VARCHAR(30),
  event_date     DATETIME,
);

---------------------------
-- Create Auditoriums table
---------------------------
CREATE TABLE Auditoriums (
  aud_id         INTEGER PRIMARY KEY NOT NULL,
  aud_name       VARCHAR(30),
  aud_seats      INTEGER,
  aud_vip        INTEGER,
);

-----------------------
-- Create Tickets table
-----------------------
CREATE TABLE Tickets (
  tick_id        INTEGER PRIMARY KEY NOT NULL,
  event_id       VARCHAR(30),
  tick_price     DECIMAL(8,2),
  user_id        INTEGER,
);

这里是insert-data.sql

------------------------
-- Populate Users table
------------------------
INSERT INTO Users VALUES (1, 'Garry Potter', '2001-05-01', 'potter@gmail.com', 'admin', NULL);
INSERT INTO Users VALUES (2, 'Ron Weasley',  '2000-05-01', 'ron@gmail.com', 'user', NULL);
INSERT INTO Users VALUES (3, 'Germiona Grendjer', '2000-05-01', 'germiona@gmail.com', 'user', NULL);

------------------------
-- Populate Events table
------------------------
INSERT INTO Events (event_id, event_name, event_price, event_rating, event_date)
VALUES (1, 'Green Mile', 60.0, 'high', '2016-02-28');
INSERT INTO Events (event_id, event_name, event_price, event_rating, event_date)
VALUES (2, 'Gone by the wind', 50.0, 'middle', '2016-02-28');

我正在使用Spring JDBC来处理数据库。

如何使用SQL脚本管理保存Set<Ticket>Set<Calendar>并支持其独特性?

0 个答案:

没有答案