MyBatis
MyBatis学习笔记
luopeng207663436
月入好多k的Java搬砖工程师
展开
-
josn在序列化后避免将MyBatisPlus的分页参数Long类型转换成String
在Java开发过程中,由于前端接收Long类型的id时会出现精度丢失的情况,所以会在后端配置,将所有long类型的参数都变成字符串进行回传,但是刚好MyBatisPlus的current,pages,size等参数就是Long类型,此时若不想要将这些参数转换成字符串,那可以将这些字段排除在外原创 2022-10-23 22:40:18 · 992 阅读 · 1 评论 -
十、MyBatis中#{}和${}符号的区别(面试题)
#{} </font #{}和${}#{} ====>sql语句的预处理参数,可防止sql注入,mybatis会自动进行数据类型的转换。${} ====>实现是sql语句的直接拼接、不做数据类型转换,需要自行判断数据类型,不能防止sql注入。#{}中可以写任意的名字;${}中只能用value来接收。至此,mybatis学习笔记记录完毕!...原创 2020-05-25 22:24:40 · 435 阅读 · 1 评论 -
九、MyBatis基于注解的一对一、一对多以及注解开发使用二级缓存(个人笔记)
对于注解开发中的一对一和一对多其实和xml开发大同小异贴出来接口中的代码,应该很好理解的首先是AccountDao中的代码package com.lp.dao;import com.lp.domain.Account;import com.lp.domain.User;import com.sun.xml.internal.bind.v2.model.core.ID;import org.apache.ibatis.annotations.*;import org.apache.ibati原创 2020-05-25 22:11:52 · 171 阅读 · 0 评论 -
八、MyBatis通过注解的形式来实现CRUD
pom依赖: <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version> </dependency>原创 2020-05-25 20:53:28 · 209 阅读 · 0 评论 -
七、MyBatis中的一级缓存和二级缓存
一级缓存 一级缓存是针对于SqlSession对象进行缓存的,当执行两次相同的查询语句时,第一次查询将会把数据写在内存中,第二次直接从缓存中取数据。使用场景:数据几乎不会改变的数据的正确与否对最终结果影响不大的当两次查询中间执行了增删改,commit,以及close和clearCache操作时,缓存会清空!二级缓存指的是Mybatis中SqlSessionFactory对象的缓存,由同一个SqlSessionFactory创建的对象共享其缓存。使用步骤让Mybatis框架支持原创 2020-05-25 16:26:43 · 445 阅读 · 0 评论 -
六、MyBatis中的延迟加载
延迟加载又叫做懒加载,就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。坏处:因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗时间,所以可能造成用户等待时间变长,造成用户体验下降。-------------------------------------------------------------------------------原创 2020-05-24 22:42:50 · 193 阅读 · 0 评论 -
五、jdbcConfig.properties文件的编写以及别名typeAliases和package的使用
首先在resource路径下创建jdbcConfig.properties配置文件jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/eesy?useUnicode=true&characterEncoding=utf-8jdbc.username=rootjdbc.password=1234mybatis配置文件中的代码<?xml version="1.0" encoding="UTF-8"原创 2020-05-23 23:39:02 · 1009 阅读 · 0 评论 -
四、MyBatis中当数据库字段和Java中的实体类字段不相同时的解决方案
eg:实体类属性是如下形式@Data@NoArgsConstructor@AllArgsConstructorpublic class User { private Integer userId; private String userName; private Date userBirthday; private String userSex; private String userAddress;}数据库字段是这样的方案一:取别名给selec原创 2020-05-23 21:17:17 · 850 阅读 · 0 评论 -
三、MyBatis简单增删改查入门(基于xml)
声明:lombok插件如果你想用请自行下载,你也可以直接alt+insert来编写实体类基于注解的形式只需要将配置文件里面的<mapper resource="com/lp/dao/UserDao.xml"/>改为<mapper resource="com/lp/dao/UserDao.xml"/>dao接口里面自行添加@注解1、首先,导入依赖<dependencies> <dependency> <原创 2020-05-23 17:33:00 · 194 阅读 · 0 评论 -
二、自定义MyBatis,手写源码
以user实体类为例搭建一个入门案例(基于注解)配置以及依赖与基于xml配置相同将其中的映射文件删掉,只需要在UserDao中加入@selectpublic interface UserDao { /** * 查询所有 * @return */ @Select("select * from user") List<User> getAll();} 然后将配置文件中的代码稍作修改如下将resource="com/lp/dao/Us原创 2020-05-22 19:15:02 · 908 阅读 · 1 评论 -
一、MyBatis入门案例(基于xml)
以user实体类为例搭建一个入门案例(基于xml配置)1、 mybatis所需依赖 <dependencies> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis原创 2020-05-22 19:00:44 · 199 阅读 · 0 评论