Mybatis
文章平均质量分 61
Little.M_
这个作者很懒,什么都没留下…
展开
-
Mybatis-Plus实现乐观锁
乐观锁和悲观锁是在并发编程中用于处理并发访问和资源竞争的两种不同的锁机制原创 2024-03-22 13:45:58 · 2057 阅读 · 0 评论 -
MyBatis-Plus实现逻辑删除
逻辑删除,可以方便地实现对数据库记录的逻辑删除而不是物理删除。逻辑删除是指通过更改记录的状态或添加标记字段来模拟删除操作,从而保留了删除前的数据,便于后续的数据分析和恢复。再配置文件中进行配置,这样可以全局指定,deleted 属性对于所有实体都生效,就不需要进行上述单一指定。可以是一个布尔类型、整数类型或枚举类型。实体类添加逻辑删除属性。原创 2024-03-21 14:30:17 · 631 阅读 · 0 评论 -
MybatisPlus--条件构造器
使用MyBatis-Plus的条件构造器,可以构建灵活、高效的查询条件,而不需要手动编写复杂的 SQL 语句。它提供了许多方法来支持各种条件操作符,并且可以通过链式调用来组合多个条件。这样可以简化查询的编写过程,并提高开发效率。原创 2024-03-20 15:40:08 · 990 阅读 · 0 评论 -
MyBatis-Plus--基于Mapper和Service接口的CRUD方法
在MyBatis中,我们需要新建Mapper和Service接口,并在实现类中将各个方法实现。这个过程比较固定而且繁琐,因此,MyBatis-Plus帮我们封装了单表的增删改查操作,节省了我们的操作。我们不需要再一个一个的去定义并实现单表操作方法。mapper接口:我们只需要将自己的Mapper接口继承MyBatis-Plus提供的BaseMapper接口,这样我们就可以直接使用MyBatis-Plus为我们提供的各种方阿飞,不需要我们一一实现。如果我们需要定义自定义方法,也可以按照像MyBatis中的流原创 2024-03-19 14:27:05 · 502 阅读 · 0 评论 -
MyBatis动态语句 -- foreach标签
例如修改语句,我们找不到需要循环的sql片段,那就可以把整个sql语句循环。如果一个标签涉及多个语句!需要设置允许指定多语句!在数据库连接信息的URL地址中设置: allowMultiQueries=true如果没有给接口中List类型的参数使用@Param注解指定一个具体的名字,那么在collection属性中默认可以使用collection或list来引用这个list集合。原创 2024-03-13 14:19:48 · 872 阅读 · 0 评论 -
MyBatis动态语句 -- trim/choose/when/otherwise标签
使用trim标签控制条件部分两端是否包含某些字符原创 2024-03-13 14:04:58 · 465 阅读 · 0 评论 -
MyBatis动态语句 -- if、where和set标签
使用动态 SQL 最常见情景是根据条件包含 where / if 子句的一部分。原创 2024-03-13 13:57:38 · 566 阅读 · 0 评论 -
Mybatis多表映射总结
关联关系配置项关键词所在配置文件和具体位置对一association标签/javaType属性/property属性Mapper配置文件中的resultMap标签内对多collection标签/ofType属性/property属性Mapper配置文件中的resultMap标签内。原创 2024-03-13 13:41:59 · 367 阅读 · 0 评论 -
Mybatis多表映射之一对多映射
一对多映射时,在resultMap中使用标签collection与一对一映射中association一样,property属性值为被关联的实体类属性名相同。在上述例子中,顾客类中订单类型的集合属性名为orderList。ofType与association中的javaType一样,属性值为被关联的实体类的全类名。这里是list列表,因此填列表的泛型类型,也就是订单类。原创 2024-03-13 13:36:20 · 762 阅读 · 0 评论 -
Mybatis多表映射之一对一映射
一对一映射时,在resultMap中使用标签associationresultMap中的 property属性值要与被关联的实体类属性名相同,例如上述例子中的customerresultMap中的javaType属性值为被关联的实体类的全类名。原创 2024-03-13 13:26:57 · 424 阅读 · 0 评论 -
mapperXML标签总结
MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,省掉了将近 95% 的代码。MyBatis 创建一个预处理语句(PreparedStatement)参数,在 JDBC 中,这样的一个参数在 SQL 中会由一个“?这个语句名为 selectPerson,接受一个 int(或 Integer)类型的参数,并返回一个 HashMap 类型的对象,其中的键是列名,值便是结果行中的对应值。原创 2024-03-13 12:49:04 · 1149 阅读 · 0 评论 -
Mybatis实体类属性和数据库字段对应关系总结
别名对应,全局配置自动映射,resultMap自定义映射关系原创 2024-03-13 12:45:54 · 1438 阅读 · 0 评论 -
Mybatis获取主键值
使用这种方式,我们可以方便地插入 UUID 作为字符串类型主键。当然,还有其他插入方式可以使用,如使用Java代码生成UUID并在类中显式设置值等。而对于不支持自增型主键的数据库(例如 Oracle)或者字符串类型主键,则可以使用 selectKey 子元素:selectKey 元素将会首先运行,id 会被设置,然后插入语句会被调用!如果数据库表设置了主键自增长,那么我们在插入数据时,不需要给主键赋值。属性来指定查询到的 UUID 赋值给对象中的。表中时,我们直接使用对象中的。在上例中,我们定义了一个。原创 2024-03-13 12:38:51 · 387 阅读 · 0 评论 -
Mybatis接收sql语句返回的map类与list类数据
适用于SQL查询返回的各个字段综合起来并不和任何一个现有的实体类对应,没法封装到实体类对象中。能够封装成实体类类型的,就不使用Map类型。Mapper接口的抽象方法SQL语句原创 2024-03-12 14:09:13 · 944 阅读 · 0 评论 -
Mybatis接收sql语句返回的实体类对象
通过给数据库表字段加别名,让查询结果的每一列都和Java实体类中属性对应起来。但是我们可以看到这样的书写方式比较冗余,我们可以增加全局配置来自动识别对应关系,可以自动将sql语句中的命名规则映射为驼峰式命名规则。我们可以通过三种方法来为Employee实体类设置别名为emploee,这样可以简化代码。在 Mybatis 全局配置文件中,做了下面的配置,select语句中可以不给字段设置别名。可以看到,上述的sql语句比较长,写起来也感觉很冗余。先来优化第一个地方。我们可以使用类型别名来代替实体类的全类名。原创 2024-03-12 14:01:13 · 510 阅读 · 0 评论 -
Mybatis 接收sql语句单个简单类型的输出及别名问题
如果sql语句的返回结果是我们自定义的实体类型,那么resultType中我们就要写实体类的全类名,比较复杂。但是如果我们为该实体定义了别名,那么就可以直接使用别名,让代码更简洁。类型别名可为 Java 类型设置一个缩写名字。它仅用于 XML 配置,意在降低冗余的全限定类名书写。例如:原创 2024-03-12 13:53:49 · 1141 阅读 · 0 评论 -
Mybatis Map类型参数传入sql语句
我们可以在#{}中根据Map中的key获取到map中的数据,与实体类型传参类似。当有很多零散的参数需要传递,但是没有对应的实体类类型。而且使用@Param注解一个一个传入又太麻烦,因此我们可以将数据都封装到一个map中。原创 2024-03-12 13:36:38 · 449 阅读 · 0 评论 -
Mybatis 多个简单类型参数传入sql语句
在有多个简单类型参数传入sql语句中,我们可以在接口方法形参中通过@Param注解为参数进行自定义参数名,这样我们就可以在sql语句中根据参数名直接获取对应数据。Mybatis也可以根据参数的位置进行获取:从左到右为:arg0, arg1, arg2 …也可以从左到右为:param1, param2, param3 …原创 2024-03-12 13:32:01 · 490 阅读 · 0 评论 -
Mybatis 实体类类型参数传入sql语句
Mybatis会根据#{}中传入的数据,加工成getXxx()方法,通过反射在实体类对象中调用这个方法,从而获取到对应的数据。填充到#{}解析后的问号占位符这个位置。因此,我们可以直接通过实体的属性名获取参数值。原创 2024-03-12 13:22:57 · 583 阅读 · 0 评论 -
Mybatis中#{}与${}的区别
通常不会采用${}的方式传值,因为其无法抵御sql注入攻击。如果列名或者关键字也需要动态参数传入,那么#{}无法在这种场景下使用,因此只能使用${}。原创 2024-03-12 13:17:52 · 345 阅读 · 0 评论 -
Mybatis的使用快速入门
在实际应用场景中,数据库及数据是现成的,不需要我们进行准备。我们只需要准备实体类、Mapper接口、MapperXML文件以及MyBatis的配置文件。实体类的作用是可以让MyBatis将查询结果自动映射为一个实体类对象,便于我们操作。在mapper接口中,我们只需要定义操作方法,不需要编写实现类,MyBatis会自动完成实现类。MapperXML文件是我们书写sql语句的地方。命名空间赋值为接口的全类名,方便MyBatis定位到该接口。原创 2024-03-11 12:57:07 · 894 阅读 · 0 评论