MyBatis是如何使用的?

MyBatis前身世iBatis本是Apache的一個開源項目,2010年這個項目遷移到google code並更名爲MyBatis.java

1、高級軟件介紹git

1.JDK 8github

2.Eclipse mars2web

3.MySqlsql

4.Navicat數據庫

2、數據庫SQL命令緩存

1.建立數據庫並指定編碼tomcat

Create database 數據庫名 default character set utf8mybatis

2.建立表app

Create table 表名(

列名 類型 約束 auto_increment comment ‘備註’,

);

3、Eclipse使用

1.建立項目

1.1選擇target runtime,不然出現新建jsp報錯

1.2若是忘記選擇,右鍵項目–>build path>configure path>選項卡 library>第四個add library>server runtime

2.Eclipse默認會本身下載所需tomcat最簡單結構

4、命名規範

1.項目名:沒有要求,不起中文

2.包:公司域名倒寫edu.swpu

3.數據訪問層:daopersistmapper

4.實體:entitymodelbeanjavabeanpojo

5.業務邏輯:servicebiz

6.控制器:controllerservletactionweb

7.過濾器:filter

8.異常:exception

9.監聽器:listener

10.註釋:

10.1類上和方法上使用文檔註釋

/** */

1

10.2 在方法裏面使用

/* */ //

1

11.: 大駝峯

12.方法,屬性:小駝峯

5、MVC開發模式

1.MModel模型、實體類、業務和dao

2.Vview視圖 JSP

3.CController控制器,servlet

3.1做用:視圖和邏輯分離

4.MVC適用場景:大型項目開發

5.圖示例

5.1先設計數據庫

5.2先寫實體類

5.3持久層

5.4業務邏輯

5.5控制器

5.6視圖

6、框架是什麼?

1.框架:軟件的半成品,爲解決問題制定的一套約束,在提供功能基礎上進行擴充

2.框架中一些不能被封裝的代碼(變量),須要使用框架者新建一個xml文件,在文件中添加變量內容

2.1須要創建特定位置和特定名稱的配置文件

2.2須要使用xml解析技術和反射技術

3.經常使用概念

3.1類庫:提供的類沒有封裝必定邏輯

舉例:類庫就是名言警句,寫做文時引入名言警句

3.2框架:區別於類庫,裏面有一些約束

舉例:框架是填空題

7、MyBatis簡介

1.Mybatis開源免費框架,原名叫iBatis2010google code2013年遷移到github

2.做用:數據訪問層框架

2.1底層是對JDBC的封裝

3.mybatis優勢之一:

3.1使用mybatis時不須要編寫實現類,只須要寫須要執行的sql命令

8、環境搭建

MyBatis是一個持久層框架:提供SQL MapsData Access Objects(DAO)

開發步驟:

1、添加jar(mybatis-3.2.3.jar)支持

2、核心配置文件mybatis-config.xml

3、編寫持久化類和對應的映射文件

備註:其實在使用MyBatis開發的時候映射文件的配置佔據了很大的部分,裏面即包含了返回類型resultMap也包含了SQL語句。

備註:MyBatis提供了一個Resources類來讀取配置文件,固然咱們可使用ClassLoader

核心接口:SqlSessionFactory接口、SqlSession接口(最重要的接口)

默認狀況下mybatis是不會打出sql語句以及一些日誌文件的。

src下加入log4j的配置文件,能夠打印出日誌信息:

首先加入log4j-1.2.17.jar,而後加入配置文件(propertiesxml配置文件)

log4j.properties  log4j.xml(推薦使用xml配置文件,比較直觀)

解決字段名與實體類屬性名不相同的衝突方案?(別名或resultMap)

1.直接在mapper配置文件中寫sql的時候使用別名

2.使用resultMap從新配置字段和屬性的關係

mybatis-config.xml配置文件說明:

改配置文件徹底能夠參考官方文檔給出的參考配置文件,好比能夠配置javabean的別名,數據庫鏈接基本信息等。使用typeAlias來配置javabean別名主要是爲了方便而已,用不用都無所謂。

得到SqlSessionFactory方法:

String resource="mybatis-config.xml";

InputStream  inputStream=Resources.getResourceAsStream(resource);

sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);

//得到資源文件的方式有好幾種,得到sqlSessionFactory方式有點相似hibernate4.0以前得到SessionFactory的方式。

插入操做能夠返回插入的主鍵id,外匯返傭http://www.fx61.com/,可是配置是要注意:(只對數據庫維護的自增id有效)

keyColumn="person_id" keyProperty="personId" useGeneratedKeys="true"

keyColum對應的是數據庫中的字段,keyProperty對應的javabean的屬性

userGeneratedKeys表示使用返回自增主鍵id.(這三個參數只有出如今insert語句纔有效)

具體javabeanMapper.xml配置文件

@1.cache  配置給定命名空間的緩存

@2.cache-ref  從其餘命名空間引用緩存配置

@3.resultMap  最複雜,也是最有力量的元素,用來描述如何從數據庫結果集中來加 載你的對象

@4.parameterMap  已經被廢棄了!老式風格的參數映射。內聯參數是首選,這個元 素可能在未來被移除。這裏不會記錄

@5.sql  能夠重用的 SQL ,也能夠被其餘語句引用

@6.insert  映射插入語句

@7.update  映射更新語句

@8.delete  映射刪除語句

@9.select  映射查詢語句

參數賦值使用這種方式: = #{名稱}

Mybatis的動態SQL查詢

1.if語句

2.choose(whenotherwise)

3.trim(whereset)

4.foreach語句

<if test=」表達式」>

執行內容

</if>

<choose>

<when test=」」>

執行內容

</when>

........

<otherwise>

若是都不知足上述條件,執行內容

</otherwise>

</choose>

多表查詢的時候一般均可以建立一個vo來裝封裝數據。

備註:使用MybatisSqlSession對象進行相關操做的時候,都是要先找到MapperStatement語句對應的ID(namespace+sql語句id),因此該ID必須是惟一的。sql語句id能夠相同,可是整個ID不可以徹底相同。ID是一個字符串,由namespace和語句id組成。

相關文章
相關標籤/搜索