NoSQLvsSQL.SqlDB.java Source code

Java tutorial

Introduction

Here is the source code for NoSQLvsSQL.SqlDB.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package NoSQLvsSQL;

import orm.Komentaras;
import orm.Megstamiausias;
import orm.Serialas;
import orm.Serija;
import orm.Vartotojas;
import orm.Zanras;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import org.apache.commons.lang3.RandomStringUtils;

/**
 *
 * @author unknown
 */
public class SqlDB {
    public List<Vartotojas> vartotojai;
    public List<Serialas> serialai;

    private Random rand = new Random();
    private int tekstoEilutesIlgis = 20;
    private int aprasymoIlgis = 100;

    int serialuKiekis, serijuKiekisSerialui, komentaruKiekisSerijai, zanruKiekisSerialui, vartotojuKiekis,
            megstamiausiuKiekis;

    SqlDB(int serialuKiekis, int serijuKiekisSerialui, int komentaruKiekisSerijai, int zanruKiekisSerialui,
            int vartotojuKiekis, int megstamiausiuKiekis) {
        this.serialuKiekis = serialuKiekis;
        this.serijuKiekisSerialui = serijuKiekisSerialui;
        this.komentaruKiekisSerijai = komentaruKiekisSerijai;
        this.zanruKiekisSerialui = zanruKiekisSerialui;
        this.vartotojuKiekis = vartotojuKiekis;
        this.megstamiausiuKiekis = megstamiausiuKiekis;

        vartotojai = new ArrayList<>();
        serialai = new ArrayList<>();
    }

    public void generuotiDuomenis() throws ParseException {
        // serialu generavimas
        for (int i = 0; i < serialuKiekis; i++) {
            Serialas serialas = generuotiSeriala();
            generuotiSerijas(serialas);
            generuotiZanrus(serialas);
            serialai.add(serialas);
        }

        // vartotoju ir megstamiausiu serialu generavimas
        for (int i = 0; i < vartotojuKiekis; i++) {
            Vartotojas vartotojas = generuotiVartotoja();
            vartotojai.add(vartotojas);

            List<Megstamiausias> megstamiausi = new ArrayList<>();
            for (int j = 0; j < megstamiausiuKiekis; j++) {
                Megstamiausias megstamiausias = generuotiMegstamiausia(serialai.get(rand.nextInt(serialuKiekis)),
                        vartotojas);
                megstamiausi.add(megstamiausias);
            }
            vartotojas.setMegstamiausi(megstamiausi);
        }

        // uzpildoma komentarais
        for (Serialas serialas : serialai) {
            for (Serija serija : serialas.getSerijos()) {
                List<Komentaras> komentaruSarasas = new ArrayList<>();
                for (int k = 0; k < komentaruKiekisSerijai; k++) {
                    Komentaras komentaras = generuotiKomentara(vartotojai.get(rand.nextInt(vartotojuKiekis)),
                            serija);
                    komentaruSarasas.add(komentaras);
                }
                serija.setKomentarai(komentaruSarasas);
            }
        }
    }

    private void generuotiZanrus(Serialas serialas) {
        List<Zanras> zanrai = new ArrayList<>();
        for (int z = 0; z < zanruKiekisSerialui; z++) {
            Zanras zanras = generuotiZanra(serialas);
            zanras.setSerialas(serialas);
            zanrai.add(zanras);
        }
        serialas.setZanrai(zanrai);
    }

    private void generuotiSerijas(Serialas serialas) {
        List<Serija> serijuSarasas = new ArrayList<>();

        for (int i = 0; i < serijuKiekisSerialui; i++) {
            Serija serija = generuotiSerija();
            serija.setSerialas(serialas);
            serijuSarasas.add(serija);
        }
        serialas.setSerijos(serijuSarasas);
    }

public Vartotojas generuotiVartotoja()
{
    Vartotojas v = new Vartotojas();
        
    v.setVardas(getRandomAlphabeticString(tekstoEilutesIlgis));
    v.setPavard(getRandomAlphabeticString(tekstoEilutesIlgis));
    v.setPatas(getRandomString(tekstoEilutesIlgis));
    v.setSlaptaodis(getRandomString(tekstoEilutesIlgis));
    v.setVart_vardas(getRandomString(tekstoEilutesIlgis));
        
    return v;
}

public Serialas generuotiSeriala() throws ParseException
{
    Serialas serialas = new Serialas();
        
    serialas.setPavadinimas(getRandomString(tekstoEilutesIlgis));
    serialas.setIleista(new java.sql.Date(getRandomDate().getTime()));
        
    return serialas;
}

private Serija generuotiSerija() {
    Serija s = new Serija();
    s.setPavadinimas(getRandomString(tekstoEilutesIlgis));
    s.setApraymas(getRandomString(aprasymoIlgis));
    return s;
}

    private Komentaras generuotiKomentara(Vartotojas vart, Serija serija) {
        Komentaras k = new Komentaras();

        k.setTurinys(getRandomString(aprasymoIlgis));
        k.setVartotojas(vart);
        k.setSerija(serija);

        if (vart.getKomentarai() == null) {
            vart.setKomentarai(new ArrayList());
        }
        vart.getKomentarai().add(k);

        return k;
    }

    private Megstamiausias generuotiMegstamiausia(Serialas serialas, Vartotojas vartotojas) {
        Megstamiausias m = new Megstamiausias();
        m.setSerialas(serialas);
        m.setVartotojas(vartotojas);
        return m;
    }

    private Zanras generuotiZanra(Serialas serialas) {
        Zanras z = new Zanras();
        z.setPavadinimas(getRandomString(tekstoEilutesIlgis));
        return z;
    }

    public String getRandomString(int length) {
        return RandomStringUtils.random(rand.nextInt(length));
    }

    public String getRandomAlphabeticString(int length) {
        return RandomStringUtils.randomAlphabetic(rand.nextInt(length));
    }

    public Date getRandomDate() throws ParseException {
        long offset = Timestamp.valueOf("2000-01-01 00:00:00").getTime();
        long end = Timestamp.valueOf("2016-01-01 00:00:00").getTime();
        long diff = end - offset + 1;
        Timestamp rand = new Timestamp(offset + (long) (Math.random() * diff));

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
        return simpleDateFormat.parse(rand.toString());
    }
}