こんにちは。
こちらのサイトを参考にspring bootとMySQLの接続を試みましたが、「Failed to obtain JDBC Connection」のエラーが発生してしまい、解消できなかった為、ご教示をお願いしたく質問させていただきます。
状況としては、「spring bootをMyBatisを用いてMySQLに接続させる」というもので、DBに格納されているIDを検索し、該当のデータを引っ張り出すというものです。
検索画面は作成できましたが、IDを入力して検索ボタンを押すと、「mysqlが接続できない」旨のエラーが発生してしまいました。
JDBCドライバを参照していても、こちらのエラーが発生してまっている状況です。
consoleerror
1[2m2021-07-06 09:55:13.679[0;39m [31mERROR[0;39m [35m20836[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36mo.a.c.c.C.[.[.[/].[dispatcherServlet] [0;39m [2m:[0;39m Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 2### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure 3 4The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 5### The error may exist in com/example/demo/repository/UserMapper.xml 6### The error may involve com.example.demo.repository.UserMapper.search 7### The error occurred while executing a query 8### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure 9 10The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.] with root cause
UserController
1package com.example.demo.controller; 2 3import java.util.List; 4 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.stereotype.Controller; 7import org.springframework.ui.Model; 8import org.springframework.web.bind.annotation.GetMapping; 9import org.springframework.web.bind.annotation.ModelAttribute; 10import org.springframework.web.bind.annotation.RequestMapping; 11import org.springframework.web.bind.annotation.RequestMethod; 12 13import com.example.demo.dto.UserSearchRequest; 14import com.example.demo.entity.User; 15import com.example.demo.service.UserService; 16 17//ユーザー情報コントローラ 18@Controller 19public class UserController{ 20 //ユーザー情報Service 21 @Autowired 22 UserService userService; 23 24 /** 25 * ユーザー情報一覧画面を表示 26 * @param model Model 27 * @return ユーザー情報一覧画面のHTML 28 */ 29 30 @RequestMapping(value = "/user/list", method = RequestMethod.GET) 31 public String displayList(Model model) { 32 List<User> userlist=userService.searchAll(); 33 model.addAttribute("userlist",userlist); 34 return "user/list"; 35 36 } 37 38 /** 39 * ユーザー情報情報検索画面を表示 40 * @param model Model 41 * @return ユーザー情報一覧画面 42 */ 43 @GetMapping(value = "/user/search") 44 public String displaySearch(Model model) { 45 return "user/search"; 46 } 47 48 /** 49 * ユーザー情報検索 50 * @param userSearchRequest リクエストデータ 51 * @param model Model 52 * @return ユーザー情報一覧画面 53 */ 54 @RequestMapping(value = "/user/id_search",method = RequestMethod.POST) 55 public String search(@ModelAttribute UserSearchRequest userSearchRequest, Model model) { 56 User user = userService.search(userSearchRequest); 57 System.out.println("テスト"); 58 model.addAttribute("userinfo",user); 59 System.out.println("試験"); 60 return "user/search"; 61 } 62}
UserService
1package com.example.demo.service; 2 3import java.util.List; 4 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.stereotype.Service; 7 8import com.example.demo.dto.UserSearchRequest; 9import com.example.demo.entity.User; 10import com.example.demo.repository.UserMapper; 11import com.example.demo.repository.UserRepository; 12 13 14//ユーザー情報Service 15 16@Service 17public class UserService { 18 //ユーザー情報Repository 19 20 UserRepository userRepository; 21 @Autowired 22 private UserMapper userMapper; 23 24 public List<User> searchAll(){ 25 //ユーザーテーブル内を全て検索する 26 return userRepository.findAll(); 27 } 28 /** 29 * ユーザー情報検索 30 * @param userSearchRequest リクエストデータ 31 * @return 検索結果 32 */ 33 public User search(UserSearchRequest userSearchRequest) { 34 System.out.println("test"); 35 return userMapper.search(userSearchRequest); 36 } 37} 38
applicationpropeties
1spring.datasource.url=jdbc:mysql://localhost:8080/sampledb?characterEncoding=UTF-8&socketTimeout=30000 2spring.datasource.username=root 3spring.datasource.password=chhagane 4spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 5spring.jpa.open-in-view= true 6spring.datasource.sql-script-encoding=utf-8 7spring.jpa.database=MYSQL 8#設定されていない場合はrootで制御 9logging.level.root=INFO 10logging.level.org.springframework.web=DEBUG 11logging.level.org.hibernate=ERROR 12#ファイルパス or ファイル名のどちらかを設定 13logging.file.name=MyLog/myLog.log 14logging.file.path=MyLog 15# Web関連のロガーのログレベルをDEBUG or TRACEへ 16logging.level.web=trace 17 18# Spring MVCへのリクエスト/レスポンスログの詳細情報出力を有効化 19spring.mvc.log-request-details=true
以上、拙い質問で大変恐縮ですが、ご教示の程宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。