mybatis學習總結——入門基礎

1、mybatis簡介java

MyBatis 是支持普通 SQL 查詢,存儲過程和高級映射的優秀持久層框架。MyBatis 消除了幾乎全部的 JDBC 代碼和參數的手工設置以及結果集的檢索。mysql

一、 簡化JDBC的開發sql

二、 可以更好的完成ORM(對象關係映射)數據庫

2、mybatis原理mybatis

一、經過sqlMapConfig.xml配置開發環境、事務配置文件等app

二、經過映射文件UserMapper.xml,將實體類與數據庫表字段相關聯框架

三、建立SqlSessionFactory ,加載sqlMapConfig.xml文件maven

四、建立SqlSession,操做實體類測試

3、入門準備3d

一、建立user表

CREATE TABLE user(

id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(255),

addrses VARCHAR(255),

age INT

)

INSERT INTO `user` VALUES(NULL, '劉一','北京',28);

INSERT INTO `user` VALUES(NULL, '陳二','上海',32);

INSERT INTO `user` VALUES(NULL, '張三','廣州',26);

二、建立maven工程mybatis

配置pom.xml文件,引入mybatis所用的依賴包

<dependencies>

<!--添加mysql驅動程序依賴 -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.40</version>

</dependency>

<!--添加junit依賴 -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.11</version>

</dependency>

<!--添加mybatis核心依賴 -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.2.8</version>

</dependency>

<!--添加日誌包依賴 -->

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.17</version>

</dependency>

</dependencies>

4、入門案例

一、在/mybatis/src/main/resources目錄下建立sqlMapConfig.xml文件



二、在/mybatis/src/main/resources/mapper目錄下配置UserMapper.xml文件



三、在/mybatis/src/main/java/mybatis/day01/pojo目錄下建立User實體類



四、在/mybatis/src/test/java/day01目錄下建立Test1.java測試類



5、項目目錄




6、映射文件經常使用標籤

一、查詢語句

<select id="" resultType="" parameterType=""></select>

1)id 爲sql的惟一標識

2)resultType爲sql返回值類型

3)parameterType爲sql傳參類型

注意:屬性名和類名必須一致才能完成映射

二、插入語句

<insert id="" parameterType=""></insert>

三、更新語句

<update id="" parameterType=""></update>

四、刪除語句

<delete id="" parameterType=""></delete>

7、擴展

一、別名

爲簡化開發,能夠在sqlMapConfig.xml文件中使用typeAliases爲須要映射的實體類全路徑設置包名

sqlMapConfig.xml



UserMapperConfig.xml



二、特殊字符

xml文件的特殊字符須要用<![CDATA[]]>包起來
如 id < 2 須要寫成

<![CDATA[

id < 2

]]>

三、${} 與 #{}區別

推薦使用#{},緣由:${}執行底層是Statement ,有sql注入風險,#{}執行底層是PreparedStatement

相關文章
相關標籤/搜索