一 自定義持久層框架

2021-10-20 17:44:49 字數 1667 閱讀 9784

public static void main(string args)  

system.out.println(user);

}} catch (exception e)

finally catch (sqlexception e) } if (preparedstatement != null) catch (sqlexception e)

(1)資料庫配置資訊存在硬編碼 -->配置檔案

(2)頻繁建立釋放資料庫連線-->連線池

(1).設定引數獲取結果集均存在硬編碼問題-->配置檔案

手動封裝,較為繁瑣-->反射,內省

1.引入2.2的jar包

2.提供兩部分的配置資訊:

(1)  載入配置檔案:根據配置檔案的路徑,載入配置檔案成位元組輸入流,儲存在記憶體中

建立resouce類   方法: inputstream getresourceasstream(string path)

(2)建立兩個類:存放配置檔案解析出來的內容

configuration:存放sqlmapconfig.xml解析出來的內容

(3)解析配置檔案

class sqlsessionfactorybuilder 

}public class configuration

(4)建立sqlsessionfactory介面及實現類defaultsqlsessionfactory;

inte***ce sqlsessionfactory

class defaultsqlsessionfactory implements sqlsessionfactory

}

(5)建立sqlsession介面及實現類defaultsqlsession:定義對資料庫的crud操作

inte***ce sqlsession

class defaultsqlsession implements sqlsession

}

(6)建立executor介面及實現類******executor實現類

inte***ce executor

class ******executor implements executor

}

3. 自定義持久層框架問題分析

daoimpl中:

(1)**重複(載入配置檔案,建立sqlsessionfactory,生產sqlsession)

(2) statementid存在硬編碼問題

解決思路:去掉daoimpl,使用**模式生產dao層介面的**實現類

/*** **物件呼叫介面中任意方法,都會執行invoke方法

**/listall = userdao.findall();

/***

**/@override

//使用jdk動態**來為dao介面生成**物件,並返回

@override

public object invoke(object proxy, method method, object args) throws throwable

});return (t) proxyinstance;

}

持久層框架

1.spring data jpa實現動態查詢的兩種方法 criteria api 可移植。api並不依賴具體的資料庫,可以根據資料庫型別的不同生成對應資料庫型別的sql,所以其為可移植的。物件導向。criteria api是使用的是各種類和物件如criteriaquery predicate等構建...

CALayer自定義層

自定義層,其實就是在層上繪圖,一共有2種方法,下面詳細介紹一下。方法描述 建立乙個calayer的子類,然後覆蓋drawincontext 方法,使用quartz2d api進行繪圖 pragma mark 繪製乙個實心三角形 4 void drawincontext cgcontextref ct...

自定義載入層

這裡我給最外面的盒子設定了跟視窗一樣的寬跟高為了結束不讓載入層顯示出來之後還可以點到按鈕。function window.onresize function function sethw 外面的盒子就遮住了所有的內容只有載入層了。這裡我還寫了如何去觸發這個載入層,由於一開始載入層是不需要去呼叫的我吧...