Mybatis-Plus

mybites_plus 中 date 的问题

廉价感情. 提交于 2019-11-30 14:56:54
今天遇到一个奇葩的问题,更新操作的时候一直报数据类型转换错误;懵逼。。。。 Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String mybatis-plus 的版本是 3.1的 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.0</version> </dependency> <dependency> select 就算了不说了 这里直说update 最一开始XML是这样写的: 1.前提是对象中的属性是Date 类型的 : //上次登录时间 private Date lastLoginTime; //切出时间 private Date cutOutTime; 2.然后传递的参数也是Date 类型的: umeng.setCutOutTime(new Date()) 3.umeng.xml 中是这样写的: update umeng <set> <if test="userId != null and userId != ''"> user_id = #{userId} </if>

SpringBoot整合jwt和mybatis-plus的脚手架项目

拈花ヽ惹草 提交于 2019-11-30 14:24:04
近期给公司弄了个脚手架项目,打算以后后台开发就用这个了,希望留下您宝贵的建议,同时求star~ 点击 跳转到github地址 概述 Volcano是一个基于springboot后台开发简易脚手架。能实现当作一个单独项目或者作为微服务的一个节点进行快速开发和部署。 概述 Volcano是一个基于springboot后台开发简易脚手架。能实现当作一个单独项目或者作为微服务的一个节点进行快速开发和部署。 项目结构 javasea-volcano 父项目, 用于springcloud和springboot的版本管控, maven插件, 仓库统一管控等. |--javasea-volcano-base: 测试类和相关业务配置, 依赖 common 项目中的组件,开发的时候在该项目的基础上添 加添加业务代码即可。 |--javasea-volcano-common:常用组件和工具类 项目环境 中间件 版本 备注 JDK 1.8+ JDK1.8及以上 MySQL 5.6+ 5.6及以上 Redis 3.2+ 基本功能 参考包 com.zhirui.lmwy.wms.demo 下的配置 参数校验 JSR校验 spring-boot-starter-web 已经默认集成了JSR303校验,只需要直接使用注解校验即可。 参考测试类: com.zhirui.lmwy.wms.demo.web

SpringCloudAlibaba微服务框架搭建

橙三吉。 提交于 2019-11-30 14:10:14
框架搭建说明 1 框架构架图 2 后台框架具体说明 后端框架:springboot2.1.8+springmvc+mybatisPlus3.2 开发语言:java 数据库:mysql5.7 缓存数据库:redis 权限框架:shiro 网关:Spring Gateway 注册中心: 阿里巴巴 nacos eureka(已经停止更新) 熔断器:Sentinel 消息队列:RocketMQ 全文日志分析:ElasticSearch+Logstash+Kibana 数据源管理:druid 所用工具:lombok 开发工具:IntelliJ IDEA 数据设计工具:Power Designer 项目版本控制工具:git 文档管理工具:svn 3.模块搭建具体说明 准备nacos nacos 的官方地址 内有文档手册 https://nacos.io/zh-cn/index.html 下载页面 https://github.com/alibaba/nacos/releases nacos 安装 解压打开安装目录的bin下的双击运行startup即可(windows运行cmd,linux运行sh) 服务中集成了配置中心,注册中心和管理中心只需要导入相应的包即可使用 创建父模块 创建一个mavean项目 删除多余的src 配置pom.xml管理版本 <?xml version="1.0"

权限系统框架搭建(Spring Boot + Spring Security + MyBatis-Plus + Beetl) 未完待续~

