Intellij IDEA 2017整合MyBatis三劍客
MyBatis三劍客指的是:MyBatis-Generate、Mybatis Plus、MyBatis-PageHelper
MyBatis-Generate
使用 Mybatis Generator 這個maven外掛來快速生成 Dao 類, mapper 配置檔案和 Model 類.
MyBatis Generator(簡稱MBG)是MyBatis的程式碼生成器.可以自動查詢資料庫中的所有表,然後生成可以訪問表的基礎物件型別.解決了對資料庫操作有最大影響的一些簡單的CRUD增刪改查操作,但是仍需要對聯合查詢和儲存過程手寫SQL語句和物件.
1.在pom檔案中新增外掛
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
2.在maven專案中的resource中建立xml檔案與properties資原始檔
- 名稱可以隨便取,這裡以 generatorConfig.xml 為名
- 資原始檔為 datasource.properties 檔案,這個可不要,這裡用是因為方便管理而已
3.配置generatorConfig.xml與資原始檔
generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
>
<generatorConfiguration>
<!--匯入屬性配置-->
<properties resource="datasource.properties"></properties>
<!--指定特定資料庫的jdbc驅動jar包的位置-->
<classPathEntry location="${db.driverLocation}"/>
<context id="default" targetRuntime="MyBatis3">
<!-- optional,旨在建立class時,對註釋進行控制 -->
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--jdbc的資料庫連線 -->
<jdbcConnection
driverClass="${db.driverClassName}"
connectionURL="${db.url}"
userId="${db.username}"
password="${db.password}">
</jdbcConnection>
<!-- 非必需,型別處理器,在資料庫型別和java型別之間的轉換控制 -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- Model模型生成器,用來生成含有主鍵key的類,記錄類 以及查詢Example類
targetPackage 指定生成的model生成所在的包名
targetProject 指定在該專案下所在的路徑
-->
<!--<javaModelGenerator targetPackage="com.mmall.pojo" targetProject=".\src\main\java">-->
<javaModelGenerator targetPackage="org.mmall.pojo" targetProject="./src/main/java">
<!-- 是否允許子包,即targetPackage.schemaName.tableName -->
<property name="enableSubPackages" value="false"/>
<!-- 是否對model新增 建構函式 -->
<property name="constructorBased" value="true"/>
<!-- 是否對類CHAR型別的列的資料進行trim操作 -->
<property name="trimStrings" value="true"/>
<!-- 建立的Model物件是否 不可改變 即生成的Model物件不會有 setter方法,只有構造方法 -->
<property name="immutable" value="false"/>
</javaModelGenerator>
<!--mapper對映檔案生成所在的目錄 為每一個數據庫的表生成對應的SqlMap檔案 -->
<!--<sqlMapGenerator targetPackage="mappers" targetProject=".\src\main\resources">-->
<sqlMapGenerator targetPackage="mappers" targetProject="./src/main/resources">
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- 客戶端程式碼,生成易於使用的針對Model物件和XML配置檔案 的程式碼
type="ANNOTATEDMAPPER",生成Java Model 和基於註解的Mapper物件
type="MIXEDMAPPER",生成基於註解的Java Model 和相應的Mapper物件
type="XMLMAPPER",生成SQLMap XML檔案和獨立的Mapper介面
-->
<!-- targetPackage:mapper介面dao生成的位置 -->
<!--<javaClientGenerator type="XMLMAPPER" targetPackage="com.mmall.dao" targetProject=".\src\main\java">-->
<javaClientGenerator type="XMLMAPPER" targetPackage="org.mmall.dao" targetProject="./src/main/java">
<!-- enableSubPackages:是否讓schema作為包的字尾 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<table tableName="mmall_shipping" domainObjectName="Shipping" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<table tableName="mmall_cart" domainObjectName="Cart" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<table tableName="mmall_cart_item" domainObjectName="CartItem" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<table tableName="mmall_category" domainObjectName="Category" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<table tableName="mmall_order" domainObjectName="Order" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<table tableName="mmall_order_item" domainObjectName="OrderItem" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<table tableName="mmall_pay_info" domainObjectName="PayInfo" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<table tableName="mmall_product" domainObjectName="Product" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
<columnOverride column="detail" jdbcType="VARCHAR" />
<columnOverride column="sub_images" jdbcType="VARCHAR" />
</table>
<table tableName="mmall_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<!-- geelynote mybatis外掛的搭建 -->
</context>
</generatorConfiguration>
datasource.properties
db.driverLocation = E:\\jre\\mysql-connector-java-5.1.6.jar
db.driverClassName = com.mysql.jdbc.Driver
db.url = jdbc:mysql://127.0.0.1:3306/mmall?characterEncoding=utf-8
db.username = root
db.password = root
4.執行
- 方式一:
- 方式二:
- 在Intellij IDEA新增一個“Run執行”,這個少用 略
Mybatis-Plus
Mybatis Plus(簡稱MP)是一個 Mybatis 的增強工具,在 Mybatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。
Mybatis Plus中文文件
1.功能
- 提供Mapper介面與配置檔案中對應SQL的導航
- 編輯XML檔案時自動補全
- 根據Mapper介面, 使用快捷鍵生成xml檔案及SQL標籤
- ResultMap中的property支援自動補全,支援級聯(屬性A.屬性B.屬性C)
- 快捷鍵生成@Param註解
- XML中編輯SQL時, 括號自動補全
- XML中編輯SQL時, 支援引數自動補全(基於@Param註解識別引數)
- 自動檢查Mapper XML檔案中ID衝突
- 自動檢查Mapper XML檔案中錯誤的屬性值
- 支援Find Usage
- 支援重構從命名
- 支援別名
- 自動生成ResultMap屬性
- 快捷鍵: Option + Enter(Mac) | Alt + Enter(Windows)
2.安裝與破解
- 這是一個IDE外掛,目前是收費的,這裡我用的是Intellij IDEA的
- 裝完之後把Intellij IDEA關了,然後開啟下面的連結跟著步驟來就可以大功告成
外掛註冊機
MyBatis-PageHelper
這個一個通用的分頁外掛,使用時 Mybatis 最低版本不能低於3.3
原理:通過aop再截獲我們執行sql的時候把相關的資料再執行一次
GitHub地址
1.在pom檔案中新增依賴
<!-- mybatis pager -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.4</version>
</dependency>
2.在spring配置檔案內新增配置
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:mappers/*Mapper.xml"></property>
<!-- 分頁外掛 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageHelper">
<property name="properties">
<value>
<!-- 資料庫方言 -->
dialect=mysql
</value>
</property>
</bean>
</array>
</property>
</bean>
累了就先寫這麼多了,不明白的地方請留言問,以後還會更新!