您好,登錄后才能下訂單哦!
這篇文章主要介紹“selectKey標簽的作用是什么”,在日常操作中,相信很多人在selectKey標簽的作用是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”selectKey標簽的作用是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1.為什么要使用selectKey
數據庫主鍵包括自增和非自增,有時候新增一條數據不僅僅知道成功就行了,后邊的邏輯可能還需要這個新增的主鍵,這時候再查詢數據庫就有點耗時耗力,我們可以采用selectKey來幫助我們獲取新增的主鍵
2.具體實現demo
查詢數據庫最簡單的幾步
2.1 controller
@Controller
public class SelectKeyController {
@Autowired
SelectKeyServiceImpl selectKeyService;
public Integer String(){
Goods goods = new Goods();
goods.setAmount("100");
goods.setGname("紅燒肉");
goods.setMid("666666");
goods.setPrice("25");
int insert = selectKeyService.insert(goods);
System.out.println("執行成功條數: " + insert);
System.out.println(goods.getId());
return goods.getId();
}
}
2.2 service
@Service
public class SelectKeyServiceImpl implements SelectKeyService {
@Autowired
SelectKeyMapper selectKeyMapper;
@Override
public int insert(Goods goods) {
int insert = selectKeyMapper.insert(goods);
return insert;
}
}
2.3 mapper
public interface SelectKeyMapper {
int insert(Goods goods);
}
2.4 實體類(根據自己數據庫表來寫)
@Data
public class Goods {
//自增主鍵
private Integer id;
private String mid;
private String gname;
private String price;
private String amount;
private String imageName;
}
3.mapper.xml 文件
<mapper namespace="com.example.wjtweb.mapper.SelectKeyMapper">
<insert id="insert" parameterType="com.example.wjtweb.pojo.Goods">
<selectKey keyProperty="id" order="AFTER" resultType="Integer">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO Goods (MID,GNAME,PRICE,AMOUNT,imageName)
VALUES (#{mid},#{gname},#{price},#{amount},#{imageName});
</insert>
</mapper>
selectKey 會將 SELECT LASTINSERTID()的結果放入到傳入的model的主鍵里面,keyProperty 對應的model中的主鍵的屬性名,這里是 Goods 中的id,因為它跟數據庫的主鍵對應order AFTER 表示 SELECT LASTINSERTID() 在insert執行之后執行,多用與自增主鍵,BEFORE表示SELECT LASTINSERTID() 在insert執行之前執行,這樣的話就拿不到主鍵了,這種適合那種主鍵不是自增的類型resultType 主鍵類型
到此,關于“selectKey標簽的作用是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。