1. 程式人生 > >關於mybatis進行Update時,無法更新的問題

關於mybatis進行Update時,無法更新的問題

2017-02-14  傳說中的情人節

問題描述:

今天進行mybatis進行update操作時候,發現程式碼一點錯沒有,但是資料庫始終沒有更新

詳細程式碼:

	public Teacher findById(int tid){
		
		try{
			 teacher = sqlSession.selectOne("TeacherNamespace.findById", tid);
			sqlSession.commit();
			MybatisUtil.closeSqlSession();
		}catch(Exception e){
			sqlSession.rollback();
		}	
		return teacher;
	}
public void update1(Teacher teacher){
		SqlSession sqlSession = MybatisUtil.getSqlSession();
	
		try{
			
			int i = sqlSession.update("TeacherNamespace.upd", teacher);
			System.out.println(i);
			sqlSession.commit();
			MybatisUtil.closeSqlSession();
		}catch(Exception e){
			System.out.println(e);
			sqlSession.rollback();			
		}		
	}

結果發現:

我自己將SqlSession sqlSession = MybatisUtil.getSqlSession();這句程式碼sqlSession設定為了全域性變數

更新操作根據ID更新,先找出ID對應的,再進行更新,因為全域性變數,所以findById和update1是共用一個sqlSession,但是在執行第一個方法時,由於習慣自己把事務關閉了,所以無法進行Update

解決辦法:

1.每個方法對應一個SqlSession物件,依舊是在每個方法的開頭,寫

Sqlsession sqlSession = MyBatisUtil.getSqlSession;

2.記住select方法不需要提交事務,也不需要關閉物件

相關推薦

關於mybatis進行Update無法更新的問題

