Mybatis入門教程之新增、更新、刪除功能
上一節(jié)說了Mybatis的框架搭建和簡單查詢,這次我們來說一說用Mybatis進(jìn)行基本的增刪改操作;
一、 插入一條數(shù)據(jù)
1、首先編寫USER.XML(表的xml)使用insert元素,元素寫在mapper中:
<insert id="insertitem" parameterType="cn.qkp.po.user">
INSERT INTO user(username,birthday,sex,address) VALUES(#{username},#{ birthday},#{sex},#{address})
</insert>
注意:這里的parameterType使用了實(shí)體對象的類型。因?yàn)?{}和${}可以接收pojo數(shù)據(jù),可以使用OGNL解析出pojo的屬性值;如:#{username}為獲取pojo中username的屬性值,切記使用實(shí)體對象類型,在大括號中要保持?jǐn)?shù)據(jù)一致;
2、在運(yùn)行java文件中的代碼(MybatisFrist.java中):
@Test
public void start3(){
SqlSession session = sqlsessionfactory.openSession();//打開SqlSession
User user = new User();//創(chuàng)建實(shí)體對象
user.setUsername("mylydg");
user.setSex("1");
user.setBirthday(new Date());
session.insert("test.insertUser", user);//執(zhí)行插入
session.commit();//提交事務(wù)
session.close();//關(guān)閉連接
}
以上便是基本的數(shù)據(jù)插入操作,使用對象來操作Mybatis進(jìn)行插入;
PS:拓展(如何獲得插入數(shù)據(jù)的主鍵返回)?
看如下代碼操作:
1.1、在insert元素中使用selectKey元素
<insert id="insertitem" parameterType="cn.qkp.pojo.user"> <!-- 1、語句select LAST_INSERT_ID()為查找最后插入元素的id 2、order屬性表示相對insert語句在什么時候執(zhí)行,有兩個參數(shù)"AFTER"之后和"BEFORE"之前 3、resultType屬性表示返回值的類型 4、keyProperty表示返回到的屬性,切記要與insert中的parameterType類型的值相同,它會把值返回給parameterType對象 --> <selectKey order="AFTER" resultType="int" keyProperty="id"> select LAST_INSERT_ID() </selectKey>
1.2、在運(yùn)行java文件中的代碼(MybatisFrist.java中)直接通過之前傳入的對象的user.Id獲得即可
@Test
public void start3(){
SqlSession session = sqlsessionfactory.openSession();//打開SqlSession
User user = new User();//創(chuàng)建實(shí)體對象
user.setUsername("mylydg");
user.setSex("1");
user.setBirthday(new Date());
session.insert("test.insertUser", user);//執(zhí)行插入
session.commit();//提交事務(wù)
session.close();//關(guān)閉連接
System.out.println("the id ="+user.getId());//獲得主鍵并打印
}
二、更新數(shù)據(jù)操作
1、在表xml(user.xml,寫在mapper中):
<update id="update" parameterType="cn.qkp.mybatis.po.User">
update user set username = #{username},sex = #{sex},birthday = #{birthday},address = #{address} where id=#{id}
</update>
2、在運(yùn)行java文件中的代碼(MybatisFrist.java中):
@Test
public void update(){
//通過工廠類打開數(shù)據(jù)接口
SqlSession sqlsession = sqlsessionfactory.openSession();
//設(shè)置接收對象
User user = new User();;
user.setUsername("mylydg");
user.setSex("1");
user.setBirthday(new Date());
user.setAddress("the address");
user.setId(27);
try {
//查詢數(shù)據(jù)selectOne為查詢一條的方法第一個參數(shù)是user.xml中的namespace.id;第二個參數(shù)是user配置文件中的#{id}
sqlsession.update("test.update", user);
sqlsession.commit();
} catch (Exception e) {
// TODO: handle exception
}finally{
sqlsession.close();//讀完要關(guān)閉sqlsession
}
System.out.println("the id ="+user.getId());//打印輸出
}
運(yùn)行方法后,則可以更新指定id的一條數(shù)據(jù)
三、刪除一條數(shù)據(jù)的操作
1、在表xml文件(user.xml,寫在mapper中):
<delete id="delete" parameterType="int">
delete from user where id = #{id}
</delete>
2、在運(yùn)行java文件中的代碼(MybatisFrist.java中):
@Test
public void delete(){
//通過工廠類打開數(shù)據(jù)接口
SqlSession sqlsession = sqlsessionfactory.openSession();
try {
//查詢數(shù)據(jù)selectOne為查詢一條的方法第一個參數(shù)是user.xml中的namespace.id;第二個參數(shù)是user配置文件中的#{id}
sqlsession.delete("test.delete", 27);
sqlsession.commit();
} catch (Exception e) {
// TODO: handle exception
}finally{
sqlsession.close();//讀完要關(guān)閉sqlsession
}
運(yùn)行方法后便可以刪除指定id的一條數(shù)據(jù)。
以上所述是小編給大家介紹的Mybatis入門教程之新增、更新、刪除功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
java遞歸設(shè)置層級菜單的實(shí)現(xiàn)
本文主要介紹了java遞歸設(shè)置層級菜單的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
JPA之EntityManager踩坑及解決:更改PersistenceContext
這篇文章主要介紹了JPA之EntityManager踩坑及解決:更改PersistenceContext方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
使用java反射將結(jié)果集封裝成為對象和對象集合操作
這篇文章主要介紹了使用java反射將結(jié)果集封裝成為對象和對象集合操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
如何在SpringBoot中使用logback優(yōu)化異常堆棧的輸出詳解
最近項(xiàng)目中整合了logback,所以下面這篇文章主要給大家介紹了關(guān)于如何在SpringBoot中使用logback優(yōu)化異常堆棧的輸出,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
SpringBoot Data JPA 關(guān)聯(lián)表查詢的方法
這篇文章主要介紹了SpringBoot Data JPA 關(guān)聯(lián)表查詢的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
springboot prototype設(shè)置多例不起作用的解決操作
這篇文章主要介紹了springboot prototype設(shè)置多例不起作用的解決操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09

