![](https://img-blog.csdnimg.cn/20210822194335480.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MyBatis及MyBatisPlus
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。
最小的帆也能远航
不必借光而行,你我亦是星辰!
展开
-
MyBatis面试题
先吹一下Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。再说一下缺点。原创 2024-02-18 09:17:13 · 776 阅读 · 0 评论 -
Mybatis 的嵌套查询与嵌套结果的区别
嵌套查询 嵌套结果 嵌套查询是在查询 SQL 后再进行一个(子)查询 嵌套结果是一个多表查询的 SQL 语句 会执行多条 SQL 语句 只有一条复杂的 SQL 语句(多表连接) SQL语句编写较为简单 SQL语句编写较为复杂 ...原创 2021-09-26 19:27:48 · 2265 阅读 · 0 评论 -
SQL注入详解
一:什么是sql注入 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库。二:SQL注入攻击的总体思路 1:寻找到SQL注入的位置 2:判断服务器类型和后台数据库类型 3:针对不同的服务器和数据库特点进行SQL注入攻击三:SQL注入攻击实例String sql = "select * from user_table where username=' "+..原创 2021-09-26 18:26:51 · 187 阅读 · 0 评论 -
MyBatis中#{}和${}的区别
两者都可以在mybatis中用在输入映射{}是预编译处理,${}是字符串替换。mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;mybatis在处理 $ { } 时,就是把 ${ } 替换成变量的值,完成的是简单的字符串拼接。补充:在mybatis中使用#{}可以防止sql注入,提高系统安全性。...原创 2021-09-26 18:10:37 · 121 阅读 · 0 评论 -
Mybatis面试大全
1.Mybatis是什么? Mybatis是一款优秀的持久层框架 它支持定制化SQL、存储过程以及高级映射 与传统的jdbc相比,MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集 2 .ORM是什么?ORM(Object Relational Mapping),对象关系映射,是一种为了解决关系型数据库数据与简单Java对象(POJO)的映射关系的技术。 ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系...原创 2021-09-14 18:28:52 · 164 阅读 · 0 评论 -
LocalDateTime获取服务器当前时间----24小时与12小时
24小时:String time = LocalDateTime.now().format(DateTimeFormatter.ofpattern("yyyy-MM-dd HH:mm:ss")12小时:String time = LocalDateTime.now().format(DateTimeFormatter.ofpattern("yyyy-MM-dd hh:mm:ss")H大写为24小时制,h小写为12小时制...原创 2021-08-19 21:57:07 · 2689 阅读 · 0 评论 -
Mysql将LocalDateTime插入到数据库时时间少了8小时。
最近在用mybatis时发现,将LocalDateTime插入到数据库时时间少了8小时。用网上其他方法试了不少,比如修改mysql时区,都不能解决。最后发现是JDBC连接的参数写错了。经常在网上看到jdbc连接里边有这样一个参数&serverTimezone=UTC。这个UTC是协调世界时,我们中国在东八区,也就是UTC+8,和UTC差了8个小时。这就是为什么时间插入数据库后少了8小时的原因。那么中国的时区是多少呢?在java.time.ZoneId这个类的帮助文档和源码里写有:ES原创 2021-08-18 21:37:40 · 2658 阅读 · 1 评论 -
MyBatisPlus批量处理数据
@ApiOperation("修改员工报名")@PutMappingpublic R update(@RequestParam("ids") String ids, @RequestParam("staus") Integer staus) { if(StringUtils.isBlank(ids)){ return R.failed("传入的id为空"); } //将ids转成list集合 List<Long> collect = St.原创 2021-08-03 21:25:26 · 1052 阅读 · 0 评论 -
MyBatisPlus删除逻辑
/** * 批量/单个删除数据 * * @param id 主键结合 * @return 删除结果 */@ApiOperation("删除企业部门")@DeleteMappingpublic R delete(@RequestParam("id") Serializable id) { //判断 int count = companyRosterService.count(new LambdaQueryWrapper<CompanyRosterEntity>().原创 2021-08-03 21:24:25 · 125 阅读 · 0 评论 -
MyBatisPlus统计数据
<select id="supplysDetail" resultType="com.dcz.labor.vo.SupplysDetailsVO"> SELECT T1.`name`, T1.phone, T1.is_delete, COUNT( T2.user_id ) AS total_emps, SUM(IF ( T2.staff_statu ...原创 2021-08-03 21:23:40 · 4354 阅读 · 0 评论 -
后端提供树形结构数据
一.简介在项目开发中经常有需要处理树形结构的业务需求。比如具有父子关系的数据信息,而对于这种产品,在设计数据库时使用id<->parentId的结构来做。为方便前端,所以在给前端数据时,最好的做法就是把数据处理成treeJson格式。本文以公司-部门为例以下测试基于springboot框架二.关键代码DepartEntity 公司-部门实体类@Data@TableName("sys_depart")public class DepartEntity { private原创 2021-07-29 21:10:26 · 885 阅读 · 0 评论 -
mybatis-plus中Constants.WRAPPER的作用
List<DeptVo> list = deptMapper.queryList(page,queryWrapper);@Select("SELECT\n" + "\tarticle.*, category. NAME category_name\n" + "FROM\n" + "\tarticle\n" + "LEFT JOIN category ON article.category_id = .原创 2021-07-23 22:18:47 · 3660 阅读 · 0 评论 -
StringUtils系列之StringUtils.isNotBlank()和StringUtils.isNotBlank()的区别
/** 1. * StringUtils.isNotBlank(); * 判断参数是否不为空. * 1.如果不为空返回true。 * 2.如果为空返回false。 * StringUtils.isNotEmpty(null) -> false * StringUtils.isNotEmpty("") -> false * StringUtils.isNotEmpty("a") -> true * StringUtils.isNotEmpty(" ") -> tr.原创 2021-07-23 21:55:23 · 7809 阅读 · 1 评论 -
Mybatis Plus ${ew.sqlSegment} 与 ${ew.customSqlSegment}
<where> ${ew.sqlSegment}</where>使用${ew.customSqlSegment} 则省略 <where></where>原创 2021-07-23 21:47:55 · 2355 阅读 · 0 评论 -
MybatisPlus:中QueryWrapper<>().lambda使用(条件查询)
MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用假如我们有一张user表,现需要通过user_name查出所有数据@ApiModel(description = "用户实体")public class User { /** * serialVersionUID */ @ApiModelProperty(value = "主键") private Integer id; @ApiModelP.原创 2021-07-19 08:58:54 · 11606 阅读 · 2 评论 -
MyBatisPlus分页查询的几种方式
public R moreCompany(JSONObject params) { int pageNum = params.getIntValue("pageNum"); int pageSize = params.getIntValue("pageSize"); if (pageSize == 0) { pageSize = 20; } Long userId = params.getLongValue("userId"); if (us.原创 2021-07-14 17:18:53 · 1220 阅读 · 0 评论 -
Mybatis中点击mapper接口快速定位到对应xml中
Idea强大的插件系统下,编写了免费插件Free Mybatis Plugin(mybatis框架下mapper接口快速跳转对应xml文件)亲测好用!点击重启idea插件生效。效果图如下。原创 2021-07-14 17:16:15 · 578 阅读 · 0 评论 -
MyBatisPlus笔记
目录1.MyBatisPlus简介1.1、简介1.2、特性2.快速入门3.配置日志3.1、CRUD拓展3.2、主键生成策略3.3、更新操作3.4、自动填充3.5、乐观锁3.6、分页查询3.7、逻辑删除3.8、性能分析插件3.9、条件构造器3.10、代码生成器1.MyBatisPlus简介学习MyBatis-Plus之前要先学MyBatis–>Spring—>SpringMVC为什么要学它?MyBatisPlus可...原创 2021-01-02 22:12:09 · 626 阅读 · 0 评论 -
MyBatis详解
1、简介1.1、什么是MyBatisMyBatis 是一款优秀的持久层框架它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。Maven仓库<!-- https://mvnrepository.com/artifact原创 2020-12-18 12:48:16 · 41409 阅读 · 22 评论