- 浏览: 282244 次
- 性别:
文章分类
最新评论
前情:
1.首先,枚举我直接使用中文。省得码表翻译。
2.生成表,以及简单操作时,使用JPA,数据库会存储ordinal。
3.复杂查询使用mybaties,两者混用。
代码:
1.枚举
定义枚举接口EnumTypeInterface,目的是结合EnumTypes提供一个查询枚举值的API接口:
=================================================
好了,上重点:
<resultMap id="orderGridDtoMap" type="api.xxx.com.petstore.dto.OrderGridDto">
...
<result column="status" jdbcType="BIT" property="status" typeHandler="org.apache.ibatis.type.EnumOrdinalTypeHandler"/>
<result column="transaction_id" jdbcType="VARCHAR" property="transactionId"/>
...
</resultMap>
另外在查询条件时,直接.ordinal属性即可:
1.首先,枚举我直接使用中文。省得码表翻译。
2.生成表,以及简单操作时,使用JPA,数据库会存储ordinal。
3.复杂查询使用mybaties,两者混用。
代码:
1.枚举
public enum InfoType implements EnumTypeInterface { 下载信息, 试用及购买信息; } public interface EnumTypeInterface { } public enum EnumTypes{ InfoType("文本信息类型"), OrderStatusType("订单状态类型"); private String desc; EnumTypes(String desc) { this.desc = desc; } public String desc() { return this.desc; } }
定义枚举接口EnumTypeInterface,目的是结合EnumTypes提供一个查询枚举值的API接口:
@Api(description = EnumsController.DESC) @RestController @RequestMapping("/enums") public class EnumsController { public static final String DESC = "类型参数"; public static final String enumPkg = "api.xxx.com.petstore.enumeration"; @ApiOperation(DESC+"列表") @GetMapping("/{typeName}") public List<String> getEnumList(@PathVariable EnumTypes typeName) throws Exception { Class<Enum> enumClass; try { enumClass = (Class<Enum>)Class.forName(String.join(".", enumPkg, typeName.toString())); Method values = enumClass.getMethod("values"); EnumTypeInterface[] interfaces = (EnumTypeInterface[])values.invoke(null); return Arrays.stream(interfaces).map(Object::toString).collect(Collectors.toList()); } catch (ClassNotFoundException e) { throw new QcNotFoundException(DESC,typeName); } } }
=================================================
好了,上重点:
<resultMap id="orderGridDtoMap" type="api.xxx.com.petstore.dto.OrderGridDto">
...
<result column="status" jdbcType="BIT" property="status" typeHandler="org.apache.ibatis.type.EnumOrdinalTypeHandler"/>
<result column="transaction_id" jdbcType="VARCHAR" property="transactionId"/>
...
</resultMap>
另外在查询条件时,直接.ordinal属性即可:
... <if test="status!=null"> and o.status = #{status.ordinal} </if> </where>
发表评论
-
DruidDataSource配置
2019-01-14 16:14 512https://github.com/alibaba/drui ... -
验证码服务
2018-11-16 15:40 766<dependency> <grou ... -
Date2LocalDate
2018-06-29 16:34 650public class DateUtils { ... -
项目搭建记录
2018-06-29 16:12 748#JPA findAll方法,如何将Entity 转为 Dto ... -
SpringBoot多模块相互依赖,找不到依赖包
2018-06-28 16:25 2946https://blog.csdn.net/guduyishu ... -
springboot 集成mybaties
2018-06-26 18:48 820前情: 项目DB访问主要是JPA。 但因为前期需求的不确定等原 ... -
FeignClient的坑。。
2018-06-16 00:46 941@GetMapping("/refund/{orde ... -
vaadin使用springboot
2018-06-12 09:51 1016Vaadin with Spring Boot Cust ... -
当配置文件有某个配置项,才启用对应配置 @ConditionalOnProperty
2018-06-07 17:37 1768当存在配置:xxx.security.social.qq.ap ... -
Swagger Config
2018-06-04 16:40 764@Configuration @EnableSwagge ... -
打包pom配置,jar包
2018-06-01 17:47 1081..... </dependencies& ... -
Hystrix&Feign不触发断路器,抛出自定义业务异常
2018-05-29 10:48 3057http://blog.didispace.com/renco ... -
LocalDate自动转java.sql.Date
2018-05-28 14:43 875https://stackoverflow.com/quest ... -
Query By Example
2018-05-28 00:59 625https://blog.csdn.net/zhao_tuo/ ... -
自动将Dto转实体类
2018-05-26 00:46 1110https://auth0.com/blog/automati ... -
Java数据校验(Bean Validation / JSR303)
2018-05-25 16:01 1184http://www.cnblogs.com/pixy/p/5 ... -
RestTempldate处理异常
2018-05-24 22:04 14public class MyErrorHandler i ... -
利用redis生成序列编码 Util
2018-05-24 01:36 4275public class SequenceCodeUtil ... -
Jedis
2018-05-23 15:35 635https://blog.csdn.net/qq_353628 ... -
JPA BaseEntity设计
2018-05-22 18:09 1975@MappedSuperclass @Data @ ...
相关推荐
MyBatis处理枚举类的简单方法 MyBatis是一个流行的持久层框架,提供了很多便捷的方法来处理数据库交互,然而,在处理枚举类时,MyBatis提供的两个枚举处理类:`EnumOrdinalTypeHandler`和`EnumTypeHandler`,却存在...
本项目示例"1.springboot+mybatis项目demo2.mybatis自定义枚举类型的转换器以及各种使用场景"着重展示了如何在Spring Boot应用中集成MyBatis,并利用MyBatis处理枚举类型的数据。 首先,我们来了解Spring Boot。...
本文将深入探讨在MyBatis中如何使用枚举类型,并通过实际的项目"mybatis入门实战之枚举类型"进行讲解。这个项目提供了一个简单的demo,非常适合初学者了解并实践MyBatis的TypeHandler机制。 首先,我们要明白枚举...
在Spring Boot和MyBatis的集成应用中,我们经常需要处理枚举类型的数据。枚举在编程中是一种常用于表示固定数量和含义的值的类型,它可以提高代码的可读性和可维护性。然而,当涉及到数据库交互时,枚举与数据库中的...
在MyBatis的配置中注册这个类型处理器,确保在处理枚举类型的字段时能正确映射。 3. **前后端分离项目的统一返回JSON格式**: 在前后端分离的架构中,后端作为API服务器,需要提供统一的JSON格式响应,以便前端...
在MyBatis中,枚举类型的自动转换是一个常见的需求,特别是在处理数据库字段与Java枚举类型之间转换时。本文将详细介绍如何在MyBatis中实现枚举的自动转换,以便在查询结果返回时能直接得到对应的枚举实例,无需额外...
在Mybatis的配置中,我们需要注册这个自定义的TypeHandler,以便Mybatis在处理枚举时能够正确地调用我们的`DisplayedEnumTypeHandler`。配置如下: ```xml ``` `CustomDisplayedEnumTypeHandler` 类需要实现`...
在处理枚举类型时,Mybatis-Plus提供了通用枚举(Generic Enum)的功能,使得枚举在数据库交互中的使用更加优雅。 在数据库设计中,我们常常会遇到一些具有固定选项的字段,如性别、状态等,这些字段通常可以使用...
在MyBatis-Plus中,`@EnumValue`是一个用于处理枚举类型的注解,它使得枚举可以与数据库中的字段进行映射。这个注解主要用于解决枚举类型在序列化和反序列化过程中的问题,确保数据在数据库和Java对象之间能够正确地...
接下来,我们需要创建一个自定义的枚举处理器,这个处理器会处理枚举到整型的转换。这里我们创建了一个名为`UniversalEnumHandler`的类,它继承自MyBatis的`BaseTypeHandler`,并处理特定类型的枚举: ```java @...
本文将深入探讨MyBatis中的TypeHandler,特别是`EnumOrdinalTypeHandler`和`EnumTypeHandler`,以及如何自定义TypeHandler来处理枚举类与数据库字典的映射。我们将通过三个具体的使用案例进行讲解。 首先,让我们...
#### 处理枚举(HandlingEnums) MyBatis对枚举类型提供了一定的支持,可以通过配置文件自定义枚举类型的映射方式。 #### 对象工厂(objectFactory) 对象工厂用于创建结果对象的实例。MyBatis在设置结果集属性时...
在查询时,Mybatis Plus提供了方便的方法来处理枚举类型。例如,我们想要查找所有状态为`ACTIVE`的用户: ```java List<User> activeUsers = userMapper.selectList(new QueryWrapper().eq("status", StatusEnum....
1. 自定义TypeHandler:当MyBatis内置的TypeHandler无法满足需求时,可以编写自定义TypeHandler,覆盖默认的类型转换逻辑,如处理自定义枚举类型、复杂对象等。 2. 自定义Executor:Executor是MyBatis的执行器,...
这两集将引导我们了解如何定义并使用自定义的类型处理器,以更灵活地处理枚举类型。 存储过程是数据库中常用的功能,86集和85集详细介绍了Mybatis如何调用存储过程,包括在Oracle数据库中创建带游标的存储过程,这...
- HandlingEnums:特别说明了如何处理枚举类型的映射。 - objectFactory:配置一个对象工厂实例,MyBatis用它来创建结果对象。 - plugins:可以自定义插件来改变MyBatis内部的行为。 - environments:配置数据库环境...
1.创建第一个 MyBatis 程序案例 2.MyBatis 配置文件案例 3.MyBatis 关联查询与懒加载案例 4.MyBatis 缓存案例 5.MyBatis 动态 SQL 标签案例 6.MyBatis Generator 、...7.MyBatis 自定义 typeHandler 处理枚举类型案例
MyBatis的枚举类型处理器,用于处理Java枚举类型与数据库表之间的映射关系。 object, MyBatis的对象是指Java对象,用于表示业务逻辑中的实体对象。MyBatis的对象可以与数据库表之间建立映射关系,从而实现数据的...
- **枚举配置**:MyBatis-Plus支持枚举类型作为字段,这在处理状态、性别等固定值时非常方便。枚举类需实现`IEnum`接口,如`SexEnum implements IEnum<Integer>`,并定义`getValue()`和`getDesc()`方法。在Mapper中...
4. 枚举类型映射:可以使用`<discriminator>`元素根据某个字段的值来决定使用哪个ResultMap,常用于处理枚举类型的字段。 5. TypeHandler:自定义数据类型的转换,比如日期、时间、自定义对象等,可以通过Type...