[JAVA] Play Framework Study Momo DB Update

(Référence) Livres que vous étudiez https://www.amazon.co.jp/Play-Framework-2%E5%BE%B9%E5%BA%95%E5%85%A5%E9%96%80-Java%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%ABWeb%E9%96%8B%E7%99%BA-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798133922/ref=cm_cr_srp_d_product_top?ie=UTF8

Comment mettre à jour une entité

Écoulement brutal

La méthode la plus simple est la suivante

  1. Recherche par ID
  2. Mettez à jour le contenu d'entrée

code

** Recherchez l'entité à mettre à jour par ID **

「routes」

GET     /item                       controllers.Application.setitem()

「Conotrller (Application.java)」 -Appeler View pour créer un formulaire d'entrée.

	public static Result setitem() {
		Form<Message> f = new Form(Message.class);
		return.ok(item.render("Entrez le numéro d'identification.",f));
	}

「View (item.scala.html)」 ・ Rendre la structure d'écran du formulaire de saisie ・ Lorsque vous appuyez sur le bouton d'envoi, les données sont envoyées pour être modifiées. ・ À l'origine, le nom et le message n'ont pas besoin d'être saisis cette fois, mais comme ce sont des entrées obligatoires en raison d'annotations, ils peuvent être masqués.

@(msg:String,form1:Form[models.Message])//Donner à form1 une fonction de formulaire

@main("Sample Page"){

    <h1>input ID Number</h1>
    <p>@msg</p>
    @helper.form(action = routes.Application.edit){

      @(helper.inputText(
        field = form1("id")//Le formulaire est sorti
      ))
      <input type="hidden" value = "dummy" name="name"/>
      <input type="hidden" value = "dummy" name="message"/>

      <input type="submit">
    }
}

** Entrez le contenu à mettre à jour **

「routes」

POST    /edit                       controllers.Application.edit()

「Conotrller (Application.java)」 -Appeler la vue pour rendre l'état d'entrée de l'entité frappée par la recherche d'ID.

	public static Result edit() {
		Form<Message> f = new Form(Message.class).bindFromRequest();
		if (!f.hasErrors()) {
			Message obj = f.get();//obj contient la valeur saisie
			Long id = obj.id;//Extraire l'identifiant de obj
			obj = Message.find.byId(id);//Recherchez une entité par identifiant et entrez le résultat de la recherche dans obj
			if (obj != null) {
				f = new Form(Message.class).fill(obj);//Incorporer l'entité saisie dans le formulaire
				return ok(edit.render("ID=" + id + "Modifiez le message.", f));
			} else {
				return ok(item.render("ERROR:Message d'identification introuvable.", f));
			}
		} else {
			return ok(item.render("ERROR:Il y a un problème avec l'entrée.", f));
		}
	}

「View (edit.scala.html)」 · Rendre la structure de l'écran du formulaire de saisie avec l'entité saisie ・ Lorsque vous appuyez sur le bouton d'envoi, les données sont envoyées pour être mises à jour.

@(msg:String,form1:Form[models.Message])

@main("Sample page"){

   <h1>Update Data</h1>
   <p>@msg</p>
   @helper.form(action=routes.Application.update){
      <input type="hidden" value="@form1("id").value" name="id"/>//L'entité à mettre à jour est spécifiée

      @(helper.inputText(
          field = form1("name")
      ))

      @(helper.inputText(
          field = form1("mail")
      ))

      @(helper.textarea(
          field = form1("message")
      ))

      <input type="submit">
   }
}

** Mettre à jour les données saisies **

「routes」

POST    /update                     controllers.Application.update()

「Conotrller (Application.java)」 ・ Mettez à jour les données et passez au premier écran avec retour

	public static Result update() {
		Form<Message> f = new Form(Message.class).bindFromRequest();
		if (!f.hasErrors()) {
			Message data = f.get();
			data.update();
			return redirect("/");
		} else {
			return ok(edit.render("ERROR:Veuillez entrer à nouveau.", f));
		}
	}

Comment supprimer une entité

** Supprimer l'écran de réception **

「routes」

GET     /del                        controllers.Application.delete()
POST    /remove                     controllers.Application.remove()

「Conotrller (Application.java)」

	public static Result delete() {
		Form<Message> f = new Form(Message.class);
		return ok(delete.render("Numéro à supprimer", f));
	}
}

「View (delete.scala.html)」 ・ Rendre l'écran de réception de suppression ・ Lorsque vous appuyez sur le bouton d'envoi, les données sont envoyées pour être supprimées.

@(msg:String,form1:Form[models.Message])

  @main("Sample Page"){

    <h1>delete data</h1>
    <p>@msg</p>
    @helper.form(action = routes.Application.remove){

      @(helper.inputText(
          field = form1("id")
      ))

    <input type="hidden" value="dummy" name="name"/>
    <input type="hidden" value = "dummy" name="message"/>

    <input type="submit">
  }
}

** Processus de suppression **

	public static Result remove() {
		Form<Message> f = new Form(Message.class).bindFromRequest();
		if (!f.hasErrors()) {
			Message obj = f.get();
			Long id = obj.id;
			obj = Message.find.byId(id);
			if (obj != null) {
				obj.delete();
				return redirect("/");
			} else {
				return ok(delete.render("ERROR:Le numéro d'identification est introuvable.", f));
			}
		} else {
			return ok(delete.render("ERROR:Il y a eu une erreur dans l'entrée", f));
		}
	}

Recommended Posts

Play Framework Study Momo DB Update
Etude Play Framework
Base de données de mémos d'étude Play Framework ①
Conseils pour Play Framework2.5 (Java)
Test d'étude de Play Framework
jouer des notes personnelles de cadre
Notes personnelles de First Play Framework
Introduction de Dozer to Play Framework
Fonction de validation dans Play Framework