org.apache.ibatis.builder.IncompleteElementException:Could not find result map cn.tengfei.core.dao.p

本文解决了一个关于 MyBatis 中 resultMap 的配置错误问题,详细介绍了如何排查和修复因 resultMap 配置不当导致的异常。
严重: Servlet.service() for servlet [console] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: org.apache.ibatis.builder.IncompleteElementException: Could not find result map cn.tengfei.core.dao.product.ProductDao.product
org.apache.ibatis.builder.IncompleteElementException: Could not find result map cn.tengfei.core.dao.product.ProductDao.product
	at org.apache.ibatis.builder.MapperBuilderAssistant.setStatementResultMap(MapperBuilderAssistant.java:346)
	at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:284)
	at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:107)
	at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:698)
	at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:668)
	at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:663)
	at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:180)
	at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:43)
	at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:51)
	at com.sun.proxy.$Proxy22.selectBrandListByQuery(Unknown Source)
	at cn.tengfei.service.test.BrandServiceImpl.selectBrandListByQuery(BrandServiceImpl.java:45)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:267)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
	at com.sun.proxy.$Proxy23.selectBrandListByQuery(Unknown Source)
	at com.alibaba.dubbo.common.bytecode.Wrapper1.invokeMethod(Wrapper1.java)
	at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46)
	at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72)
	at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:60)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:112)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:108)
	at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)
	at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)
	at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)
	at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for cn.tengfei.core.dao.product.ProductDao.product
	at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:797)
	at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:550)
	at org.apache.ibatis.builder.MapperBuilderAssistant.setStatementResultMap(MapperBuilderAssistant.java:344)
	... 51 more
] with root cause
java.lang.RuntimeException: org.apache.ibatis.builder.IncompleteElementException: Could not find result map cn.tengfei.core.dao.product.ProductDao.product
org.apache.ibatis.builder.IncompleteElementException: Could not find result map cn.tengfei.core.dao.product.ProductDao.product
	at org.apache.ibatis.builder.MapperBuilderAssistant.setStatementResultMap(MapperBuilderAssistant.java:346)
	at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:284)
	at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:107)
	at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:698)
	at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:668)
	at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:663)
	at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:180)
	at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:43)
	at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:51)
	at com.sun.proxy.$Proxy22.selectBrandListByQuery(Unknown Source)
	at cn.tengfei.service.test.BrandServiceImpl.selectBrandListByQuery(BrandServiceImpl.java:45)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:267)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
	at com.sun.proxy.$Proxy23.selectBrandListByQuery(Unknown Source)
	at com.alibaba.dubbo.common.bytecode.Wrapper1.invokeMethod(Wrapper1.java)
	at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46)
	at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72)
	at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:60)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:112)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:108)
	at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)
	at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)
	at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)
	at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for cn.tengfei.core.dao.product.ProductDao.product
	at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:797)
	at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:550)
	at org.apache.ibatis.builder.MapperBuilderAssistant.setStatementResultMap(MapperBuilderAssistant.java:344)
	... 51 more

	at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:108)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:60)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:112)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
	at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:108)
	at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)
	at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)
	at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)
	at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)


遇到这个问题的时候我也根据Could not find result map cn.tengfei.core.dao.product.ProductDao.product以及下面的mapper信息确认是我的Mapper信息除了问题,但是很坑的是下面还报了一个关于品牌的BrandServiceImpl.java:45错误,以此来误导我!

后来也是根据查找资料确认就是resultmap出了问题,在mybatis的mapper文件中,只要有任意一个位置的参数类型或者返回值类型错误,都会报此错误

	<select id="selectProductById" parameterType="Long" resultMap="product">
		select id,name,description,img_url,is_new,is_hot,is_commend,is_show,colors,sizes
		from bbs_product
		<where>
			id = #{id}
		</where>
	</select>
最后把resultMap改为resultType就OK了,有的人可能是因为parameterType写成了parameterMap而报的错,所以说不管是参数类型还是返回值类型都要仔细确认好


关于resultType和resultMap都是返回值的类型,怎么使用请查看链接:http://blog.youkuaiyun.com/woshixuye/article/details/27521071



