mybatis中insert返回值為1,但數(shù)據(jù)庫(kù)卻沒(méi)有數(shù)據(jù)
今天在利用Mybatis框架進(jìn)行數(shù)據(jù)庫(kù)插入時(shí),遇到了好幾個(gè)超級(jí)奇怪的問(wèn)題,也可能是我真的太菜雞了。做個(gè)記錄吧~
1. 排除數(shù)據(jù)庫(kù)中表設(shè)置錯(cuò)誤
使用show variables like '%autocommit%';
查看表是否設(shè)置自動(dòng)提交
autocommit已經(jīng)設(shè)置為on,無(wú)問(wèn)題
2. 檢查測(cè)試類(lèi)代碼
Test.java
import entity.Data; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.RowBounds; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; public class Test { public static void main(String[] args) throws Exception { //加載配置文件為流 InputStream is = Resources.getResourceAsStream("MybatisDemo.xml"); //創(chuàng)建SqlSessionFactory工廠 SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is); //核心接口(發(fā)送SQL語(yǔ)句) SqlSession session = ssf.openSession(); //根據(jù)id查詢(xún) Data data=session.selectOne("com.selectData",2); System.out.println("ID:"+data.getId()+"\n"+"姓名:"+data.getName()+"\n"+"年齡:"+data.getAge()); //查詢(xún)所有 List<Data> list = session.selectList("com.selectAll"); System.out.println(list); for(int i = 0; i < list.size(); i++){ System.out.println(list.get(i).toString()); } //模糊查詢(xún) List<Data> list1 = session.selectList("com.selectLike","t"); System.out.println(list1); for(int i = 0; i < list1.size(); i++){ System.out.println(list1.get(i).toString()); } //分頁(yè)查詢(xún) Map map=new HashMap<>(); map.put("start",0); map.put("length",2); List<Data> list2 = session.selectList("com.selectPage",map); System.out.println(list2); //分頁(yè)查詢(xún) RowBounds bunds=new RowBounds(0,1); List<Data> list3= session.selectList("com.selectPage1",null,bunds); System.out.println(list3); Data data1 = new Data("楊婷婷",24); int rows=session.insert("com.insertData", data1); System.out.println(rows); //釋放資源 session.close(); } }
實(shí)際上,只有select會(huì)自動(dòng)提交,insert、update、delete并不會(huì)自動(dòng)提交,所以問(wèn)題在于代碼
并未設(shè)置一個(gè)手動(dòng)提交。
2. 兩種解決辦法
2.1 利用commit
增加一行代碼以后,發(fā)現(xiàn)并沒(méi)有什么用,證明問(wèn)題不在這。運(yùn)行后數(shù)據(jù)庫(kù)中仍然無(wú)數(shù)據(jù)。
實(shí)際上,并不是commit方法不管用,而是添加代碼位置不對(duì),應(yīng)該是session中有了相應(yīng)指令再去提交,所以將session.commit()放到insert命令后,如下:
數(shù)據(jù)成功插入數(shù)據(jù)庫(kù)。
2.2 openSession()方法參數(shù)問(wèn)題
在openSession()方法中寫(xiě)入?yún)?shù) true.
數(shù)據(jù)成功插入數(shù)據(jù)庫(kù),完美!
到此這篇關(guān)于mybatis中insert返回值為1,但數(shù)據(jù)庫(kù)卻沒(méi)有數(shù)據(jù)的文章就介紹到這了,更多相關(guān)mybatis insert返回值為1內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA配置SpringBoot熱啟動(dòng),以及熱啟動(dòng)失效問(wèn)題
這篇文章主要介紹了IDEA配置SpringBoot熱啟動(dòng),以及熱啟動(dòng)失效問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11SpringBoot生產(chǎn)環(huán)境打包如何去除無(wú)用依賴(lài)
這篇文章主要介紹了SpringBoot生產(chǎn)環(huán)境打包如何去除無(wú)用依賴(lài)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09SpringBoot項(xiàng)目讀取外置logback配置文件的問(wèn)題及解決
SpringBoot項(xiàng)目讀取外置logback配置文件的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08java?工作流引擎設(shè)計(jì)實(shí)現(xiàn)解析流程定義文件
這篇文章主要為大家介紹了java?工作流引擎設(shè)計(jì)與實(shí)現(xiàn)及流程定義文件解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05IDEA遠(yuǎn)程管理docker鏡像及容器服務(wù)的實(shí)現(xiàn)
本文主要介紹了IDEA遠(yuǎn)程管理docker鏡像及容器服務(wù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04