2017-02-14  傳說中的情人節 問題描述: 今天進行mybatis進行update操作時候,發現程式碼一點錯沒有,但是資料庫始終沒有更新 詳細程式碼: public Teacher findById(int tid){ try{ teacher

【java】【mybatis】在使用mybatis進行批量插入批量更新等批量操作切割In集合List進行分批批量操作的java中的切割代碼

lse span ati 批量更新 次數 sublist 調用 size ==       紅字部分代表mybatis的批量操作調用方法:       int num = 0; int maxLength = 200; in

mybatis更新資料當資料為0無法更新

在bean中,count是long型別: private Long count; 需求就是利用下面的更新語句更新bills表中的count和amout <update id="updateBills" parameterType="map" >

Spring Boot 整合Mybatis非startermapper一直無法注入解決

本來呢,直接使用mybatis-spring-boot-starter還是挺好的,但是我們系統比較複雜,有多個數據源,其中一個平臺自己的資料來源,另外一些是動態配置出來的,兩者完全沒有關係。所以直接使用mybatis-spring-boot-starter就很麻煩了,會報下列錯誤: Caused by

MDK生成bin檔案通過USB進行IAP升級無法啟動

BOOT 更新微控制器內的使用者程式,方式一般都是模擬器,串列埠,網路口,usb DFU,另類一點CAN也行,但是這些方式都有一個共同點,必須要有相應的上位機配合操作,這個比較麻煩。 另一種方式是把我們的裝置通過USB插入電腦,在電腦上映射出一個磁碟,把升級的.bin檔案拷貝到磁碟中,b

myBatis 操作 mysql使用 like 關鍵進行模糊查詢的方法

我嘗試了以下三種方式:  一、 like '%#{mkName}%' 這種方式,myBatis直接報錯,說引數的數量不匹配。 二、 like '%'||#{mkName}||'%' 這種方式不報錯,但是查詢出來的結果是不是對的。比如,對於 mkName這個欄位,資料庫中只有 “小學”  這個值,但是當

VMware tools出現“正在進行簡易安裝無法手動啟動VMware tools安裝”解決方法

遇到的問題: 安裝VMware Tools的時候提示“正在進行簡易安裝時,無法手動啟動VMware tools安裝”的提示資訊。 解決方法如下: 1.首先關閉當前正在執行的虛擬機器,在虛擬機

安裝 VMware tools出現“正在進行簡易安裝無法手動啟動VMware tools安裝”解決方法是:

安裝VMware虛擬機器的時候如果出現“正在進行簡易安裝時,無法手動啟動VMware tools安裝”的提示資訊,如下圖所示: 解決方法是: 修改1, 修改2,確認是否為如圖所示。  

也來說說關於Hibernate使用update更新資料更新的問題

現在使用hibernate框架的雖然沒有前2年那麼多了,但是還是有很多專案在使用hibernate框架的,畢竟作為一個優秀的持久層框架,hibernate自然有存在的價值。 好了,廢話不多說,結合最近的使用,和大家一起探討一個hibernate經常遇到的問題: 問題描述:

用VMware搭建的Ubuntu無法全屏 “正在進行簡易安裝無法手動啟動 VMware Tools 安裝”解決辦法之一

第一次在這裡寫部落格。 相信有不少人遇到過這樣的問題,VM搭建的Ubuntu沒法全屏,於是去網上查,然後我們從“虛擬機器”選項中進行設定,如下圖: 相信也有很多發現這並不能改變什麼,於是筆者自己琢磨一

導入swaggerDemo無法識別工程的解決辦法

ger log 工程 無法 nbsp img logs wid 技術 1、在已建立的Java工程中,拷貝至demo中 2、打開.project修改工程名為demo的名字即可。 導入swaggerDemo時,無法識別工程的解決辦法

【BIEE】05_啟動BIEE無法啟動BI_SERVER

ini ora biee style server clas gin 無法啟動 onf 本地修改資料庫後,重新啟動BIEE,結果報錯: 點擊【查看日誌信息】後 從這裏是沒看出是什麽問題造成的,那麽我們就要去查詢啟動日誌了 問題解決 找到日誌路徑:D:\obiee\in

mybatis 關聯查詢從表只返回第一條記錄解決辦法

bean mod 第一條 solid ews 解決辦法 prop ica 元素 如果兩表聯查,主表和明細表的主鍵都是id的話,明細表的多條只能查詢出來第一條。 造成以上情況可能的

(轉)html 表單提交無法獲取到disabled屬性的input值

有效 AS 單元 java check bsp ado 控件 下拉框 input的字段當為disabled是,無法獲取值,無法改變值,所以在表單提交時,獲取不到值。可以用randomly解決這個問題。 <input name="country" id="countr

Python讀取文件使用split進行分割出現ufeff

lin replace little 讀取文件 get txt ace tty 連續 1.問題 使用python3.6對文件讀取時,按照正常套路處理,文件內容類似以下: 啊啊啊 || AAA 不不不 || BBB 當使用utf-8讀取文檔並且使用split函數分割時,發現第

gdb watch 除錯無法watch

伺服器實際執行時, 某個物件的某個變數不知道啥時候被改掉了。   用valgrind查了 ,沒有記憶體越界,  那就是邏輯上有問題。  這種情況 gdb 的 watch功能就非常好用。  它能檢測記憶體中的值被改了,就會自動斷點。

Mybatis——insert資料手動新增序列作為主鍵

利用mybatis逆向工程生成的xml檔案中,由於oracle中主鍵是number型別,所以只有通過序列來作為主鍵。   更改map.xml檔案: insert into BS_PTN_CONFIG (ID, NETWORKTYPE, CIR, PIR, DI

UICollectionView進行ReloadData隱式動畫解決

在重新整理請求後對CollectionView進行reloadData,產生如上圖所示的隱式動畫效果。 解決方式: [self.collectionView reloadData]; [UIView animateWithDuration:0 animations:^{ [

mybatis 返回Mapkey的大小寫問題

mybatis 返回Map時,key的大小寫問題    遇到一個問題,mybatis返回map型別,他的key無論如何都是大寫的。    解決方法:將需要返回的列起一個別名,並且將別名包含在引號內   如:SELECT re

android應用使用sqlite資料庫版本更新的相關問題。

首先要明確,資料庫的版本跟應用的版本不是一回事,資料庫的版本是自己在獲取資料庫時設定的。具體來說是在構造方法 public SQLiteOpenHelper(@Nullable Context context, @Nullable String name,