<think>根据用户的问题,用户遇到了MyBatis的`IncompleteElementException`异常,具体是找不到结果映射`com.itheima.pojo.Person.PersonWithIdCardResult2`,该结果映射被`com.itheima.pojo.Person.findPersonById2`引用。结合引用内容,这个异常通常是因为MyBatis在解析XML配置文件时,发现引用的结果映射(resultMap)不存在。 解决思路如下: 1. **检查结果映射的ID是否正确**:确保在XML配置文件中定义了一个ID为`PersonWithIdCardResult2`的`<resultMap>`,并且该ID与`findPersonById2`这个查询语句中引用的结果映射ID完全一致(包括大小写)。 2. **检查命名空间(namespace)**:确保`findPersonById2`所在的Mapper接口的命名空间(即XML中mapper的namespace属性)与结果映射`PersonWithIdCardResult2`所在的XML文件的命名空间一致。如果结果映射定义在另一个Mapper XML中,则需要使用全限定名(即包括命名空间)来引用。 3. **检查XML文件是否被正确加载**:确保包含结果映射定义的XML文件在MyBatis的配置中被正确扫描到(比如在Spring配置中,`mapperLocations`配置是否正确)。 4. **检查是否重名导致覆盖**:如果同一个命名空间下有两个相同的resultMap id,可能会被覆盖,导致其中一个无法找到。 5. **检查XML文件的位置和命名**:如果使用Maven等构建工具,确保XML文件位于正确的资源目录下(如`src/main/resources`),并且文件命名与Mapper接口对应(或符合扫描规则)。 具体步骤: - 步骤1:在`com.itheima.pojo.Person`对应的Mapper XML文件中(假设是`PersonMapper.xml`),查找名为`PersonWithIdCardResult2`的`<resultMap>`定义。确保其id属性为`PersonWithIdCardResult2`(注意大小写)。 - 步骤2:在`findPersonById2`的`<select>`标签中,检查`resultMap`属性是否正确引用了这个结果映射。如果结果映射定义在同一个Mapper XML中,可以直接写id,如`resultMap="PersonWithIdCardResult2"`;如果定义在其他Mapper XML中,则需要使用全限定名,如`resultMap="com.itheima.mapper.OtherMapper.PersonWithIdCardResult2"`。 - 步骤3:检查MyBatis的配置文件(如`mybatis-config.xml`)或Spring配置中,是否设置了正确的mapperLocations,确保包含结果映射的XML文件被扫描到。例如,在Spring Boot中,可以在`application.properties`中配置`mybatis.mapper-locations=classpath*:mapper/**/*.xml`。 - 步骤4:如果项目使用Maven,检查XML文件是否被正确复制到target/classes目录下。可以查看编译后的目录结构确认。 如果以上步骤都正确,但仍然报错,可以尝试清理并重新构建项目(如Maven的clean和install),有时候是因为编译过程中XML文件没有被正确复制。 另外,根据引用[2],如果找不到参数映射(parameterMap)也会抛出类似异常,但这里报的是结果映射(resultMap),所以主要关注结果映射的配置。 示例:假设在`PersonMapper.xml`中定义结果映射和查询语句: ```xml <mapper namespace="com.itheima.pojo.Person"> <!-- 定义结果映射 --> <resultMap id="PersonWithIdCardResult2" type="com.itheima.pojo.Person"> <!-- 映射字段 --> </resultMap> <!-- 引用结果映射 --> <select id="findPersonById2" resultMap="PersonWithIdCardResult2"> SELECT * FROM person WHERE id = #{id} </select> </mapper> ``` 注意:如果`PersonWithIdCardResult2`是在同一个命名空间下,直接写id即可;如果在不同的命名空间,则需要使用全名。 如果问题仍然存在,请检查是否有多个同名的结果映射,或者是否在多个XML文件中定义了同一个命名空间,这可能导致覆盖。 最后,如果用户使用的是注解方式配置MyBatis,那么结果映射也可以通过注解@Results来定义,需要确保在对应的Mapper接口方法上使用@ResultMap注解来引用。但根据问题描述,用户似乎使用的是XML配置(因为引用了XML中的结果映射)。 因此,总结解决方法:仔细检查结果映射的定义、引用、命名空间以及XML文件的加载情况。 生成相关问题: 1. 如何正确配置MyBatis的结果映射(resultMap)? 2. MyBatis中命名空间(namespace)的作用是什么? 3. 在Spring Boot中如何配置MyBatis的mapperLocations? 4. 如何解决MyBatis XML文件在Maven项目中未被正确加载的问题? </think> ### 解决 MyBatis 中 `IncompleteElementException`:找不到结果映射的方法 该异常表示 MyBatis 在解析 XML 时找不到被引用的结果映射 `PersonWithIdCardResult2`。以下是完整解决步骤: #### 1. **检查结果映射定义 (核心步骤)** - 在 `PersonMapper.xml` 中确认是否存在以下明确定义: ```xml <!-- 检查ID是否完全匹配(区分大小写) --> <resultMap id="PersonWithIdCardResult2" type="com.itheima.pojo.Person"> <!-- 字段映射配置 --> <id property="id" column="person_id"/> <result property="name" column="person_name"/> </resultMap> ``` - **常见错误**: - ID 拼写错误(如 `PersonWithIdcardResult2`) - 未正确定义 `type` 属性 #### 2. **验证查询语句的引用** - 在 `findPersonById2` 的 `<select>` 标签中检查引用: ```xml <select id="findPersonById2" resultMap="PersonWithIdCardResult2"> <!-- 确保resultMap属性值正确 --> SELECT * FROM person WHERE id = #{id} </select> ``` - **关键点**: - 确认 `resultMap` 属性值 **完全等于** `PersonWithIdCardResult2`(无多余空格) - 若结果映射在 **其他 Mapper** 中,需使用全限定名:`resultMap="com.xxx.OtherMapper.PersonWithIdCardResult2"` #### 3. **检查 XML 文件加载状态** - 在 `mybatis-config.xml` 中确认包含该映射的 XML 已被扫描: ```xml <mappers> <!-- 确认路径与文件名正确 --> <mapper resource="com/itheima/pojo/PersonMapper.xml"/> </mappers> ``` - **Spring Boot 用户**:在 `application.properties` 中添加: ```properties mybatis.mapper-locations=classpath*:com/itheima/pojo/*.xml ``` #### 4. **验证命名空间匹配** - 确保 Mapper 接口与 XML 的命名空间一致: ```xml <!-- PersonMapper.xml --> <mapper namespace="com.itheima.pojo.Person"> <!-- 必须与接口全限定名相同 --> ``` #### 5. **其他排查点** - **重复 ID 冲突**:检查同一 XML 中是否存在同名 `resultMap` - **构建工具问题**:执行清理并重新构建项目(如 Maven 的 `mvn clean install`) - **文件位置**:确认 XML 文件位于资源目录(如 `src/main/resources`) > **典型修复案例**: > 当 `resultMap` 被误写为 `resultType` 时,会直接引发此异常[^1]。MyBatis 在启动时解析 XML 文件,若引用的 `resultMap` 不存在即抛出 `IncompleteElementException`[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值