您的位置:首頁>正文

mybatis的搭建和注入spring的方式

mybatis實際上是一個更多關注sql語句的框架, 他的出現是想讓開發者更簡單的去操作資料庫。

與hibernate相比較, hibernate更多的是去sql化, 雖然hibernate也可以本地sql執行, hibernate更多的是關注與hql的編寫和物件映射的配置,

只要配置完了, hibernate有封裝好的函數可以幫你執行操作資料庫, 當然hibernate也是靠生產sql語句去實現操作資料庫的, 值得注意的是

hibernate可以很容易的去適應不同類別的資料庫, 只要配置更改一下就可以針對不同的資料庫生產不一樣的sql語句, hibernate的難點可能集中

于單雙邊和幾對幾po物件的配置問題。 所以說一定程度上來說hibernate掌握的門檻可能比mybatis要高一些。

回過頭來, mybatis相對Hibernate“O/R”而言, mybatis是一種“Sql Mapping”的ORM實現。

你只需要再mybatis的物件映射檔xml中寫好自己的sql語句, 並同時配置好入參和返回數值型別, 那麼mybatis就可以幫你po物件存到資料庫或者

將資料庫的資料映射到物件來, 那麼在使用mybatis的時候其實主要工作就是寫sql了, 然後就是一些配置規則的細枝末節。

今天我們要搭建mybatis, 並順便整合到我們spring項目中, spring項目就是我之前的博客中《springMvc+hibernate的web application的構建》所構建成功的專案。

1mybatis當然少不了回應的jar包, 3.2.7是我下載的jar包, 當然不是最新的, 最新我找了很久, 有的是因為jar下載的連結卡住了, 有的是因為csdn上下載的積分和c幣用光了。

下圖是我下載的jar包。

因為咱們這個spring項目是web項目, 直接丟到webContent下的lib裡面就好, 既可以在application中的main函數執行,

也可以再web伺服器中運行, 就很舒服。

然後在項目的src下放入我們的設定檔, 設定檔如下:

設定檔的位置如下:

可以看到分為兩部分, 一部分是關於連接資料庫的, 另一部分是關於po配置的xml檔。

當然mybatis也需要jdbc.driver的, 然後po的xml會稍後展示。

現在我們需要做的是建立好資料庫的表, 以及po類的建立, 以及po對應下xml配置問題。

我們一個個來看下:

那麼, 現在大家就可以看見了, 通過參數類型的定義, 返回數值型別的定義, 我們在其他地方調用這個sql語句的時候就

可以實現我們的資料庫操作了。

不過在執行這個操作的時候, 我們應該先初始化好mybatis的設定檔, 以便載入mybatis。

這個時候我們的下面代碼就可以做到了:

當我們初始化好後, 就可以做我們想要的操作了。

那新的問題又來了, 我們如何將這個mybatis融入到我們的項目中呢?

其實方法有兩種,

1因為我們這個是spring項目, 所以可以再spring的設定檔中加入這個MybatisOfSpringUtil類, 之後需要的時候就可以通過

spring的上下文物件getBean方法獲得了。

2也就是我使用的方式, 從上面的這個方法可以看到sqlSessionFactory這個變數是靜態的, 且實現了單例模式的。 直接在要使用的

地方調用MybatisOfSpringUtil.getSessionFactory()就好。 不需要將這個類注入到spring中。

其實兩種方法都是可以的,一個是靠注入spring項目的時候初始化mybatis的設定檔,一個是靠第一次調用MybatisOfSpringUtil.getSessionFactory()

的時候去初始化mybatis設定檔。

當我們初始化好後,就可以在需要的時候調用了,也就意味在自己的項目中加好了mybatis框架。

我的調用是方式是:

當然這款代碼是dao層的代碼。有了這塊代碼,其他層就可以調用了,從service層到MVC的controller層。

現在我們看看是否能運行成功。

現在我先再資料庫加一條記錄,而我們的sql語句是根據主鍵來獲取物件。

所以參數為1的時候能查到資料庫資料,其他的時候就不能查詢到資料庫資料。

controller層我判斷查詢的物件是否為null,來分別返回不同的頁面。

controller層代碼是:

那麼id參數為1的時候coffe物件就不為null,其他的時候就為null。

我們再觀察頁面就知道mybatis是否起作用了。

我們先訪問: http://localhost:8080/springMvcOrm/anonymous.mvc?method=mybatisMethodTest&id=1

然後再訪問:http://localhost:8080/springMvcOrm/anonymous.mvc?method=mybatisMethodTest&id=6

ok,沒問題。說明mybatis就搭建成功了。

(轉自博客園)

· 學IT,就來中公優就業:http://www.ujiuye.com/

· 2017年【中公教育】特別推出2017年就業促進計畫,500萬就業基金助你成為IT達人

詳情請戳http://www.ujiuye.com/zt/jycj/?wt.bd=bgz

其實兩種方法都是可以的,一個是靠注入spring項目的時候初始化mybatis的設定檔,一個是靠第一次調用MybatisOfSpringUtil.getSessionFactory()

的時候去初始化mybatis設定檔。

當我們初始化好後,就可以在需要的時候調用了,也就意味在自己的項目中加好了mybatis框架。

我的調用是方式是:

當然這款代碼是dao層的代碼。有了這塊代碼,其他層就可以調用了,從service層到MVC的controller層。

現在我們看看是否能運行成功。

現在我先再資料庫加一條記錄,而我們的sql語句是根據主鍵來獲取物件。

所以參數為1的時候能查到資料庫資料,其他的時候就不能查詢到資料庫資料。

controller層我判斷查詢的物件是否為null,來分別返回不同的頁面。

controller層代碼是:

那麼id參數為1的時候coffe物件就不為null,其他的時候就為null。

我們再觀察頁面就知道mybatis是否起作用了。

我們先訪問: http://localhost:8080/springMvcOrm/anonymous.mvc?method=mybatisMethodTest&id=1

然後再訪問:http://localhost:8080/springMvcOrm/anonymous.mvc?method=mybatisMethodTest&id=6

ok,沒問題。說明mybatis就搭建成功了。

(轉自博客園)

· 學IT,就來中公優就業:http://www.ujiuye.com/

· 2017年【中公教育】特別推出2017年就業促進計畫,500萬就業基金助你成為IT達人

詳情請戳http://www.ujiuye.com/zt/jycj/?wt.bd=bgz

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示