プロジェクトの「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
// クイズ情報を、idをキーに1件取得します
Optional
// クイズ情報をランダムで1件取得します
Optional
// クイズの正解/不正解を判定します
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
// TODO 自動生成されたメソッド・スタブ
return null;
}
@Override
public Optional
// TODO 自動生成されたメソッド・スタブ
return repository.findById(id);
}
@Override
public Optional
// 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
// 値存在チェック
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);
}
}