質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Q&A

解決済

1回答

5098閲覧

springbootのMysqlの接続について

heavyuseman

総合スコア42

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

0グッド

1クリップ

投稿2016/08/21 01:48

編集2016/08/21 12:35

###前提・実現したいこと
springbootで会員登録画面を作成しています。
使用しているDBはMysqlです。
DB上のカラムはID,名前,メモです。
会員登録画面で名前とメモのテキストボックスに値を入力して、送信ボタンを押下したんですが、
DBにはIDだけ値が入っており、名前とメモにテキストボックスに入力した値が入っていないのですが、
原因は何になるのでしょうか?
ご回答のほど宜しくお願い致します

エラーメッセージ(修正後) 2016-08-21 21:29:22.614 INFO 1279 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2016-08-21 21:29:23.410 INFO 1279 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup 2016-08-21 21:29:23.507 INFO 1279 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 2016-08-21 21:29:23.515 INFO 1279 --- [ main] c.t.springboot.SokutakuhaiApplication : Started SokutakuhaiApplication in 8.004 seconds (JVM running for 8.653) 2016-08-21 21:29:31.213 INFO 1279 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet' 2016-08-21 21:29:31.213 INFO 1279 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started 2016-08-21 21:29:31.238 INFO 1279 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 25 ms 2016-08-21 21:29:31.335 INFO 1279 --- [nio-8080-exec-1] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory 2016-08-21 21:29:31.580 ERROR 1279 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.orm.jpa.JpaSystemException: No default constructor for entity: : com.tuyano.springboot.MyDataMongo; nested exception is org.hibernate.InstantiationException: No default constructor for entity: : com.tuyano.springboot.MyDataMongo] with root cause org.hibernate.InstantiationException: No default constructor for entity: : com.tuyano.springboot.MyDataMongo at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:84) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final] at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:100) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final] at org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiate(AbstractEntityTuplizer.java:631) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final] at org.hibernate.persister.entity.AbstractEntityPersister.instantiate(AbstractEntityPersister.java:4616) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final] at org.hibernate.internal.SessionImpl.instantiate(SessionImpl.java:1470) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final] at org.hibernate.internal.SessionImpl.instantiate(SessionImpl.java:1454) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final]

java

1HeloController(修正後) 2package com.tuyano.springboot; 3 4import java.util.List; 5 6import org.springframework.beans.factory.annotation.Autowired; 7import org.springframework.stereotype.Controller; 8import org.springframework.transaction.annotation.Transactional; 9import org.springframework.web.bind.annotation.RequestMapping; 10import org.springframework.web.bind.annotation.RequestMethod; 11import org.springframework.web.bind.annotation.RequestParam; 12import org.springframework.web.servlet.ModelAndView; 13 14import com.tuyano.springboot.repositories.MyDataMongoRepository; 15 16@Controller 17public class HeloController { 18 19@Autowired 20MyDataMongoRepository repository; 21 22@RequestMapping(value="/",method=RequestMethod.GET) 23public ModelAndView index(ModelAndView mav){ 24 mav.setViewName("index"); 25 mav.addObject("title","Find Page"); 26 mav.addObject("msg","サンプルです"); 27 Iterable<MyDataMongo> list=repository.findAll(); 28 mav.addObject("datalist",list); 29 System.out.println(mav); 30 return mav; 31} 32@RequestMapping(value="/",method=RequestMethod.POST) 33 34public ModelAndView form( 35 @RequestParam("name")String name, 36 @RequestParam("memo")String memo, 37 ModelAndView mov){ 38 MyDataMongo mydata =new MyDataMongo(name,memo); 39 System.out.println("mydataは"+mydata); 40 repository.saveAndFlush(mydata); 41 mov =new ModelAndView("redirect:/"); 42 System.out.println("mov"+mov); 43 return mov; 44} 45 46@RequestMapping(value="/find",method=RequestMethod.GET) 47public ModelAndView find(ModelAndView mav){ 48 mav.setViewName("find"); 49 mav.addObject("title","Find Page"); 50 mav.addObject("msg","サンプルです"); 51 mav.addObject("value",""); 52 Iterable<MyDataMongo> list=repository.findAll(); 53 mav.addObject("datalist",list); 54 System.out.println(mav); 55 return mav; 56} 57@RequestMapping(value="/find",method=RequestMethod.POST) 58public ModelAndView search( 59 @RequestParam("find")String param, 60 ModelAndView mav){ 61 mav.setViewName("find"); 62 if(param==""){ 63 mav =new ModelAndView("redirect:/find"); 64 }else{ 65 mav.addObject("title","Find Result"); 66 mav.addObject("msg","["+param+"]の検索結果"); 67 mav.addObject("value",param); 68 List<MyDataMongo> list=repository.findByName(param); 69 mav.addObject("dataList",list); 70} 71return mav; 72} 73}

java

