`

mybatisplus的使用

 
阅读更多

mybatis是将jdbc的驱动注册,connection、preparedstatement创建,参数设置,结果映射等进行包装。让开发者专注于sql代码的开发。mybatisplus则是进一步包装,替程序员将通用的CRUDsql代码生成。

接下来讲讲怎么使用,现在数据库中新建表People有两个字段主键id int ,name varchar2(20):

1.添加pom依赖

 

//依赖与spring配合mybatis中一样,只是用以下依赖替换mhbatis和mybatis-spring的依赖,记得去掉这两个,不然可能冲突
<dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus</artifactId>
       <version>2.0.1</version> 
</dependency>

 

 

 

 

2.配置文件

主要是将mybatis的sqlSessionFactory替换成mybatis-plus的即可,mybatis-plus只做一些功能的扩展

 

 <!-- 自动扫描 -->
    <context:component-scan base-package="com.cq.mybatis" />
    <!-- 引入配置文件 -->
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:db.properties" />
    </bean>

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${driver}" />
        <property name="url" value="${url}" />
        <property name="username" value="${name}" />
        <property name="password" value="${password}" />
    </bean>

    <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!-- 自动扫描mapping.xml文件,**表示迭代查找  -->
//这个用于下文中的mybatis传统方法
        <property name="mapperLocations" value="classpath:com/cq/mybatis/**/*.xml" />
     //扫描这些包下的@TableName注释的model对象
        <property name="typeAliasesPackage" value="classpath:com/cq/mybatis/model" />
        <property name="configuration" ref="mybatisConfig"/>
         <property name="plugins">
            <array>
                <!-- 分页插件配置 -->
                <bean id="paginationInterceptor" class="com.baomidou.mybatisplus.plugins.PaginationInterceptor">
                </bean>
                <bean id="performanceInterceptor"
                  class="com.baomidou.mybatisplus.plugins.PerformanceInterceptor"/>
            </array>
        </property>
        <property name="globalConfig" ref="globalConfig" />
    </bean>

	
    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.cq.mybatis.mapper" />
    </bean>
    
    <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>    
    
    <bean id="mybatisConfig" class="com.baomidou.mybatisplus.MybatisConfiguration">
   <!-- 这个配置表示数据库表用下划线分割单词的命名方式 而pojo则用驼峰命名法 -->
	    <property name="mapUnderscoreToCamelCase" value="true"/>
	    <!-- 部分数据库不识别默认的NULL类型(比如oracle,需要配置该属性 -->
<!-- 	    <property name="jdbcTypeForNull"> -->
<!-- 	        <util:constant static-field="org.apache.ibatis.type.JdbcType.NULL"/> -->
<!-- 	    </property> -->
	</bean>
    <bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
	    <!--
			AUTO->`0`("数据库ID自增")
		 	INPUT->`1`(用户输入ID")
			ID_WORKER->`2`("全局唯一ID")
			UUID->`3`("全局唯一ID")
		-->
	    <property name="idType" value="3" />
		<!--
			MYSQL->`mysql`
			ORACLE->`oracle`
			DB2->`db2`
			H2->`h2`
			HSQL->`hsql`
			SQLITE->`sqlite`
			POSTGRE->`postgresql`
			SQLSERVER2005->`sqlserver2005`
			SQLSERVER->`sqlserver`
		-->
		<!-- Oracle需要添加该项  -->
<!-- 	    <property name="dbType" value="oracle" /> -->
<!-- 全局表为下划线命名设置 true 作用与mapUnderscoreToCamelCase差不多两个选一个就行 -->
	    <property name="dbColumnUnderline" value="true" />
	</bean>

 

3.在com/cq/mybatis/model包下新建一个People对象

@TableName("people")
public class People implements Serializable{
	private int id;
	private String name;
}

 这里注解中的值“people”对应数据库中的表people。如果这个people类有一个属性firstName,根据上面配置数据库中则应该有一个字段first_name,然而people表中并没有这个字段,则应该在People类中的firstName属性上面添加一个注解@TableField(exist=false)

 

4.在com.cq.mybatis.mapper中新建dao层接口PeopleMapper,我猜MapperScannerConfigurer扫描到它时,生成动态代理类,然后注入sqlSession对象,然后根据他继承BaseMapper以及泛型People生成对应的CRUD方法,在根据类全路径名以及方法名myAddPeople到mapper文件中查找对应内容生成方法

public interface PeopleMapper extends BaseMapper<People>{
//mybatisplus的dao层继承baseMapper<T>生成的动态代理类就会有基本CRUD方法
//这个方法用于mabatis的传统方法对应下面配置文件 
	void myAddPeople(People people);
}

 

5.在com.cq.mybatis包下建一个peopleMapper.xml配置文件

<mapper namespace="com.cq.mybatis.mapper.PeopleMapper">
//对应dao中的myAddPeople方法
	<insert id="myAddPeople" parameterType="com.cq.mybatis.model.People">
		insert into people(id,first_name) values(#{id},#{firstName})
	</insert>
</mapper>

 

6.新建service层PeopleService

@Service
public class PeopleService extends ServiceImpl<PeopleMapper, People>{

	public void addPeople(People people){
		baseMapper.myAddPeople(people);
	}
}

 PeopleService继承了ServiceImpl,mybatisplus通过这种方式为我们注入了PeopleMapper,这样可以使用ServiceImpl默认为我们提供的许多方法,也可以调用我们自己在dao层编写的操作数据库的方法

 

7.写一个类测试一下

public class PeopleAction {
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatisplus.xml");
		PeopleService service = (PeopleService) context.getBean("peopleService");
//service自带selectById方法
		People people = service.selectById(1);
		System.out.println(people);
	}
}

 

个人觉得在多是进行单表操作的系统中可以用mybatis-plus搞得清爽些,其他的没必要

 

分享到:
评论

相关推荐

    SpringBoot项目 MybatisPlus使用 Redis缓存.zip

    本项目中,我们看到“SpringBoot项目 MybatisPlus使用 Redis缓存.zip”主要涉及了SpringBoot、MybatisPlus和Redis三个核心组件,它们在实际开发中扮演着重要角色。 首先,SpringBoot是Spring框架的一种简化版,它...

    MybatisPlus使用手册.docx

    MybatisPlus 使用手册 MybatisPlus 是一个基于 MyBatis 的增强工具,旨在简化开发、提高效率。它具有无侵入、损耗小、强大的 CRUD 操作、支持 Lambda 形式调用、支持主键自动生成、支持 ActiveRecord 模式、支持...

    SpringBoot项目+MybatisPlus使用+Redis缓存

    结合MybatisPlus和Redis,可以构建出高效、可扩展的业务系统。下面将详细介绍这三个技术栈的主要特点和如何相互协作。 **SpringBoot** SpringBoot是Spring框架的一个简化版本,旨在简化Spring应用的初始搭建以及...

    MybatisPlus使用实战,MybatisPlus简介和使用示例

    MybatisPlus是一个强大的Mybatis扩展框架,它在Mybatis的基础上提供了更...通过阅读《MybatisPlus使用实战,MybatisPlus简介和使用示例.pdf》这份文档,你将能更深入地了解这个强大的框架,并能在实际工作中自如运用。

    Spring Boot+MybatisPlus使用JQuery DataTables表格插件展示数据、实现分页和模糊查询等功能

    通过以上知识点的讲解,我们可以看到Spring Boot、MybatisPlus和JQuery DataTables的结合使用,可以高效地实现数据展示、分页和模糊查询功能,是现代企业级Web应用中的常见实践。在实际开发中,还需要根据具体需求...

    MyBatisPlus条件构造器带条件排序方法orderBy、orderByDesc、orderByAsc使用示例代码

    MyBatisPlus是一款基于MyBatis的扩展框架,它提供了许多便利的功能,简化了数据库操作。在实际开发中,我们经常需要对查询结果进行排序,MyBatisPlus为此提供了`orderBy`、`orderByDesc`和`orderByAsc`三个方法,...

    SpringBoot-MybatisPlus-Redis 外卖系统源码.zip

    亮点技术:Redis缓存、Git托管代码、Nginx部署静态资源并反向代理、MySQL事务、SpringBoot和MyBatisPlus使用、阿里云短信服务 项目收获 SpringBoot与Mybatisplus的使用 Servlet中的过滤器Filter Redis使用 Nginx使用...

    完美解决MybatisPlus插件分页查询不起作用总是查询全部数据问题

    问题在于,当你在使用MybatisPlus进行分页查询时,如果未正确配置PaginationInterceptor,分页参数将无法生效,你会观察到所有的数据都被查询出来。要解决这个问题,你需要在你的项目配置中添加...

    利用MybatisPlus来实现对表的水平分表,全自动,可以首先判断表是否存在,不存在创建表

    利用MybatisPlus来实现对表的水平分表,全自动,可以首先判断表是否存在,不存在创建表,然后设计有定时任务,可以每个月月末的时候,去创建下一个分表程序

    MyBatisPlus基础使用代码

    下面将详细介绍 MyBatisPlus 的基础使用和在 SpringBoot 中的集成。 首先,我们需要引入 MyBatisPlus 和 SpringBoot 的依赖。在 Maven 的 `pom.xml` 文件中添加以下依赖: ```xml &lt;groupId&gt;...

    SpringBoot+Mybatis-Plus使用webSocket实现一对一聊天 后台

    【SpringBoot+Mybatis-Plus使用webSocket实现一对一聊天后台】的实现主要涉及以下几个关键知识点: 一、WebSocket协议 WebSocket是一种在单个TCP连接上进行全双工通信的协议,它使得客户端和服务器之间的数据交换变...

    MyBatisPlus代码生成器自定义模板时的模板文件

    FreeMarker(MyBatisPlus使用的模板引擎)语法会被解析并替换为实际的Java代码。 - 配置生成器:在配置文件(如generatorConfig.xml)中指定自定义模板的位置,使代码生成器使用新的模板进行生成。 2. **常用模板...

    mybatis直接执行sql语句后续之一

    在IT行业中,MyBatis是一个广泛使用的持久层框架,它允许开发者直接编写SQL语句,提供了灵活的数据访问和映射机制。这篇博客“mybatis直接执行sql语句后续之一”可能探讨了如何在MyBatis中高效且有效地执行SQL操作。...

    mybatis 基础代码(非spring)

    - `select`:查询操作可以是单个记录或多个记录,可以使用`selectOne`或`selectList`方法,同时可以利用MyBatis的动态SQL功能进行条件判断。 5. **关联查询**: - MyBatis支持一对一、一对多、多对多等关联查询。...

    Mybatis plus无介绍快使用,枚举变量的使用(七)

    本教程将深入探讨在Mybatis Plus中如何有效地使用枚举变量,提升代码的可读性和可维护性。 在Java编程中,枚举类型(enum)是一种强大的工具,它允许我们定义一组预定义的常量,这些常量通常代表某种固定的、有限的...

    h2嵌入式数据库例子 springboot+h2+mybatisplus+swagger使用例子

    springboot+h2+mybatisplus+swagger使用例子 h2数据库例子 H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一 个十分方便的web控制台用于操作和管理数据库内容。H2还提供兼容...

    使用MyBatisPlus的方式,优雅的操作MongoDB

    使用MyBatisPlus的方式,优雅的操作MongoDB使用MyBatisPlus的方式,优雅的操作MongoDB使用MyBatisPlus的方式,优雅的操作MongoDB使用MyBatisPlus的方式,优雅的操作MongoDB使用MyBatisPlus的方式,优雅的操作MongoDB...

    MyBatisPlus条件构造器带条件更新update使用示例代码

    本文将详细介绍如何使用MyBatisPlus的条件构造器进行带条件的更新操作。 首先,我们需要引入MyBatisPlus的依赖。在Maven项目中,可以在pom.xml文件中添加如下依赖: ```xml &lt;groupId&gt;com.baomidou&lt;/groupId&gt; ...

    使用MyBatisPlus自动生成代码后tomcat运行报错的问题及解决方法

    在使用MyBatisPlus进行开发时,自动生成代码可以极大地提高开发效率,但有时在将新生成的代码引入项目并尝试在Tomcat服务器上运行时,可能会遇到报错的情况。这种问题通常是由于MyBatisPlus生成的代码与现有的配置、...

Global site tag (gtag.js) - Google Analytics