Spring整合mybatis-plus

一、mybatis-plus簡介:

Mybatis-Plus(簡稱MP)是一個 Mybatis 的增強工具,在 Mybatis 的基礎上只做增強不做改變,爲簡化開發、提高效率而生。這是官方給的定義,關於mybatis-plus的更多介紹及特性,可以參考mybatis-plus官網。那麼它是怎麼增強的呢?其實就是它已經封裝好了一些crud方法,我們不需要再寫xml了,直接調用這些方法就行,就類似於JPA。

spring整合mybatis-plus,將mybatis的依賴換成mybatis-plus的依賴,再把sqlSessionFactory換成mybatis-plus的即可

        <!-- spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.14.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>4.3.14.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.3.14.RELEASE</version>
            <scope>test</scope>
        </dependency>
    <dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>1.7.3</version>
    </dependency>

 

    <!-- 配置mybatis的sqlSessionFactory -->
    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!-- 自動掃描mappers.xml文件 -->
        <property name="mapperLocations" value="classpath:com/lf/entity/xml/*.xml"></property>
        <!-- mybatis配置文件 -->
        <property name="configLocation" value="classpath:mybatis/config.xml"></property>
    </bean>

    <!-- DAO接口所在包名,Spring會自動查找其下的類 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.lf.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>

增加mybatis-config.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <!-- 這個配置使全局的映射器啓用或禁用緩存 -->
        <setting name="cacheEnabled" value="true"/>
        <!-- 全局啓用或禁用延遲加載。當禁用時,所有關聯對象都會即時加載 -->
        <setting name="lazyLoadingEnabled" value="false"/>
        <setting name="multipleResultSetsEnabled" value="true"/>
        <setting name="useColumnLabel" value="true"/>
        <setting name="logImpl" value="STDOUT_LOGGING" />
        <setting name="defaultExecutorType" value="REUSE"/>
        <setting name="defaultStatementTimeout" value="25000"/>
        <setting name="aggressiveLazyLoading" value="true"/>

    </settings>
    <!-- 別名 -->
    <typeAliases>
        <package name="com.lf.entity"/>
    </typeAliases>
</configuration>

entity:需要加@TableName和@TableField進行映射

@TableName("goods_category")
public class GoodsCategory extends BaseEntity {

   @TableField(exist = false)
   private static final long serialVersionUID = 1L;

   /** id 最多 6 位數值,且從 100001 開始分配。 */
   @Getter
   @Setter
   @TableId(type = IdType.AUTO)
   private Long id;

   /** 添加時間 */
   @Getter
   @Setter
   private Date add_time;

   /** 刪除狀態,默認值:0 */
   @Getter
   @Setter
   private Boolean delete_status;

   /** 分類名稱,默認值:' */
   @Getter
   @Setter
   private String name;

   /** 分類圖片ID,只有一級分類纔有分類圖標。引用 image(圖片表)id,默認值:0 */
   @Getter
   @Setter
   private Long image_id;

   /** 分類圖片URL,只有一級分類纔有分類圖標,默認值:' */
   @Getter
   @Setter
   private String image_url;

   /** 上一級節點ID,默認值:0 */
   @Getter
   @Setter
   private Long pid;

   /** 上級分類id路徑是由所有的父節點id組成,使用逗號進行分隔。例如:  1,2,默認值:' */
   @Getter
   @Setter
   private String parent_id_path;

   /** 1|一級分類; 2|二級分類; 3|三級分類,默認值:1 */
   @Getter
   @Setter
   private Integer level;

   /** 序列,默認值:0 */
   @Getter
   @Setter
   private Integer sequence;


}
dao:需要繼承AutoMapper
public interface GoodsCategoryMapper extends AutoMapper<GoodsCategory> {

}

個人覺得是mybatis-plus是優化了sql單表的操作

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章