北慕城南 提交于 2019-11-29 18:36:52
一、数据库表设计 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for sys_permission -- ---------------------------- DROP TABLE IF EXISTS `sys_permission`; CREATE TABLE `sys_permission` ( `id` varchar(255) NOT NULL DEFAULT '', `description` varchar(255) DEFAULT '' COMMENT '权限描述', `name` varchar(255) DEFAULT '' COMMENT '权限名称', `pid` varchar(255) DEFAULT '' COMMENT '父节点', `url` varchar(255) DEFAULT '' COMMENT '授权链接', `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT

Mybatis Plus代码生成

别说谁变了你拦得住时间么 提交于 2019-11-29 18:33:46
代码如下: package com.xiao.permission_system.generator; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.InjectionConfig; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.po.TableInfo; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.engine.BeetlTemplateEngine; import java.util.ArrayList; import java.util.List; /** * @author beth * @data 2019-09-12 09:33 */ public class

MyBatisPlus-8-自定义全局操作

那年仲夏 提交于 2019-11-29 07:26:04
自定义全局操作 根据 MybatisPlus 的 AutoSqlInjector 可以自定义各种你想要的 sql ,注入到全局中,相当于自定义 Mybatisplus 自动注入的方法。 之前需要在 xml 中进行配置的 SQL 语句,现在通过扩展 AutoSqlInjector 在加载 mybatis 环境时就注入。 1.1 AutoSqlInjector 在 Mapper 接口中定义相关的 CRUD 方法 扩展 AutoSqlInjector inject 方法,实现 Mapper 接口中方法要注入的 SQL 在 MP 全局策略中,配置 自定义注入器 2.1 自定义注入全表删除方法 deteleAll 2.1.1 自定义 MySqlInjector 注入类 public class MySqlInjector extends AutoSqlInjector { /** * 扩展inject 方法,完成自定义全局操作 */ @Override public void inject(Configuration configuration, MapperBuilderAssistant builderAssistant, Class<?> mapperClass, Class<?> modelClass, TableInfo table) { /

MyBatisPlus-7-插件扩展

半腔热情 提交于 2019-11-29 07:24:31
插件扩展 1.1 Mybatis 插件机制简介 1.1.1 插件机制: Mybatis 通过插件(Interceptor) 可以做到拦截四大对象相关方法的执行,根据需求,完成相关数据的动态改变。 Executor StatementHandler ParameterHandler ResultSetHandler 1.1.2 插件原理 四大对象的每个对象在创建时,都会执行 interceptorChain.pluginAll(),会经过每个插件对象的 plugin()方法,目的是为当前的四大对象创建代理。代理对象就可以拦截到四大对象相关方法的执行,因为要执行四大对象的方法需要经过代理. 2.1 分页插件 com.baomidou.mybatisplus.plugins.PaginationInterceptor 添加插件 <plugins> <!-- | 分页插件配置 | 插件提供二种方言选择:1、默认方言 2、自定义方言实现类,两者均未配置则抛出异常! | overflowCurrent 溢出总页数,设置第一页 默认false | optimizeType Count优化方式 ( 版本 2.0.9 改为使用 jsqlparser 不需要配置 ) | --> <!-- 注意!! 如果要支持二级缓存分页使用类 CachePaginationInterceptor 默认、建议如下!!

MyBatisPlus-5-ActiveRecord

给你一囗甜甜゛ 提交于 2019-11-29 06:39:38
ActiveRecord(活动记录) 1.1 说明 Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。 1.2 使用 AR 模式 让实体类继承 Model 类且实现主键指定方法,即可开启 AR 之旅,例: public class Employee extends Model<Employee> { // ...fields /** * 指定当前实体类的主键属性 */ @Override protected Serializable pkVal() { return id; } } 1.3 基本 CRUD 1.3.1 AR 插入操作 @Test public void testARInsert() { Employee employee = new Employee(); employee.setLastName("宋老师"); employee.setEmail("sls@163.com"); employee.setGender(1); employee.setAge(35); boolean result = employee.insert(); System.out.println("result:" + result); } 1.3.2 AR 修改操作 @Test public

MyBatisPlus-4-条件构造器

跟風遠走 提交于 2019-11-29 06:26:26
条件构造器 1.1 EntityWrapper Mybatis-Plus 通过 EntityWrapper(简称 EW,MP 封装的一个查询条件构造器)或者 Condition(与 EW 类似) 来构建查询条件,简单便捷! 实体包装器,主要用于处理 sql 拼接,排序,实体参数查询等! 实体包装器 EntityWrapper 继承 Wrapper 注意: 使用的是数据库字段,不是 Java 属性! 2.1 EW 2.1.1 查询 public class TestMPEW01 { private ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml"); private EmployeeMapper employeeMapper = ioc.getBean("employeeMapper", EmployeeMapper.class); /** * 条件构造器 查询操作 */ @Test public void testEntityWrapperSelect() { //我们需要分页查询tbl_employee表中,年龄在18~50之间且性别为男且姓名为Tom的所有用户 List<Employee> emps = employeeMapper.selectPage

MyBatisPlus-3-通用CRUD

♀尐吖头ヾ 提交于 2019-11-29 06:25:11
通用CRUD 1.1 创建接口EmployeeMapper并继承BaseMapper<T> public interface EmployeeMapper extends BaseMapper<Employee> { /* * Mapper接口 * * 基于Mybatis: 在Mapper接口中编写CRUD相关的方法 提供Mapper接口所对应的SQL映射文件 以及 方法对应的SQL语句. * * 基于MP: 让XxxMapper接口继承 BaseMapper接口即可. * * BaseMapper<T>: 泛型指定的就是当前Mapper接口所操作的实体类类型 * */ // Integer insertEmployee(Employee employee ); // <insert useGeneratedKeys="true" keyProperty="id" > SQL...</insert> } 2.1 创建测试类TestMPCRUD01进行测试 2.1.1 插入操作 public class TestMPCRUD01 { private ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml"); private EmployeeMapper