データを挿入したいのですがうまくいかなくて困っています。
解決策を教えていただけませんか。エラーは出ないですが、データが挿入されていません。
src/main/resources
schema.sql
コードcreate table if not exists date(no int,word varchar primary key,year int,month int,day int);
data.sql
src/main/resources
コードINSERT INTO date (no,word,year,month,day) VALUES(1,'明日',0,0,1);
dateMapper.xml
コード<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.mapper.dateMapper"> <select id="findAll" resultType="com.example.demo.domain.Date"> select * from date </select> <select id="findOne" resultType="com.example.demo.domain.Date"> select * from date where word= #{word} </select> <insert id="save" > insert into date (no,word , year,month,day) values(#{no},#{word}, #{year},#{month},#{day}) </insert> <update id="update"> update date set year=#{year},month=#{month},day=#{day} where word=#{word} </update> <delete id="delete"> delete from date where word=#{word} </delete> </mapper>
コードpackage com.example.demo.domain; import java.time.LocalDate; import java.time.temporal.TemporalAdjusters; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import com.fasterxml.jackson.annotation.JsonIgnore; @Entity @Table(name="date") public class Date { private int no; @Id private String word; private int year; private int month; private int day; private LocalDate d1; public void setNo(int no) { this.no=no; } @JsonIgnore public int getNo() { return no; } public void setWord(String word ) { this.word=word; } public String getWord() { return word; } public void setYear(int year) { this.year=year; } public int getYear() { return year; } public void setMonth(int month) { this.month=month; } public int getMonth() { return month; } public void setDay(int day) { this.day=day; } public int getDay() { return day; } public void setD1(LocalDate d1) { this.d1=d1; } @JsonIgnore public LocalDate getD1() { return d1; } public void calculate(LocalDate X) { if(word.equals("翌月末")) { LocalDate A=X.plusMonths(2); LocalDate B=A.with(TemporalAdjusters.firstDayOfMonth()); LocalDate C=B.minusDays(1); setD1(C); }else if(word.equals("月末")){ LocalDate K=X.plusMonths(1); LocalDate L=K.with(TemporalAdjusters.firstDayOfMonth()); LocalDate M=L.minusDays(1); setD1(M); }else { LocalDate R= X.plusYears(getYear()); LocalDate R1= R.plusMonths(getMonth()); LocalDate d1= R1.plusDays(getDay()); setD1(d1); } } }
Dateクラスをどこから読んでるのでしょうか。
※ただ、予約語ではなくても既存クラスと同じ名前のクラスはあまりよろしくないかと。
理解が足りないかもしれませんが、データを挿入するにあたりDateクラスは関係あるのでしょうか。
提示しておいて関係あるもないもないかと思いますが、そもそもどこからも呼ばれてないなら実行もされないのですよね。どのようにマッピングしたつもりなのかも追記願います。
hibernate (Date クラス カラ )なの? mybatis ( mapper カラ ) なの?
data.sqlが起動時に実行されないってことですか?
でしたら、application.propertyに設定が必要だったと思います。
あなたの回答
tips
プレビュー