1MyDataMongo.java(修正後) 2package com.tuyano.springboot; 3 4import java.util.Date; 5 6import javax.persistence.Column; 7import javax.persistence.Entity; 8import javax.persistence.GeneratedValue; 9import javax.persistence.GenerationType; 10import javax.persistence.Id; 11import javax.persistence.Table; 12@Entity 13@Table(name="Linefriend") 14public class MyDataMongo { 15@Id 16@GeneratedValue(strategy=GenerationType.AUTO) 17@Column 18private Long id; 19 20@Column 21private String name; 22@Column 23private String memo; 24//private Date date; 25public MyDataMongo(String name, String memo) { 26 super(); 27 this.name=name; 28 this.memo=memo; 29} 30 31//public void setId(Long id){ 32 33// this.id=id; 34 35//} 36 37public Long getId(){ 38 39 return id; 40 41} 42 43 44public String getName(){ 45 46 return name; 47 48} 49 50 51 52 53 54public String getMemo(){ 55 56 return memo; 57 58} 59 60 61 62 63 64 65} 66 67

HTML

1・index.html 2<!DOCTYPE html> 3<html xmlns:th="http://www.thymeleaf.org"> 4<head> 5<title>top page</title> 6<meta http-equiv="Content-Type" 7content="text/html" charset="UTF-8"/> 8</head> 9<body> 10 11 <h1 th:text="#{context.title}">Helo Page</h1> 12 <p th:text="${msg}"></p> 13 <table> 14 <form method="post" action="/"> 15 <tr><td><label for="name">名前</label></td> 16 <td><input type="text" name="name"/></td></tr> 17 <tr><td><label for="memo">メモ</label></td> 18 <td><textarea name="memo" cols="20" rows="5"></textarea></td></tr> 19 <tr><td></td><td><input type="submit" /></td></tr> 20 </form> 21 </table> 22 <hr /> 23 <table> 24 <tr><th>名前</th><th>メモ</th><th>日時</th></tr> 25 <tr th:each="obj :${datalist}"> 26 <td th:text="${obj.name}"></td> 27 <td th:text="${obj.memo}"></td> 28 29 </tr> 30 </table> 31 32</body> 33</html>

java

1MyDataMongoRepository.java 2package com.tuyano.springboot.repositories; 3 4import java.util.List; 5 6import org.springframework.data.jpa.repository.JpaRepository; 7import org.springframework.stereotype.Repository; 8 9import com.tuyano.springboot.MyDataMongo; 10@Repository 11public interface MyDataMongoRepository extends JpaRepository<MyDataMongo,Long>{ 12List<MyDataMongo>findByName(String s); 13} 14

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

argius

2016/08/21 03:46

コード部分は``` ```で囲んで下さい。 コード部分を選択してから編集画面の上部にある<code>ボタンを押すと自動で囲んでくれます。
heavyuseman

2016/08/21 06:52

コード部分を``` ```で囲むように修正いたしましたので宜しくお願い致します
argius

2016/08/21 07:40

囲むのに失敗しているようです。正しく囲むと→の質問 https://teratail.com/questions/44970 のような表示になります。 正しく囲めたかどうかは右側に表示されるプレビュー画面で確認できますので、確認しながら行ってください。 囲むのはファイル1つずつ行ってください。
heavyuseman

2016/08/21 07:55

コードの箇所を``` ```で囲むように再度修正いたしましたので宜しくお願い致します。
guest

回答1

0

ベストアンサー

HeloControllerform()メソッドで、MyDataMongo mydata =new MyDataMongo();の後でそのまま何もせず登録してますが、これに入力された値を設定してあげる必要があります。

投稿2016/08/21 11:56

argius

総合スコア9390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

heavyuseman

2016/08/21 12:42

ご回答ありがとうございます。ご指摘していただきましたように修正したところ下記のエラーメッセージが表示されました。 No default constructor for entity: : com.tuyano.springboot.MyDataMongo; nested exception is org.hibernate.InstantiationException: No default constructor for entity: : com.tuyano.springboot.MyDataMongo MyDataMongoクラスを修正したりしたのですが、変わらずこのエラーが出現するのですが、原因は何でしょうか? 本文のコードで修正したコードをを以下に記載しました ・エラーメッセージ(修正後) ・HeloController(修正後) ・MyDataMongo.java(修正後) 以上です。ご回答のほど宜しくお願い致します
argius

2016/08/21 12:53

MyDataMongoにデフォルトコンストラクターが無い(No default constructor for entity MyDataMongo)と言っているので、デフォルトコンストラクターを追加してみて下さい。 それでダメなら、MyDataMongoを前の状態に戻して、値はsetメソッドを使ってセットするように修正してください。
heavyuseman

2016/08/23 11:19

デフォルトコンストラクトを設定し、@ModelAttributeを使って実行したところ、正常にDBに値が入りました。ご解答して頂きありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問