個人對mybatis框架的理解與體會

2021-06-28 17:32:00 字數 4020 閱讀 2647

年末了,停下來歇歇,順便把自己對mybatis的理解來說一說。

本次開發用的是spring mvc 3.0+mybatis, spring mvc就不多說了,接下來,重點說一下mybatis,本人也第一次使用mybatis,

mybatis其實就是對jdbc的封裝,對程式設計師的編寫sql能力的要求比較高。

下面來說說在實際應用中的mybatis

首先要構建乙個sqlsessionfactory$$

$$database.driverclassname=oracle.jdbc.driver.oracledriver

database.url=jdbc:oracle:thin:@10.21.2.89:1521:portal

database.dialect=org.hibernate.dialect.oracle10gdialect

database.username=username

database.password=password

mybatis的對映檔案,其實mybatis框架的核心就是對mybatis對映檔案的操作,mybatis的檔案配置就是sql的對映,所以要想特別熟練的應用mybatis,必須能熟練地操作sql。

mybatis其實是在jstl的基礎上進行的改進,主要有9個標籤

查詢標籤,

新增標籤,

修改標籤,

刪除標籤,

標籤(主要是用來寫一些通用的sql語句的,在其他標籤中可以使用來引入標籤),

引數集合,

結果集, ,

這兩個標籤都是快取標籤,

container

container_id as containerid,

parent_id as parentid,

container_name as containername,

total_well_count as totalwellcount,

empty_well_count as emptywellcount,

sort as sort,

is_box as isbox,

xnumber as xnumber,

ynumber as ynumber,

remarks as remarks,

creat_time as createtime,

creator as creator,

last_modify_person as lastmodifyperson,

last_modify_time as lastmodifytime,

domain as domain

order by sort asc

1=1select

from

and parent_id=#

and container_name=#

and is_box=#

and domain=#

select

from

where container_id = #

select

count(container_id)

from

parent_id = #                

and domain=#

select seq_container.nextval

from dual

insert into

(container_id,

parent_id,

container_name,

total_well_count,

empty_well_count,

sort,

is_box,

xnumber,

ynumber,

remarks,

creat_time,

creator,

last_modify_person,

last_modify_time,

domain

)values (#,

#,#,

#,#,

#,#,

#,#,

#,sysdate,

#,#,

sysdate,#)

delete container where container_id in(

select container_id from container c start with c.container_id=# connect by c.parent_id = prior c.container_id

) update

container_name = #,

parent_id = #

where  container_id = #

以上是對我們常用的操作的一些總結,主要就是查詢,新增,修改,刪除等操作。

以下,我寫一些在專案上的經驗之談。我在專案中,主要做的是對easyui tree的操作,之前,由於是半路被拉進專案中,不知道oracle有操作tree的語句,再加上專案一直沒定下來批量操作,所以,後來才加上的批量操作,希望對有需要的童鞋有幫助,也希望以此來警戒自己,在專案開始之前,一定要做好功課,確定好最佳方案,在遇到問題時尋求最優的解決方案解決問題。

下面是批量操作的對映檔案**

insert into

select seq_container.nextval, c.* from (

select

#,#,

#,#,

#,#,

sysdate createtime,

#,#,

sysdate lastmodifytime,

#,#,#,#

from dual

) cselect

from

and parent_id in

#and container_name in

#and domain=#

delete from

where container_id in

#select

from container c start with c.container_id=# connect by c.parent_id = prior c.container_id

select

from container m start with m.container_id=# connect by prior m.parent_id=m.container_id

update container set

total_well_count = total_well_count + #,

empty_well_count = empty_well_count + #,

last_modify_person = #,

last_modify_time = sysdate

total_well_count = total_well_count - #,

empty_well_count = empty_well_count - #,

last_modify_person = #,

last_modify_time = sysdate

where container_id in (

select m.container_id from container m start with m.container_id=# connect by prior m.parent_id=m.container_id

)select container_id from (select * from container c start with c.container_id in

#connect by c.parent_id = prior c.container_id) s where s.is_box=1

也提一點注意:在進行mybatis的操作時,最好先將自己的sql提出來,拿到資料庫進行格式化和執行,這樣的話,能 更快的提高效率,當然,如果sql的功力特深的話,更好了。

本人在資料庫方面的了解還甚少,有童鞋有更優的方案,敬請提出,共同努力,如果以上有啥問題,希望大神提出,共同來進行**。

個人對框架的理解

jointpoint 連線點 在乙個類裡面那些方法可以做擴充套件功能,也就是被增強,這些方法都叫做連線點 切入點 在user類裡面可以喲路很多方法被增強,在實際操作中,我只是增強了update方法,實際增強的方法就叫做切入點 通知 增強 增強的邏輯或功能,比如說擴充套件的日誌管理功能,折耳根日誌管理...

個人對Android開發框架的理解

下面是個人理解,歡迎大牛們給予指導性建議。1 mvc v 檢視層,個人認為xml即為檢視層的表現 c為控制層,activity啟的作用,只寫一些簡單的邏輯處理,真正的處理放到m層 activity之間跳轉寫到專門的類中進行管理 uihelper m為model,是訪問網路介面的地方,如果資料為非及時...

Mybatis01 理解Mybatis框架

1 框架 framework 了解框架前需要我們知道什麼是框架 1 框架是乙個系統或者系統的部分功能的可重用設計,具體表現為一組抽象構件和抽象構件的具體例項間的互動。2 另一種定義為,框架是應用開發者可以定製的應用骨架。前者是從該應用方面說,框架是乙個可以應用規定可重用設計。後者是從目的方面說,框架...