最近幾天還是在看框架,都是為了找工作。另外,鄭州的工作是真的不好找。
今天來寫乙個搭建單個框架的練習,搭建的是mybatis,主要的原因是自己對於單個框架的原理不太懂,雖然前面的部落格對於ssm框架進行了整合,但是最好還是自己在進行深入的了解。不再廢話了,直接開始。
下面就說一說具體的搭建思路。
1.複製jar包,直接複製到web-inf下面的lib資料夾下,在build path。具體的jar包如圖,可能有些jar包有些多餘。
sqlmapconfig.xml是mybatis核心的配置檔案,主要配置資料庫連線的一些引數和載入對映檔案。本次專案的sqlmapconfig.xml具體**如下:
<?xml version="1.0" encoding="utf-8" ?>
log4j.properties的作用我這裡還不是很清楚,還是自己學習的太淺了,這個問題以後有機會我在研究。後來知道了,這是日誌輸出格式配置檔案,主要和日誌輸出有關。**具體如下:
# global logging configuration
log4j.rootlogger=debug, stdout
# console output...
3.搭建專案的具體的結構。在這裡因為需要pojo類和dao層,因為不再顯示在頁面上,這裡需要寫乙個test包。具體的專案結構如下:
pojo就是實體類物件,沒有什麼關鍵**可以寫的,記得要寫建構函式(無參和有參都要有),tostring方法,get和set方法。其他的在看自己id需求。
<?xml version="1.0" encoding="utf-8" ?>
select * from user where id=#
select * from user where username like '%$%'
insert into user(username,birthday,***,address)
values (#,#,#,#)
下面就是**,因為要使用到@test註解,所以這裡沒有其他的東西,直接在方法裡面查詢。下面就說說具體的步驟。
(1)建立 sqlsessionfactorybuilder(這個類可以被例項化,使用和丟棄。一旦你建立了 sqlsessionfactory 後,這個類就不需 要存在了。因此 sqlsessionfactorybuilder 例項的最佳範圍是方法範圍(也就是本地方法變數))。
(2)建立核心配置檔案的輸入流。
(3)建立sqlsessionfactory物件,用於開啟session(一旦被建立,sqlsessionfactory 例項應該在你的應用程式執行期間都存在。沒有理由來 處理或重新建立它。使用 sqlsessionfactory 的最佳實踐是在應用程式執行期間不要重複建立 多次)。
(4)開啟session(每個執行緒都應該有它自己的 sqlsession 例項。sqlsession 的例項不能共享使用,它也是 執行緒不安全的。因此最佳的範圍是請求或方法範圍。絕對不能將 sqlsession 例項的引用放在 乙個類的靜態字段甚至是例項欄位中。也絕不能將 sqlsession 例項的引用放在任何型別的管 理範圍中)。
(5)執行sql語句。
(6)關閉session。
具體的**如下:
// 建立 sqlsessionfactorybuilder
sqlsessionfactorybuilder builder = new sqlsessionfactorybuilder();
// 建立核心配置檔案的輸入流
inputstream inputstream = resources.getresourceasstream("sqlmapconfig.xml");
// 建立sqlsessionfactory物件,用於開啟session
sqlsessionfactory factory = builder.build(inputstream);
// 開啟session
sqlsession session = factory.opensession();
// 執行查詢 引數一是sql語句的id 引數二是傳入sql語句的引數
user user = session.selectone("user.getuserbyid", 1);
// 輸出user物件,實現了tostring方法
system.out.println(user);
// 關閉session資源
session.close();
上面的**有載入mybatis的核心配置檔案,在實際的應用中有一些要改進的地方,其中,如果和spring整合的時候完全不需要建立,直接依賴注入就可以了,這是後話。到這裡,其實已經完成了大部分的工作,剩下的就都是一些細節性的問題,因為都是開發中遇到的問題,這裡提也有一些繁瑣。這裡還是提一下,給自己乙個提醒,但是不再舉出解決方案,估計以後會用到更好的。
首先是可以看到上面的**有些多,其中我也列舉出sqlsessionfactorybuilder,sqlsessionfactory,sqlsession各自存在的區域和理由,所以這個可以寫乙個工具類,實現就是單例模式的實現,因為sqlsessionfactory只要有乙個就可以。具體的實現可以自己下去找找。
其次是插入資料時需求是要有主鍵返回值,這裡用到了mybatis的解決方案,具體的實現還是利用了框架,另外,插入時因為有快取的存在,所以插入要立即看到效果就要立即提交session(事務)。
在其次就是mybatis dao開發,有兩種方式,乙個是比較老的dao開發,就是直接開發,寫完dao介面在寫實現類。最後呼叫。另一種我在前面ssm整合中使用到,是介面動態**的方式,只寫乙個dao介面,在呼叫介面。實現介面的動態**要有四個規則。如下:1 namespace必需是介面的全路徑名。2 介面的方法名必需與對映檔案的sql id一致。3 介面的輸入引數必需與對映檔案的parametertype型別一致。4 介面的返回型別必須與對映檔案的resulttype型別一致。
最後,貼上乙個,就是mybatis中的具體架構圖,圖事別人的,要是有問題,聯絡我,我刪除。
剩下就沒有什麼問題了,其他的問題以後再新增。結束。
Mybatis的簡單搭建
1.2.匯入jar包 3.根據官方文件,首先寫mybatis config.xml檔案 xml version 1.0 encoding utf 8 doctype configuration public config 3.0 en configuration properties resourc...
Redis單個服務的搭建
將redis壓縮包上傳進虛擬機器linux 進入包所在目錄,執行解壓命令 tar zxvf redis 4.0.11.tar.gz c 解壓路徑 該路徑下會出現redis資料夾,進入資料夾,執行make命令,測試安裝環境 接上條,如果執行有error提示,說明需要的gcc環境和tcl環境有問題 測試...
mybatis框架的搭建
global logging configuration log4j.rootlogger debug,stdout console output.1 開發pojo類 2 建立全域性配置檔案 sqlmapconfig.xml xml version 1.0 encoding utf 8 beans ...