springboot no.を自動で割り当てたい
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 306
no.を自動で割り当てたい。ここに言語を入力java
コード
package com.example.demo.controller;
@Controller
@RequestMapping("/")
public class dateController {
@Autowired
dateMapper mapper;
@Autowired
private dateRepository repository;
@GetMapping
public String top(Model model) {
model.addAttribute("dates", mapper.findAll());
return "new";
}
@PostMapping("/new")
public String create(@ModelAttribute Date date,Model model) {
mapper.save(date);
return "redirect:/";
}
@GetMapping("/edit/{word}")
public ModelAndView edit(@PathVariable String word, @ModelAttribute Date date ,ModelAndView mav) {
mav.addObject("date",mapper.findOne(word) );
mav.setViewName("edit");
return mav;
}
@PostMapping("/edit")
@Transactional
public String update( @ModelAttribute("date")Date date, Model model) {
mapper.update(date);
return "redirect:/";
}
@PostMapping("/calculate")
public String cal( @RequestParam("d")LocalDate d ,Model model) {
List<Date> D=repository.findAll();
for(int i=0;D.size()>i;i++) {
D.get(i).calculate(d);
}
model.addAttribute("R",repository.findAll());
return "new";
}
@PostMapping("/delete/{word}")
public String delete(@PathVariable String word ,Model model) {
mapper.delete(word);
return "redirect:/";
}
}
package com.example.demo.domain;
@Entity
@Table(name="date")
public class Date {
private LocalDate d1;
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long no.;
@Id
private String word;
private String name;
private int year;
private int month;
private int day;
public void setNo.(Long no.) {
this.no.=no.;
}
public Long getNo() {
return no;
}
public void setWord(String word) {
this.word=word;
}
public String getWord() {
return word;
}
public void setName(String name) {
this.name=name;
}
public String getName() {
return name;
}
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;
}
public LocalDate getD1() {
return d1;
}
public void calculate(LocalDate X) {
LocalDate R= X.plusYears(getYear());
LocalDate R1= R.plusMonths(getMonth());
LocalDate d1= R1.plusDays(getDay());
setD1(d1);
}
}
<?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" useGeneratedKeys="true" keyProperty="word">
insert into date (no.,word, name , year,month,day) values(#{no.},#{word}, #{name}, #{year},#{month},#{day})
</insert>
<update id="update">
update date set name=#{name}, year=#{year},month=#{month},day=#{day} where word= #{word}
</update>
<delete id="delete">
delete from date where word = #{word}
</delete>
</mapper>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
計算式
<th:text="${msg}">
<form th:objext="${form}" th:method="post" th:action="@{/new}">
日付ID <input type="text" name="word" th:value="${word}" ><br>
名前<input type="text" name="name" th:value="${name}"><br>
加減(Y)<input type="text" name="year" th:value="${year}"><br>
加減(M)<input type="text" name="month" th:value="${month}"><br>
加減(D)<input type="text" name="day" th:value="${day}"><br>
<button type="submit">登録</button>
</form>
日付
<form method="post" th:action="@{/calculate}" th:object="${date}"
><input type="datetime" placeholder="yyyy/MM/dd" name="d" th:value="${d}">
<button value="submit">実行</button>
</form>
<td th:text="${result}"></td>
<table>
<tr >
<td>no</td>
<td>日付ID</td>
<td>名前</td>
<td >結果</td>
<td >加減(Y/M/D)</td>
</tr>
<tr th:each="obj:${R}" th:object="${obj}">
<td th:text="*{no.}"></td>
<td th:text="*{word}" ></td>
<td th:text="*{name}"></td>
<td th:text="*{d1}" ></td>
<td th:text="|*{year}/*{month}/*{day}|">
<td><form method="get" th:action="@{/edit/{word}(word=*{word})}">
<button value="submit">更新</button></form></td>
<td><form method="post" th:action="@{/delete/{word}(word=*{word})}">
<button value="submit">削除</button>
</form></td>
</table>
</body>
</html>
data.sql
CREATE TABLE IF NOT EXISTS date(
no. int(20) NOT NULL AUTO_INCREMENT,
word varchar ,
name varchar(255) ,
year INT ,
month INT ,
day INT ,
PRIMARY KEY (word)
);
プライマリキーをword(日付ID)にしています。noを自動的に1,2,3と割り当てたいのですがどうすればいいか困っています。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
{利用しているDB} オートインクリメント
で調べてみてください。
それで難しそうなら、とりあえずで「今のIDのMAX+1」で良いと思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.10%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
m.ts10806
2020/05/06 17:25
コードやエラーはマークダウンのcode機能を利用してご提示ください。
https://teratail.com/questions/238564
m.ts10806
2020/05/06 17:26
あと、利用しているDBの種類を記載してください。
uuun
2020/05/06 17:48
DBはresources下のSQLファイルです。
dateControllerに
for(int i=0;D.size()>i;i++) {
D.get(i).calculate(d);
D.get(i).setNo(i+1);
} とnoに関するメソッドを書くと解決しました。ありがとうございました。code機能をこれからは使います。
m.ts10806
2020/05/06 17:50
質問は編集できます。「次から」だと必ず抜けますので、今対応しておいてください。
m.ts10806
2020/05/06 17:51
>DBはresources下のSQLファイルです。
いや、SQLはそういうコードそのものであってDBの種類関係ないです。
https://engineer-club.jp/type-of-database#i
m.ts10806
2020/05/07 10:24
解決されたようですがコードがそのままですし「どのように解決としたのか」というコメントもないまま無言解決になっています。
ただ、おそらくこの理解度ではフレームワークは厳しいのではないかと思います。きちんとJavaサーブレットで基礎を叩き込んでからのほうが良いです。このまま進めたほうが遠回りになります。