亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java/SpringBoot Web 應用程序。插入具有自動遞增 id 列的新行

Java/SpringBoot Web 應用程序。插入具有自動遞增 id 列的新行

波斯汪 2024-01-25 10:38:36
我正在嘗試使用 Web 應用程序上的一些輸入行將新行存儲到 SQL 表中。我的 jsp 具有我需要的所有輸入行。但是,我需要存儲新對象而不輸入新 Id,因為它是自動遞增的。我可以調用構造函數來存儲除 id 之外的所有內容。到目前為止我該部分的代碼是: @RequestMapping(value = "/save", method = RequestMethod.POST)    public ModelAndView save            //Index connect            (@RequestParam("id") String id, @RequestParam("type") String animalType,             @RequestParam("name") String animalName, @RequestParam("age") int animalAge){        ModelAndView mv = new ModelAndView("redirect:/");        AnimalConstruct newAnimal;        newAnimal.setAnimalType(animalType);        newAnimal.setAnimalName(animalName);        newAnimal.setAnimalAge(animalAge);        animals.save(newAnimal);        mv.addObject("animalList", animals.findAll());        return mv;因此,如果我想存儲“(id)11,(type)bird,(name)patty,(age)5”,并且我只將類型、名稱和年齡設置為可輸入,那么我應該對 id 做什么?我認為該對象在技術上將 id 注入為空,但隨后我拋出了一個錯誤。我對 java 和 Springboot 都很陌生,并且在這兩個方面的技能都非常薄弱。
查看完整描述

3 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

JPA 實現(例如 Hibernate)會帶來神奇的效果。只需注釋您的 id 字段,例如:

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;

保存對象時,將自動生成并存儲 id。

檢查一些類似的問題:Hibernate Auto Increment IDHow to autogenerateprimarykeyidproperly with Hibernateinsertingrecords


查看完整回答
反對 回復 2024-01-25
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

當您希望創建對象時,不應傳遞 ID。


@RequestMapping(value = "/protected", method = RequestMethod.POST)

public RouteDocument doPost(@RequestBody RouteDocument route) throws ControllerException {

    createNewRoute(route);

    return route;

}

在前面的示例中,createNewRoute 方法調用數據庫,在我的例子中使用 spring JpaTemplate 來保存它。對象路由有一個由 JpaTemplate.save 填充的 ID 屬性。因此,doPost 返回對象返回的對象與作為參數傳遞的對象相同,但具有自動分配的 ID。


查看完整回答
反對 回復 2024-01-25
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

使用以下內容注釋 bean 中的 id 列:

@Id
@GeneratedValue (strategy = GenerationType.IDENTITY)
private long id;

正如上面 @pedrohreis 所回答的,您也可以使用GenerationType.AUTO,但前提是您的唯一目的是使自動增量 id 那么我更喜歡GenerationType.IDENTITY

另外,在您的項目中,如果您想禁用數據的批量更新,那么您應該使用GenerationType.IDENTITY.

參考:休眠標識符


查看完整回答
反對 回復 2024-01-25
  • 3 回答
  • 0 關注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號