91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis中insert返回值為1但數據庫卻沒有數據的原因

發布時間:2020-10-26 14:56:38 來源:億速云 閱讀:1962 作者:Leah 欄目:開發技術

mybatis中insert返回值為1但數據庫卻沒有數據的原因?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1. 排除數據庫中表設置錯誤

使用show variables like '%autocommit%';查看表是否設置自動提交

mybatis中insert返回值為1但數據庫卻沒有數據的原因

autocommit已經設置為on,無問題

2. 檢查測試類代碼

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");
  //創建SqlSessionFactory工廠
  SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
  //核心接口(發送SQL語句)
  SqlSession session = ssf.openSession();

  //根據id查詢
  Data data=session.selectOne("com.selectData",2);
  System.out.println("ID:"+data.getId()+"\n"+"姓名:"+data.getName()+"\n"+"年齡:"+data.getAge());
  //查詢所有
  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());
  }

  //模糊查詢
  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());
  }

  //分頁查詢
  Map map=new HashMap<>();
  map.put("start",0);
  map.put("length",2);
  List<Data> list2 = session.selectList("com.selectPage",map);
  System.out.println(list2);

  //分頁查詢
  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();
 }
}

實際上,只有select會自動提交,insert、update、delete并不會自動提交,所以問題在于代碼

mybatis中insert返回值為1但數據庫卻沒有數據的原因

并未設置一個手動提交。

2. 兩種解決辦法

2.1 利用commit

mybatis中insert返回值為1但數據庫卻沒有數據的原因

增加一行代碼以后,發現并沒有什么用,證明問題不在這。運行后數據庫中仍然無數據。

mybatis中insert返回值為1但數據庫卻沒有數據的原因

實際上,并不是commit方法不管用,而是添加代碼位置不對,應該是session中有了相應指令再去提交,所以將session.commit()放到insert命令后,如下:

mybatis中insert返回值為1但數據庫卻沒有數據的原因

數據成功插入數據庫。

2.2 openSession()方法參數問題

在openSession()方法中寫入參數 true.

mybatis中insert返回值為1但數據庫卻沒有數據的原因

mybatis中insert返回值為1但數據庫卻沒有數據的原因

數據成功插入數據庫,完美!

關于mybatis中insert返回值為1但數據庫卻沒有數據的原因問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇康县| 当雄县| 元朗区| 大宁县| 黄骅市| 襄樊市| 秭归县| 酉阳| 随州市| 吉木乃县| 辽中县| 于都县| 越西县| 图片| 静安区| 聊城市| 衡山县| 册亨县| 抚宁县| 瑞昌市| 明溪县| 江都市| 南皮县| 中宁县| 腾冲县| 岳池县| 福安市| 额济纳旗| 应用必备| 蒙自县| 东丰县| 福贡县| 海阳市| 甘肃省| 沙坪坝区| 漳平市| 白河县| 怀远县| 台北县| 慈溪市| 将乐县|