Spring Framework_DB接続設定

プロジェクトの「src/main/resources」の下の「application.properties」を「Limyプロパティー・エディター」で編集する。

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/DB名
spring.datasource.username=ユーザー名
spring.datasource.password=パスワード

Entity=Domain Object
エンティティはデータの入れ物になるクラスです
詳細に言うとDBの一行に対応するクラスです
エンティティが保持するフィールドはテーブルのカラムに値に対応する

エンティティは必ず取得
updateとinsertはsaveで、できる
「save」メソッドは@Idアノテーションが付与されたフィールドが「null」の場合「INSERT文」を実行し、「null」でない場合「UPDATE文」を実行する
例:
Quiz quiz2 = new Quiz(null,”「Spring MVC」はバッチ処理機能を提供しますか?”,false,”登録太郎”);
↑第一引数がnullなのでinsert

例:
Quiz quiz1 = new Quiz(1,”「スプリング」はフレームワークですか?”,true,”変更タロウ”);
第一引数が「1」なのでUPDATE

★Serviceはインターフェイス
———————-
package com.example.quiz.service;

import java.util.Optional;

import com.example.quiz.entity.Quiz;

public interface QuizService {

// クイズを全件取得します
Iterable selectAll();
// クイズ情報を、idをキーに1件取得します
Optional selectOneById(Integer id);
// クイズ情報をランダムで1件取得します
Optional selectOneRandomQuiz();
// クイズの正解/不正解を判定します
Boolean checkQuiz(Integer id, Boolean myAnswer);
// クイズを登録します
void insertQuiz(Quiz quiz);
// クイズを更新します
void updateQuiz(Quiz quiz);
// クイズを削除します
void deleteQuizById(Integer id);
}

———————–
★ServiceImplはクラス
public class QuizServiceImpl implements QuizService {
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
package com.example.quiz.service;

import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.example.quiz.entity.Quiz;
import com.example.quiz.repository.QuizRepository;

@Service
public class QuizServiceImpl implements QuizService {

// Repository:注入
@Autowired
QuizRepository repository;
@Override
public Iterable selectAll() {
// TODO 自動生成されたメソッド・スタブ
return null;
}

@Override
public Optional selectOneById(Integer id) {
// TODO 自動生成されたメソッド・スタブ
return repository.findById(id);
}

@Override
public Optional selectOneRandomQuiz() {
// TODO 自動生成されたメソッド・スタブ

// ランダムでidの値を取得する
Integer randId = repository.getRandomId();
// 問題がない場合
if(randId == null) {
// 空のOptionalインスタンスを返します
return Optional.empty();
}
return repository.findById(randId);
}

@Override
public Boolean checkQuiz(Integer id, Boolean myAnswer) {
// TODO 自動生成されたメソッド・スタブ

// クイズの正解/不正解を判定用変数
Boolean check = false;
// 対象のクイズを取得
Optional optQuiz = repository.findById(id);
// 値存在チェック
if(optQuiz.isPresent()) {
Quiz quiz = optQuiz.get();
// クイズの解答チェック
if(quiz.getAnswer().equals(myAnswer)) {
check = true;
}
}
return check;
}

@Override
public void insertQuiz(Quiz quiz) {
// TODO 自動生成されたメソッド・スタブ
repository.save(quiz);
}

@Override
public void updateQuiz(Quiz quiz) {
// TODO 自動生成されたメソッド・スタブ
repository.save(quiz);
}

@Override
public void deleteQuizById(Integer id) {
// TODO 自動生成されたメソッド・スタブ
repository.deleteById(id);
}

}

Author: gaa

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です