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三个核心组件,它们在实际开发中扮演着重要角色。 首先,SpringBoot是Spring框架的一种简化版,它...
MybatisPlus 使用手册 MybatisPlus 是一个基于 MyBatis 的增强工具,旨在简化开发、提高效率。它具有无侵入、损耗小、强大的 CRUD 操作、支持 Lambda 形式调用、支持主键自动生成、支持 ActiveRecord 模式、支持...
结合MybatisPlus和Redis,可以构建出高效、可扩展的业务系统。下面将详细介绍这三个技术栈的主要特点和如何相互协作。 **SpringBoot** SpringBoot是Spring框架的一个简化版本,旨在简化Spring应用的初始搭建以及...
MybatisPlus是一个强大的Mybatis扩展框架,它在Mybatis的基础上提供了更...通过阅读《MybatisPlus使用实战,MybatisPlus简介和使用示例.pdf》这份文档,你将能更深入地了解这个强大的框架,并能在实际工作中自如运用。
通过以上知识点的讲解,我们可以看到Spring Boot、MybatisPlus和JQuery DataTables的结合使用,可以高效地实现数据展示、分页和模糊查询功能,是现代企业级Web应用中的常见实践。在实际开发中,还需要根据具体需求...
MyBatisPlus是一款基于MyBatis的扩展框架,它提供了许多便利的功能,简化了数据库操作。在实际开发中,我们经常需要对查询结果进行排序,MyBatisPlus为此提供了`orderBy`、`orderByDesc`和`orderByAsc`三个方法,...
亮点技术:Redis缓存、Git托管代码、Nginx部署静态资源并反向代理、MySQL事务、SpringBoot和MyBatisPlus使用、阿里云短信服务 项目收获 SpringBoot与Mybatisplus的使用 Servlet中的过滤器Filter Redis使用 Nginx使用...
问题在于,当你在使用MybatisPlus进行分页查询时,如果未正确配置PaginationInterceptor,分页参数将无法生效,你会观察到所有的数据都被查询出来。要解决这个问题,你需要在你的项目配置中添加...
利用MybatisPlus来实现对表的水平分表,全自动,可以首先判断表是否存在,不存在创建表,然后设计有定时任务,可以每个月月末的时候,去创建下一个分表程序
下面将详细介绍 MyBatisPlus 的基础使用和在 SpringBoot 中的集成。 首先,我们需要引入 MyBatisPlus 和 SpringBoot 的依赖。在 Maven 的 `pom.xml` 文件中添加以下依赖: ```xml <groupId>...
【SpringBoot+Mybatis-Plus使用webSocket实现一对一聊天后台】的实现主要涉及以下几个关键知识点: 一、WebSocket协议 WebSocket是一种在单个TCP连接上进行全双工通信的协议,它使得客户端和服务器之间的数据交换变...
FreeMarker(MyBatisPlus使用的模板引擎)语法会被解析并替换为实际的Java代码。 - 配置生成器:在配置文件(如generatorConfig.xml)中指定自定义模板的位置,使代码生成器使用新的模板进行生成。 2. **常用模板...
在IT行业中,MyBatis是一个广泛使用的持久层框架,它允许开发者直接编写SQL语句,提供了灵活的数据访问和映射机制。这篇博客“mybatis直接执行sql语句后续之一”可能探讨了如何在MyBatis中高效且有效地执行SQL操作。...
- `select`:查询操作可以是单个记录或多个记录,可以使用`selectOne`或`selectList`方法,同时可以利用MyBatis的动态SQL功能进行条件判断。 5. **关联查询**: - MyBatis支持一对一、一对多、多对多等关联查询。...
本教程将深入探讨在Mybatis Plus中如何有效地使用枚举变量,提升代码的可读性和可维护性。 在Java编程中,枚举类型(enum)是一种强大的工具,它允许我们定义一组预定义的常量,这些常量通常代表某种固定的、有限的...
springboot+h2+mybatisplus+swagger使用例子 h2数据库例子 H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一 个十分方便的web控制台用于操作和管理数据库内容。H2还提供兼容...
使用MyBatisPlus的方式,优雅的操作MongoDB使用MyBatisPlus的方式,优雅的操作MongoDB使用MyBatisPlus的方式,优雅的操作MongoDB使用MyBatisPlus的方式,优雅的操作MongoDB使用MyBatisPlus的方式,优雅的操作MongoDB...
本文将详细介绍如何使用MyBatisPlus的条件构造器进行带条件的更新操作。 首先,我们需要引入MyBatisPlus的依赖。在Maven项目中,可以在pom.xml文件中添加如下依赖: ```xml <groupId>com.baomidou</groupId> ...
在使用MyBatisPlus进行开发时,自动生成代码可以极大地提高开发效率,但有时在将新生成的代码引入项目并尝试在Tomcat服务器上运行时,可能会遇到报错的情况。这种问题通常是由于MyBatisPlus生成的代码与现有的配置、...