隨筆分類 - DAO層框架
摘要:背景 上一篇講了我們從另外一個部門遷移了一個線上系統回來,遷回來是為啥呢,因為這個好幾年沒新需求的系統,突然有新需求要開發,然后我就開發唄,其實就是在某個服務里加點表,然后提供個查詢接口給app。這個服務用的架構是廠商的,不是servlet容器那一套,它技術還是很厲害,其實是c語言寫了個reacto
閱讀全文
摘要:背景 突然就想起了一句話,“有的路,必須得自己走”,就是說,父母或者長輩有時候苦口婆心地勸說年輕一輩走自己認為對的路,但是呢,年輕人經常很叛逆,不愿意走別人指的路,雖然,若干年后,他發現父母長輩指的路是對的。 我今天這個bug吧,說起來,好早我就知道了,比如做一個后臺系統,分頁查詢,很常見吧。 se
閱讀全文
摘要:背景 上一篇中講述了mybatis的mapper初始化過程和執行過程,這篇再講講具體的攔截器的使用,以實現記錄sql到持久化存儲,通過分析這些sql,我們就能更方便地建立索引。 利用mybatis攔截器記錄sql,輔助我們建立索引(一) 我本地項目的大概版本: spring boot版本2.7,my
閱讀全文
摘要:背景 由于現在的工作變成了帶別的小伙子一起做項目,就導致,整個項目中的代碼不再全部都是自己熟悉的,可能主要是熟悉其中的部分代碼。 但是最終項目上線,作為技術責任人,線上出任何問題,我都有責任(不管是不是我的代碼)。其中,慢sql就是其中的一個風險點,解決這個風險的辦法,一般就是建索引。建索引的前提是
閱讀全文
摘要:# 前言 本篇其實是承接前面兩篇的,都是講定位線上的c3p0數據庫連接池,發生連接泄露的問題。 第二篇講到,可以配置兩個參數,來找出是哪里的代碼借了連接后沒有歸還。但是,在我這邊的情況是,對于沒有歸還的連接,借用者的堆棧確實是打印到日志了,但是我在本地模擬的時候,發現其實這些場景是有歸還連接的,所以
閱讀全文
摘要:# 背景 本篇是c3p0連接泄露問題的第二篇,在前面一篇里面,大體介紹了問題,問題就是,我們發現線上服務不響應的原因是拿不到連接。而為啥拿不到連接呢,因為空閑鏈表為空,那么為什么空閑鏈表為空呢? 這個我一開始的猜測就是,估計是某處代碼從連接池里獲取了連接,用完了沒有歸還,那么,怎么才能找到這些罪惡的
閱讀全文
摘要:# 背景 這篇文章是寫給有緣人的,為什么這么說呢,因為本篇主要講講數據庫連接池之c3p0-0.9.1.2版本。 年輕的朋友,可能沒怎么聽過c3p0了,或者也僅限于聽說,這都很正常,因為c3p0算是200幾年時比較流行的技術,后來,作者消失了好幾年,12年重新開始維護,這時候已經出現了很多第二代線程池
閱讀全文
摘要:前言 有好一陣沒碰mybatis了,這次的項目基于性能考慮,選了mybatis,寫著寫著,發現有下面的需求,比如兩表聯查,取其中各一部分字段,怎么更方便地用vo來接,這里犯了難; 我想的是,因為這個sql聯查的vo,能不能直接使用兩個表的po來接呢,比如下面這種: Users、SeatInforma
閱讀全文
摘要:需求描述 需求是這樣的:因為我們目前的一個老項目是Oracle數據庫的,這個庫呢,數據庫是沒有注釋的,而且字段名和表名都是大寫風格,比如 在代碼層面的po呢,以前也是沒有任何注釋的,但是經過這些年,大家慢慢踩坑多了,也給po加上了一些注釋了,比如: 現狀就是這樣,再說說目標是:希望把這個庫能轉成my
閱讀全文
摘要:一、前言 這個東西,難度幾乎沒有,就是繁瑣。 一條簡單的select count(*) from table_name 都能有多種書寫方式。 總是忘,這里記錄下。 一 、通過Criteria 查詢 查詢行數: 查詢列表: 二、通過原生sql查詢 查詢行數: 查詢列表: 1、返回的item為數據庫表對
閱讀全文
摘要:遇到個bug,數據庫時間存儲用了datetime,但是下面的java jpa代碼,查詢回來,卻只有日期。 中的 注意:改成TIME也不行,一定要是TIMESTAMP
閱讀全文
摘要:一、問題概述 忙了一段時間的jenkins持續集成,又要開始開發任務了。這兩天在用mybatis generator來逆向生成dao層工程。 其中一個問題在于,組長在設計表的時候,不少枚舉使用了smallint類型,如下: 然后,mybatis generator就會針對smallint類型的列,生
閱讀全文
摘要:需求:where查詢,需要支持(a or b or c) and d 也就是a、b、c三個條件是或的關系,然后再與d相與。 嘗試后,可以通過以下方式處理: 方式1:Weekend語法 ps:上面,其中Weekend是高版本的通用mapper版本才有,而且需要java8語法支持。 方式2:通用exam
閱讀全文
摘要:默認情況下產生的Mapper.xml里面存在: 需要修改generatorConfiguration.xml,里面的table加屬性,如: <table domainObjectName="User" tableName="test_user"> <columnOverride column="ad
閱讀全文
摘要:上面這段負責生成的是po,如下: 上面這段負責生產的是 上面這段,負責的是mapper.java的生成:
閱讀全文
摘要:一、前言 下面簡單介紹下背景,如果看著覺得繞,直接跳到第二章。 項目開發中,正好遇到這個問題。 將一批從外部第三方接口獲取到的數據存儲到本地mysql數據庫,假設接口返回的數據類型為A,經過A到B的轉換規則轉換后, 要插入數據庫的數據類型為B。那么在A獲取到1000條記錄,轉換為1000條B記錄,用
閱讀全文
摘要:主要是利用了spring的AbstractRoutingDataSource。 直接上配置了: 使用方法: 使用前,手動寫: 嫌麻煩的話,也可以像如下參考文章,配置注解,然后增加aop: http://www.rzrgm.cn/davidwang456/p/4318303.html
閱讀全文

浙公網安備 33010602011771號