Tips
未读多个字符判断是否为空在涉及判断多个字符判断不为空的时候,一一列出过于繁琐。
123456String name;String password;Integer age;if(name == null || password == null || age == null){ .....}
上面代码当参数过多时就显得繁琐,而且有写错的风险。
commons-lang3 库提供了一组非常有用的工具类,其中包括 org.apache.commons.lang3.StringUtils 类的一部分。
在使用的时候导入坐标:
123456 <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <versio ...
Mybatis-Plus字段映射问题mapUnderscoreToCamelCase
类型:boolean
默认值:true开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN(下划线命名) 到经典 Java 属性名 aColumn(驼峰命名) 的类似映射。
配置示例:
123mybatis-plus: configuration: map-underscore-to-camel-case: true
[!Tip]
提示在 MyBatis-Plus 中,此属性也将用于生成最终的 SQL 的 select body。如果您的数据库命名符合规则,无需使用 @TableField 注解指定数据库字段名。
在Mybatis-Plus自动开启,Mybatis中需要自己手动开启。
如果你数据库命名也采用驼峰式命名,在Mybatis中映射不会出问题,但是Mybatis-Plus会出问题。因为他自动将Pojo类的字段转化为经典数据库列名 A_COLUMN,此时你的SQL 列名无法与实际数据库列名匹配。
Mybatis-Plus依赖冲突问题在SpringBoot3中,如果同时引入Mybatis和Mybatis-Plus会发生依赖冲突问题。在官方文档中提到:
[!Tip]引入 MyBatis-Plus 之后请不要再次引入 MyBatis 以及 mybatis-spring-boot-starter和MyBatis-Spring,以避免因版本差异导致的问题。自3.5.4开始,在没有使用mybatis-plus-boot-starter或mybatis-plus-spring-boot3-starter情况下,请自行根据项目情况引入mybatis-spring。
Mybatis-Plus官方文档
Redis的Java客户端-SpringDataRedis
SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模块就叫做SpringDataRedis。
提供了对不同Redis客户端的整合(Lettuce和Jedis)
提供了RedisTemplate统一API来操作Redis
支持Redis的发布订阅模型
支持Redis哨兵和Redis集群
支持基于Lettuce的响应式编程
支持基于JDK.JSON.字符串.Spring对象的数据序列化及反序列化
支持基于Redis的JDKCollection实现
SpringDataRedis中提供了RedisTemplate工具类,其中封装了各种对Redis的操作。并且将不同数据类型的操作API封装到了不同的类型中:
1. 快速入门
SpringBoot已经提供了对SpringDataRedis的支持,使用非常简单:
1.1 导入pom坐标1234567891011<!--redis依赖--><dependency> <groupId> ...
关于数据库Dao层传值问题和SQL与POJO映射关系。写这篇文章的背景是我在实现一个项目的模块进行联调测试的时候,发现时间在前端不显示。原因是数据库处理出现了问题。
插入操作pojo字段和占位符名字不一致代码示例123@Insert("insert into emp (username, name, gender, image, job, entrydate, dept_id, create_time, update_time)"+ " VALUES(#{username},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime}) ")void insert(Emp emp);
12345678910111213141516@Data@NoA ...
Spring整合Mybatis(1)使用配置文件形式整合Spring+Mybatis。其中Spring使用注解模式,没有使用Spring配置类(使用<context:component-scan> 用来自动扫描和注册组件)。Mybatis使用.xml配置模式,在spring-mybatis.xml中加载并使用指定位置的 mybatis.xml 文件作为 MyBatis 的配置文件,在mybatis.xml指定映射器(Mapper)的配置文件位置。
1. 整体结构123456789101112131415161718192021src├── main│ ├── java│ │ └── camellia│ │ ├── SpringApplaction.java│ │ ├── dao│ │ │ └── UserDao.java│ │ ├── pojo│ │ │ └── User.java│ │ └── service │ │ ├── User ...
RequestMapping注解扩展(REST风格)1. 请求问题@RequestMapping(/users)如果只是这样发起请求,会导致多种请求都能成功。然而,一般在接口开发文档都会指明请求方式。
2.问题解决
使用@RequestMapping(value = "/users",method = RequestMethod.GET),在参数中指定请求方式。
method中的参数是枚举类型,代表的是几种请求方式。
使用@RequestMapping的快捷方式
@GetMapping用于处理HTTP GET请求的快捷方式。
@PostMapping用于处理HTTP POST请求的快捷方式。
@PutMapping用于处理HTTP PUT请求的快捷方式。
@DeleteMapping用于处理HTTP DELETE请求的快捷方式。
@PatchMapping用于处理HTTP PATCH请求的快捷方式。
使用指定请求路径即可,不用再指定请求方式(@GetMapping("/users"))。
REST开发规范REST(Representational State Transfer,表述性状态转移)是一种用于构建网络应用的架构风格,通常用于设计基于HTTP协议的分布式系统。REST开发规范主要包含以下几个方面:
1. 资源(Resources)
资源的表示:资源通过URI(Uniform Resource Identifier)标识,例如:/users/1 表示用户ID为1的资源。
资源表示形式:资源可以以不同的格式表示,如JSON、XML、HTML等。
2. HTTP动词(HTTP Verbs)REST使用标准的HTTP动词来操作资源:
GET:获取资源。
POST:创建资源。
PUT:更新资源。
DELETE:删除资源。
PATCH:部分更新资源。
传统URL风格
1234http://localhost:8080/user/getById?id=1 GET:查询id为1的用户http://localhost:8080/user/saveUser POST:新增用户http://localhost:8080/user/updateUser ...
SpringBoot中使用lombok开启日志
显示创建日志对象来记录日志
1private static Logger log = LoggerFactory.getLogger(DeptController.class);
通过注解来实现记录日志
1@Slf4j
通过在需要输出日志的方法中调用log.info()即可打印日志。
info()是个重载方法,来自Logger接口,对于打印不同的日志需求可以查看接口中的说明。
[!NOTE]方法1和方法2是一样的,方法2只是简化了开发。@Slf4j注解只能在类、接口(包括注解接口)、枚举或记录声明。注意在pom.xml标明坐标。
Redis的Java客户端-Jedis
在Redis官网中提供了各种语言的客户端,地址:https://redis.io/docs/clients/
其中Java客户端也包含很多:
标记为❤的就是推荐使用的java客户端,包括:
Jedis和Lettuce:这两个主要是提供了Redis命令对应的API,方便我们操作Redis,而SpringDataRedis又对这两种做了抽象和封装。
Redisson:是在Redis基础上实现了分布式的可伸缩的java数据结构,例如Map.Queue等,而且支持跨进程的同步机制:Lock.Semaphore等待,比较适合用来实现特殊的功能需求。
1. Jedis快速入门
引入依赖
123456<!--jedis--><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>5.1.3</version></dep ...