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

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

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

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

9149閲覧

spring boot myBatis parameterが取得できません。

aaa11

総合スコア14

Spring Security

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2021/03/29 04:11

spring bootをMybatusを使用してEclipseでプロジェクトを作成しています。Parameter(userid)が取得できずにエラーとなっております。myBatisのxmlファイルのparameterTypeなどを変更しまいしたがエラーになってしまい原因がわからず困っております。どなたかわかる方いましたらご教授ください。

java

1//エラーコード 2There was an unexpected error (type=Internal Server Error, status=500). 3nested exception is org.apache.ibatis.binding.BindingException: Parameter 'userid' not found. Available parameters are [arg1, arg0, param1, param2] 4org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'userid' not found. Available parameters are [arg1, arg0, param1, param2]

java

1@Mapper 2public interface ExampleRepository { 3=============================Parameter(userid)が取得できずにエラーになる処理================================= 4 //USER 5 WorkTime findWorkTime(String userid,String workday); 6============================================================================ 7        8      //以下省略 9}

java

1@Service 2public class WorkTimeServiceImpl implements WorkTimeService { 3 4 @Autowired 5 private ExampleRepository mapper; 6=======================//Parameter(userid)が取得できずにエラーになる処理================================ 7 @Override 8 public WorkTime findWorkTime(String userid, String workday) { 9 return mapper.findWorkTime(userid, workday); 10======================================================================================= 11 } 12}

java

1<mapper namespace="com.example.demo.repository.ExampleRepository"> 2 3<!-- =============================================================================================================== --> 4<!-- User --> 5<!-- =============================================================================================================== --> 6 7<resultMap id="UserResultMap" type="com.example.demo.entity.User"> 8<result column="userid" property="userid" jdbcType="VARCHAR" /> 9<result column="password" property="password" jdbcType="VARCHAR" /> 10<result column="role" property="role" jdbcType="VARCHAR" /> 11<result column="firstName" property="firstName" jdbcType="VARCHAR" /> 12<result column="firstName_kana" property="firstName_kana" jdbcType="VARCHAR" /> 13<result column="lastName" property="lastName" jdbcType="VARCHAR" /> 14<result column="lastName_kana" property="lastName_kana" jdbcType="VARCHAR" /> 15<result column="sex" property="sex" jdbcType="VARCHAR" /> 16<result column="birthday" property="birthday" jdbcType="VARCHAR" /> 17<result column="age" property="age" jdbcType="VARCHAR" /> 18<result column="phone" property="phone" jdbcType="VARCHAR" /> 19<result column="addressNomber" property="addressNomber" jdbcType="VARCHAR" /> 20<result column="address01" property="address01" jdbcType="VARCHAR" /> 21<result column="address02" property="address02" jdbcType="VARCHAR" /> 22<result column="joincompany" property="joincompany" jdbcType="VARCHAR" /> 23</resultMap> 24 25<!-- =============================================================================================================== --> 26<!--WorkTime--> 27<!-- =============================================================================================================== --> 28 29<resultMap id="workTimeResultMap" type="com.example.demo.entity.WorkTime" > 30<result column="id" property="id" jdbcType="INTEGER" /> 31<result column="userid" property="userid" jdbcType="VARCHAR" /> 32<result column="workday" property="workday" jdbcType="VARCHAR" /> 33<result column="attendancetimes" property="attendancetimes" jdbcType="VARCHAR" /> 34<result column="startbreaktimes" property="startbreaktimes" jdbcType="VARCHAR" /> 35<result column="endbreaktimes" property="endbreaktimes" jdbcType="VARCHAR" /> 36<result column="absencetimes" property="absencetimes" jdbcType="VARCHAR" /> 37<result column="sumworktimes" property="sumworktimes" jdbcType="VARCHAR" /> 38</resultMap> 39 40 41<!-- =================パラメーター(userid)が取得できずにエラーになる処理============================== --> 42 43<!-- findWorkTime --> 44<select id="findWorkTime" resultMap="workTimeResultMap" > 45SELECT * 46FROM worktimetable 47WHERE userid = #{userid} AND workday = #{workday} 48</select> 49============================================================================ 50 51 52 53<!-- =======================以下は処理ができる====================================== --> 54 55<!-- getWorkList --> 56<select id = "getWorkList" parameterType="java.lang.String" resultMap="workTimeResultMap"> 57SELECT * 58FROM worktimetable 59WHERE userid = #{userid} 60</select> 61 62<!-- registAttendace --> 63<insert id="registAttendace" parameterType="com.example.demo.entity.WorkTime" useGeneratedKeys="true" keyProperty="id"> 64INSERT INTO worktimetable 65(userid,workday,attendancetimes) 66VALUES 67(#{userid},#{workday},#{attendancetimes}) 68</insert> 69 70//以下省略 71 72</mapper>

java

1@Controller 2public class UserController { 3 4 @Autowired 5 private WorkTimeService service; 6 7 private LocalDate localDate = LocalDate.now(); 8 private LocalTime localTime = LocalTime.now(); 9 10 private DateTimeFormatter timeFormat = DateTimeFormatter.ofPattern("HH:mm"); 11 private DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd"); 12 13 private String workday =localDate.format(dateFormat); 14 15 private String attendancetimes =localTime.format(timeFormat); 16 private String startbreaktimes =localTime.format(timeFormat); 17 private String endbreaktimes =localTime.format(timeFormat); 18 private String absencetimes =localTime.format(timeFormat); 19 20 21 @RequestMapping("/user") 22 public String user(@AuthenticationPrincipal UserDetailsImpl user, Model model){ 23 model.addAttribute("title","ユーザー画面"); 24 return "user"; 25 } 26 27 @RequestMapping("/user/attendancetimes") 28 public String attendancetimes(@AuthenticationPrincipal UserDetailsImpl user,Model model){ 29 String userid = user.getUsername(); 30 WorkTime workTime = new WorkTime(); 31 32=============================パラメーター(userid)が取得できずにエラーになる処理==================== 33 workTime = service.findWorkTime(userid,workday); 34============================================================================ 35 36 if(workTime.getUserid() != null & workTime.getWorkday() != null) { 37 model.addAttribute("massage","すでに出勤が完了しています。"); 38 return "user"; 39 } 40 workTime.setUserid(userid); 41 workTime.setWorkday(workday); 42 workTime.setAttendancetimes(attendancetimes); 43 service.registAttendance(workTime); 44 model.addAttribute("massage","出勤しました。今日も一日がんばりましょう!!"); 45 return "user"; 46 } 47}

java

1@Data 2public class User implements Serializable{ 3 4 public User() {} 5 6 public User(String userid, String password, String role){ 7 this.userid = userid; 8 this.password = password; 9 this.role = role; 10 } 11 12 private String userid; 13 14 private String password; 15 16 private String role; 17 18 private String firstName; 19 20 private String firstName_kana; 21 22 private String lastName; 23 24 private String lastName_kana; 25 26 private String sex; 27 28 private String birthday; 29 30 private String age; 31 32 private String phone; 33 34 private String addressNomber; 35 36 private String address01; 37 38 private String address02; 39 40 private String joincompany; 41}

java

1@Data 2public class WorkTime { 3 4 private int id; 5 6 private String userid; 7 8 private String workday; 9 10 private String attendancetimes; 11 12 private String startbreaktimes; 13 14 private String endbreaktimes; 15 16 private String absencetimes; 17 18 private String sumworktimes; 19}

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

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

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

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

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

guest

回答1

0

ベストアンサー

xmlに引き渡す変数が1つの場合は、特に問題ないですが、
変数が複数ある場合は、自分でどのjavaの変数がどのxmlの変数とbindするのかを
@Paramで定義してやる必要があります。

Parameters より
https://mybatis.org/mybatis-3/ja/sqlmap-xml.html

@Select("select * from user where ${column} = #{value}") User findByColumn(@Param("column") String column, @Param("value") String value);

@Selectでselectする方法で記述されていますが、xmlで記述する場合でも同じです。

投稿2021/03/29 04:38

Luice

総合スコア766

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

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

aaa11

2021/03/29 05:26

@Mapper public interface ExampleRepository { //USER WorkTime findWorkTime(@Param("userid")String userid,@Param("workday")String workday); } の変更で正常に動作しましたがぬるぽ処理を忘れていたのでOptionalを使って処理しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問