Database Sample | Spring Template Projesi

4 Ekim 2022 0 Yazar: Selman Kaya

Demo Tablo 1:

-- phpMyAdmin SQL Dump
-- version 5.1.1
-- https://www.phpmyadmin.net/
--
-- Üretim Zamanı: 04 Eki 2022, 23:17:12
-- Sunucu sürümü: 10.3.36-MariaDB-cll-lve
-- PHP Sürümü: 8.1.1

-- --------------------------------------------------------

--
-- Tablo için tablo yapısı `demo_table`
--

CREATE TABLE `demo_table` (
  `ID` bigint(20) NOT NULL,
  `TEXT` varchar(128) COLLATE utf8_turkish_ci DEFAULT NULL,
  `FLAG` tinyint(1) DEFAULT NULL,
  `NUM_VALUE` bigint(20) DEFAULT NULL,
  `DATE_VALUE` date DEFAULT NULL,
  `DATETIME_VALUE` datetime DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci;

--
-- Tablo döküm verisi `demo_table`
--

INSERT INTO `demo_table` (`ID`, `TEXT`, `FLAG`, `NUM_VALUE`, `DATE_VALUE`, `DATETIME_VALUE`) VALUES
(1, 'Java', 1, 12, '2022-09-05', '2022-09-05 10:19:35'),
(2, 'Python', 0, 345, '2022-10-03', '2022-10-03 02:19:35'),
(3, 'JavaScript', 1, 789, '2022-10-02', '2022-10-04 02:21:13'),
(4, 'Java', 0, 1234, '2022-10-04', '2022-10-04 22:58:29');

--
-- Dökümü yapılmış tablolar için indeksler
--

--
-- Tablo için indeksler `demo_table`
--
ALTER TABLE `demo_table`
  ADD PRIMARY KEY (`ID`);

--
-- Dökümü yapılmış tablolar için AUTO_INCREMENT değeri
--

--
-- Tablo için AUTO_INCREMENT değeri `demo_table`
--
ALTER TABLE `demo_table`
  MODIFY `ID` bigint(20) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
COMMIT;


Örnek JPA Repository:

public interface DemoRepository extends JpaRepository<DemoEntity, Long> {

    DemoEntity findFirstByTextAndFlag(String text, boolean flag);

    Optional<DemoEntity> findFirstByText(String text);

    List<DemoEntity> findAllByFlag(boolean flag);

    @Query("SELECT D FROM DemoEntity D WHERE D.text = :textFilter")
    List<DemoEntity> getEntities(@Param("textFilter") String text);

    /*
    DİKKAT ET!: Buradaki tablo isimleri case-sensitive
     */
    @Query(value = "SELECT D.* FROM demo_table D WHERE D.TEXT = :textFilter AND D.FLAG = :flagFilter", nativeQuery = true)
    List<DemoEntity> getEntities(@Param("textFilter") String text, @Param("flagFilter") boolean flag);

}

PreDefined Java Sorgu Örnekleri:

demoRepository.findAll();
demoRepository.findAll(Sort.by(Sort.Direction.ASC, "numValue"));