一、MyBatis框架的優點:
1. 與JDBC相比,減少了50%以上的代碼量。
2. MyBatis是最簡單的持久化框架,小巧並且簡單易學。
3. MyBatis相當靈活,不會對應用程序或者數據庫的現有設計強加任何影響,SQL寫在XML里,從程序代碼中徹底分離,降低耦合度,便於統一管理和優化,並可重用。
4.提供XML標簽,支持編寫動態SQL語句。
5. 提供映射標簽,支持對象與數據庫的ORM字段關系映射。
二、MyBatis框架的缺點:
1. SQL語句的編寫工作量較大,尤其是字段多、關聯表多時,更是如此,對開發人員編寫SQL語句的功底有一定要求。
2. SQL語句依賴於數據庫,導致數據庫移植性差,不能隨意更換數據庫。
<----------------------------------華麗的分隔符----------------------------------------------------->
IOC(Inverse of Contro)控制反轉,有時候也被稱為DI依賴注入,它是一種降低對象耦合關系的一種設計思想。
AOP面向切面編程,是面向對象開發的一種補充,它允許開發人員在不改變原來模型的以滿足新的需求,例如,開發人員可以在不改變原來業務邏輯模型的基礎可以進行動態的增加日志,安全或異常處理功能。
<----------------------------------華麗的分隔符----------------------------------------------------->
1.聲明bean的注解
@Component 組件,沒有明確的角色
@Service 在業務邏輯層使用(service層)
@Repository 在數據訪問層使用(dao層)
@Controller 在展現層使用,控制器的聲明(C)
2.注入bean的注解
@Autowired:由Spring提供
@Inject:由JSR-330提供
@Resource:由JSR-250提供
4.切面(AOP)相關注解
Spring支持AspectJ的注解式切面編程。
@Aspect 聲明一個切面(類上) 使用@After、@Before、@Around定義建言(advice),可直接將攔截規則(切點)作為參數。
@After 在方法執行之后執行(方法上) @Before 在方法執行之前執行(方法上) @Around 在方法執行之前與之后執行(方法上)
@PointCut 聲明切點 在java配置類中使用@EnableAspectJAutoProxy注解開啟Spring對AspectJ代理的支持(類上)
<----------------------------------華麗的分隔符----------------------------------------------------->
如果你搜索只是返回一個值,比如說String ,或者是int,那你直接用resultType就行了。
但是你如果是返回一個復雜的對象,就必須定義好這個對象的resultMap的result map。
<----------------------------------華麗的分隔符----------------------------------------------------->
1.一對多:
將多張表先進行連接,連為一張表后進行查詢。其查詢本質是一張表。也只有一個select
<collection />是集合的意思,即有多個對象。
property:指定關聯屬性,即Country類中的集合屬性
ofType:集合屬性的泛型類型
2、多對一
<association />標簽體現出2個實體對象之間的關聯關系,一對一時用。
property:指定關聯屬性,即People類中的country屬性
javaType:關聯屬性的類型
<----------------------------------華麗的分隔符----------------------------------------------------->
核心容器(Spring core)
核心容器提供Spring框架的基本功能。Spring以bean的方式組織和管理Java應用中的各個組件及其關系。Spring使用BeanFactory來產生和管理Bean,它是工廠模式的實現。BeanFactory使用控制反轉(IoC)模式將應用的配置和依賴性規范與實際的應用程序代碼分開。BeanFactory使用依賴注入的方式提供給組件依賴。
Spring上下文(Spring context)
Spring上下文是一個配置文件,向Spring框架提供上下文信息。Spring上下文包括企業服務,如JNDI、EJB、電子郵件、國際化、校驗和調度功能。
Spring面向切面編程(Spring AOP)
通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring框架中。所以,可以很容易地使 Spring框架管理的任何對象支持 AOP。Spring AOP 模塊為基於 Spring 的應用程序中的對象提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性事務管理集成到應用程序中。
Spring DAO模塊
DAO模式主要目的是將持久層相關問題與一般的的業務規則和工作流隔離開來。Spring 中的DAO提供一致的方式訪問數據庫,不管采用何種持久化技術,Spring都提供一直的編程模型。Spring還對不同的持久層技術提供一致的DAO方式的異常層次結構。
Spring ORM模塊
Spring 與所有的主要的ORM映射框架都集成的很好,包括Hibernate、JDO實現、TopLink和IBatis SQL Map等。Spring為所有的這些框架提供了模板之類的輔助類,達成了一致的編程風格。
Spring Web模塊
Web上下文模塊建立在應用程序上下文模塊之上,為基於Web的應用程序提供了上下文。Web層使用Web層框架,可選的,可以是Spring自己的MVC框架,或者提供的Web框架,如Struts、Webwork、tapestry和jsf。
Spring MVC框架(Spring WebMVC)
MVC框架是一個全功能的構建Web應用程序的MVC實現。通過策略接口,MVC框架變成為高度可配置的。Spring的MVC框架提供清晰的角色划分:控制器、驗證器、命令對象、表單對象和模型對象、分發器、處理器映射和視圖解析器。Spring支持多種視圖技術。