年末了,停下來歇歇,順便把自己對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 另一種定義為,框架是應用開發者可以定製的應用骨架。前者是從該應用方面說,框架是乙個可以應用規定可重用設計。後者是從目的方面說,框架...