JavaRush /Kurslar /All lectures for UZ purposes /Spring bo'yicha loyiha: (1)

Spring bo'yicha loyiha: (1)

All lectures for UZ purposes
Daraja, Dars
Mavjud

Mavzu: CRUD Spring MVC da

Vazifalar ro'yxatini (todo-list) tuzish kerak, bunda ro'yxatni ko'rish, yangi vazifalar qo'shish, mavjud vazifalarni tahrirlash va o'chirish imkoniyati bo'lishi kerak.

Spring Boot dan foydalanmaslik ma'qul, o'zingiz konfiguratsiya qilishni o'rganing.

Nima qilish kerak:

  1. sql skriptini ishga tushiring
  2. 
    CREATE DATABASE  IF NOT EXISTS `todo` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
    USE `todo`;
    DROP TABLE IF EXISTS `task`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `task` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `description` varchar(100) NOT NULL,
      `status` int(11) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4;
    /*!40101 SET character_set_client = @saved_cs_client */;
    
    LOCK TABLES `task` WRITE;
    /*!40000 ALTER TABLE `task` DISABLE KEYS */;
    INSERT  IGNORE INTO `task` VALUES (1,'aaa',1),(2,'bbb',2),(3,'ccc',0),(4,'ddd',1),(5,'eee',2),(6,'fff',0),(7,'ggg',1),(8,'hhh',2),(9,'jjj',0),(10,'kkk',1),(11,'lll',2),(12,'mmm',0),(13,'nnn',1),(14,'ooo',2),(15,'ppp',0);
    /*!40000 ALTER TABLE `task` ENABLE KEYS */;
    UNLOCK TABLES;
    
  3. Yangi Maven loyihasini yarating.
  4. MySQL, Hibernate, Spring, Spring MVC, Thymeleaf bilan ishlash uchun kerakli dependencies qo'shing.
  5. Loyihaga entity qatlami qo'shing (domain paketi). Task klassini qo'shing – u ro'yxatdagi vazifa uchun javob beradi. Kerakli maydonlar: description – vazifaning tavsifi, status – vazifaning bajarilish holati. Status sifatida enum qo'llang:
  6. 
    public enum Status {
        IN_PROGRESS,
        DONE,
        PAUSED
    }
    
  7. Config paketini qo'shing. Unda Spring MVC ilovasi, Hibernate orqali DB bilan ishlash va boshqa sozlamalar uchun kerakli klasslarni joylang.
  8. dao qatlami qo'shing, unda TaskDAO klassi bo'lishi kerak, u DB bilan ishlash uchun javob beradi. CRUD va pagingni qo'llab-quvvatlovchi metodlar bo'lishi kerak.
  9. Servis qatlamini qo'shing, unda vazifalarni yaratish va tahrirlash uchun logikani joylang.
  10. Endi controller qatlami: unda metodlar bo'lishi kerak:
    • vazifalar ro'yxatini olish (pagingni hisobga olgan holda)
    • yangi vazifa qo'shish
    • mavjud vazifani tahrirlash
    • vazifani o'chirish

    Metodlar va ularning mappinglari qanday bo'lishi kerakligini o'zingiz o'ylab ko'ring.

  11. Oxirgi qadam – shablon (html yoki js fayli). Istalgancha uslub va skriptlar turlariga ko'ra alohida fayllarga ajratilishi mumkin. Odatda, backend dasturchi uchun funksional muhim, ko'rinishi esa – o'zingizga bog'liq. Menda shunday chiqqan:

Ixtiyoriy vazifa:

Bizning ilovamizni docker konteynerga o'rab, docker-compose fayli qo'shing, unda ilova-DBni docker-konteynerda ishlashini sozlang.


Loyihani bajarish:

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION