IntelliJ IDEA集成Baidu Comate,商城系统支付交易功能开发实战
文章目录
- Baidu Comate介绍
- 安装配置体验
- 安装
- 插件配置
- 体验
- 注释生成代码
- 技术问答
- 实战
- 设计表
- 生成代码
- 导入数据
- 总结
Baidu Comate介绍
在科技互联网飞速发展的今天,百度凭借其深厚的技术积累和创新能力,推出了一款名为Baidu Comate智能代码助手的产品。该产品以文心大模型为基础,融合了百度多年积累的编程现场大数据和优秀开源数据,旨在为程序员们生成更符合实际研发场景的优质代码。

Baidu Comate智能代码助手提供三种核心场景:智能推荐、智能生成、智能问答。它存在的独特的产品优势为:
- 精准且高效的代码智能推荐;
- 强大的智能生成和问答,研发场景全方位覆盖;
- 支持全平台、主流 IDE 和众多编程语言;
- 提供数据可视化功能;
- 支持私有化部署和高安全性;
安装配置体验
大家都知道阿Q是搞java的,所以平时使用最多的工具就是IntelliJ IDEA了。接下来,请跟随阿Q的脚步,带大家在IntelliJ IDEA中集成一下Baidu Comate智能代码助手。
先跟大家说一下我本地的环境:
操作系统版本:Windows10.0.19045.4291
JetBrains版本:IntelliJ IDEA 2020.2.3
安装
点击 IntelliJ IDEA 界面中的 ‘File’ -> ‘Settings’

在①处搜索“plugin”,在②处搜索’comate’,然后点击③处的install进行安装,安装完之后重启IntelliJ IDEA。

插件配置
IntelliJ IDEA重启后,右下角会弹出登录提示框

点击【登录】链接,唤起登录页面,支持百度、微信、微博、QQ扫描登录

登录完成之后点击左上角的头像进入个人信息页面

将license信息复制出来

点击IntelliJ IDEA右上角的comate图标,点击【设置】按钮,进行license设置,然后我们就可以体验Comate智能代码助手的各项功能了。

体验
插件配置成功之后我们就来顺手体验一下它的几个小功能。
注释生成代码
在代码中,我们只需要写上带有具体需求的注释,回车之后就会自动生成代码,有了这个功能,相信平时丢三落四的小伙伴直接对代码进行优化就可以了。

相信眼尖的同学已经发现了,当我们声明一个方法之后,方法前边会吃出现一个logo,让我们看看这个简单的小logo能带给我们什么样的惊喜。先给大家演示一波

技术问答
当你想要跳槽的时候,是不是在公司不方便背诵八股文?又或者想要看八股文的文章却要遮遮掩掩?有了Comate的加持,相信你已经猜到如何优雅的背诵八股文了吧?

实战
最近阿Q正在开发自己的商城系统,这几天接入了微信支付,今天接到产品经理的需求,说是要将微信的交易记录下载下来,存到我们本地的数据库中,用于后续进行一系列的分析操作。既然Baidu Comate有如此之强大的功能,瞬间萌生了让他辅助我完成开发功能的想法。
设计表
说干就干,首先我将微信官网的文档下载下来,保存到本地,然后让Comate帮我根据文件自动创建表结构并将数据存储到数据库。请根据以上字段帮我创建一张mysql表:

大家可以看到我对他执行了三次描述差不多的指令,终于在最后一次他理解了我的用意并帮我完成了表结构的设计。虽然过程有点坎坷,但是他最终还是帮我实现了。由此可见,comate的语言识别能力还有待加强。
CREATE TABLE transactions (transaction_time DATETIME NOT NULL COMMENT '交易时间',public_account_id VARCHAR(255) NOT NULL COMMENT '公众账号ID',merchant_id VARCHAR(255) NOT NULL COMMENT '商户号',special_merchant_id VARCHAR(255) COMMENT '特约商户号',device_number VARCHAR(255) COMMENT '设备号',wechat_order_number VARCHAR(255) NOT NULL COMMENT '微信订单号',merchant_order_number VARCHAR(255) NOT NULL COMMENT '商户订单号',user_identifier VARCHAR(255) NOT NULL COMMENT '用户标识',transaction_type VARCHAR(255) NOT NULL COMMENT '交易类型',transaction_status VARCHAR(255) NOT NULL COMMENT '交易状态',payment_bank VARCHAR(255) COMMENT '付款银行',currency_type VARCHAR(50) NOT NULL COMMENT '货币种类',should_pay_amount DECIMAL(10, 2) NOT NULL COMMENT '应结订单金额',coupon_amount DECIMAL(10, 2) COMMENT '代金券金额',product_name VARCHAR(255) COMMENT '商品名称',merchant_data TEXT COMMENT '商户数据包',service_charge DECIMAL(10, 2) COMMENT '手续费',rate DECIMAL(5, 4) COMMENT '费率',order_amount DECIMAL(10, 2) COMMENT '订单金额',rate_remark VARCHAR(255) COMMENT '费率备注',PRIMARY KEY (wechat_order_number, merchant_order_number)
);
从生成的结果来看,还是挺让我满意的,毕竟根据汉语起英文名真是个令人头疼的问题,另外它没有像大部分的建表语句一样帮我生成一个自动递增的主键ID,而是将wechat_order_number和merchant_order_number作为了表的主键,因此我们自己调整一下加个主键id。
CREATE TABLE `transactions` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`transaction_time` datetime NOT NULL COMMENT '交易时间',`public_account_id` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '公众账号ID',`merchant_id` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '商户号',`special_merchant_id` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '特约商户号',`device_number` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '设备号',`wechat_order_number` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '微信订单号',`merchant_order_number` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '商户订单号',`user_identifier` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户标识',`transaction_type` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '交易类型',`transaction_status` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '交易状态',`payment_bank` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '付款银行',`currency_type` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '货币种类',`should_pay_amount` decimal(10,2) NOT NULL COMMENT '应结订单金额',`coupon_amount` decimal(10,2) DEFAULT NULL COMMENT '代金券金额',`product_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品名称',`merchant_data` text COLLATE utf8mb4_general_ci COMMENT '商户数据包',`service_charge` decimal(10,2) DEFAULT NULL COMMENT '手续费',`rate` decimal(5,4) DEFAULT NULL COMMENT '费率',`order_amount` decimal(10,2) DEFAULT NULL COMMENT '订单金额',`rate_remark` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '费率备注',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
生成代码
我将上边生成的mysql语句保存到transactions.txt中,并让comate根据该文件帮我生成对应的controller、service、mapper文件,并书写导入文件的逻辑。

我们只需要将生成的代码复制到项目中创建对应的文件即可,然后需要修改下导入的包名,这样一下子就减轻了我们创建文件的繁琐步骤。
另外我发现他给我写的导入逻辑只是简单地写了下注释,并没有实际的操作方法,因此在接下来的步骤中我还需要加强一下我的描述让他帮我再次生成下导入文件的逻辑。
我突然发现忘记生成实体类了,接着又让他帮我生成了对应的实体类。

同样我们也对他进行简单的修改即可,加上自增ID注解@TableId(type = IdType.AUTO),并在实体类上加上@Table(name = “transactions”)和@Data注解。
导入数据
因为上边生成的导入逻辑并不完美,于是我又重新描述了我的需求:帮我写一个导入 #transactions.txt 文件并保存为实体类的逻辑。

将生成的代码复制到项目中,并更换具体的路径CSV_FILE_PATH,接着将具体字段的映射进行简单的整理,然后将之前的Controller进行重写
@RestController
@RequestMapping("/transactions")
public class TransactionController {@Autowiredprivate TransactionService transactionService;@PostMapping("/import")public ResponseEntity<?> importTransactions() {//最新的解析xlsx文件并映射为实体类的逻辑List<Transaction> transactions = TransactionImporter.importTransactions();// 调用Service的方法保存交易记录for (Transaction transaction : transactions) {transactionService.insertTransaction(transaction);}return ResponseEntity.ok("Transactions imported successfully.");}}
最后我们来进行下测试,调用“localhost:8080/transactions/import”接口之后发现控制台并没有报错,然后查看数据库,发现数据已经存到表里了。

总结
通过这几天对Comate的体验,首先最直观的感受就是它的响应速度很快,通过对话框中提出需求得到的代码质量比较高,能很大程度上提升开发效率,不用我再去打开浏览器百度一下了。其中根据数据库sql语句生成一系列CRUD代码的功能甚得我的喜爱。
随着使用的加深,它暴漏出来的问题也随之产生,比如对输入的语句理解能力不够,需要不断调整我们的描述信息他才会理解到位给出解决方案。再比如它生成的代码不够完美,仍需要我们自己进行简单的调整,这就意味着目前程序员还不太会失业,毕竟代码小白是不会调整代码让程序运行通过的。
最后我要去优雅地看八股文了,你也来抓紧体验一下吧!点击下载:Baidu Comate 智能编码助手官网
相关文章:
IntelliJ IDEA集成Baidu Comate,商城系统支付交易功能开发实战
文章目录 Baidu Comate介绍安装配置体验安装插件配置体验注释生成代码技术问答 实战设计表生成代码导入数据 总结 Baidu Comate介绍 在科技互联网飞速发展的今天,百度凭借其深厚的技术积累和创新能力,推出了一款名为Baidu Comate智能代码助手的产品。该…...
20212313 2023-2024-2 《移动平台开发与实践》第5次作业
20212313 2023-2024-2 《移动平台开发与实践》第5次作业 1.实验内容 设计并开发一个地图应用系统。 该实验需提前申请百度API Key,调用接口实现百度地图的定位功能、地图添加覆盖物和显示文本信息。 2.实验过程 2.1 获取SHA1 (1)打开控制台…...
Python图形界面(GUI)Tkinter笔记(十二):用【Entry()】实现单行文本输入(3)
Tkinter库中的单行文本输入框(Entry)除了与get()方法组合产生多姿多彩的反应,还可以与insert()方法组合而产生新的功能。例如用于用户不作任何输入就用默认值当作用户的输入这种场境,或在输入文本中加入指定的字符等。 其余笔记:【Python图形界面(GUI)Tkinter笔记(总目录…...
前端渲染页面的原理
之前一直不愿意写一篇关于原理的,因为说起来实在是太繁杂,要写得细,码字梳理,计算下来起码都要差不多三周。以前一直躲避这个事情,现在反正有时间,为了不荒废自己,那就从头捋一遍。也方便自己后…...
【一竞技DOTA2】RAMZES666替补参加裂变联赛
1、根据主办方文件,RAMZES666将继续作为Tundra战队替补参加裂变联赛。该比赛为欧洲线上赛,于5月27日-30日举行,总奖金8万美元。 除此之外,Nigma战队在上个月宣布四号位Matthew离队后,也选择启用老队员GH参赛。而在本月初让ah fu转回教练、携替补Thiolicor出战PGL瓦拉几亚的Secr…...
1109 擅长C(测试点0,1,2,3)
当你被面试官要求用 C 写一个“Hello World”时,有本事像下图显示的那样写一个出来吗? ..C.. .C.C. C...C CCCCC C...C C...C C...C CCCC. C...C C...C CCCC. C...C C...C CCCC. .CCC. C...C C.... C.... C.... C...C .CCC. CCCC. C...C C...C C...C C…...
北京新高度画室:端午假期免费吃,住,学!
经历了联考校考的过关斩将 2024届追梦人终于要迎来最后一战高考 承载着梦想的日子在一天天靠近 千里遥程将要看到希望的曙光 新高度祝所有高三学子高考顺利金榜题名 梦想是一场接力赛 新高度画室2025届集训已经开始 如果你错过了清明、错过了五一 那么高考&端午试学…...
电脑重要文件如何加密保护?教你两种方法
加密是保护电脑重要文件的常见方法,可以有效避免文件数据泄露。那么,电脑重要文件该如何加密保护呢?下面小编就来教你两种方法,帮助你解决文件安全问题。 超级加密3000 超级加密3000是一款专业的电脑数据加密软件,可以…...
新零售收银解决方案:传统门店超市的数字化-亿发
在数字化浪潮的推动下,零售行业正经历着前所未有的变革。阿里巴巴提出的“新零售”概念,不仅仅是一个商业口号,它代表了一种全新的商业模式和运营理念。随着时代的进步和消费需求的不断升级,新零售的兴起已成为行业发展的必然趋势…...
独家揭秘!Amazon、lazada、Shopee测评自养号,新手也能秒变高手!
近年来,随着国内卖家涌入跨境电商平台,市场竞争愈加激烈。为了迅速占领市场,测评变得至关重要。然而,真人测评供不应求,服务商账号质量不一,且存在高权重账号稀缺和黑卡下单风险。因此,许多大卖…...
企企通入选第一新声《2024年中国CIO数字化产品选型白皮书》供应链数字产品可信名录
近日,第一新声研究院根据多年产业数字化研究,历经近半年时间,并综合近200位CIO调研与推荐意见,发布《2024年中国CIO数字化产品选型白皮书》,并推出企业CIO选型指南及可信产品名录。企企通凭借其优秀的采购数字化与供应…...
Linux中 “权限设置修改”
目录 一、权限 (1)权限三大类: (2)文件的权限: (3)目录的权限: (4)用户的角色: 二、文件的权限位 三、修改用户权限 …...
9.1 Go语言入门(环境篇)
Go语言入门(环境篇) 目录一、什么是Go语言二、下载安装配置Go语言开发环境1. 下载2. 安装3. 配置环境变量4. 安装环境验证 三、 开发工具1. 下载2. 安装3. 激活4. 配置SDK 四、 创建go工程文件并运行1. 创建go工程2. 示例代码3. 运行代码 目录 一、什么…...
简单的网页分享按钮代码
创建一个网页分享按钮通常涉及到HTML、CSS和JavaScript的组合使用。下面是一个简单的示例代码,展示了如何创建一个包含微博、QQ和QQ空间分享的按钮。请注意,这只是一个前端的实现示例,实际分享功能需要依赖于相应的社交媒体平台提供的API或分…...
ld链接文件
文章目录 1. sections缩写2. 链接脚本2.1 MEMORY(内存命令)2.1.1 作用2.1.2 格式 2.2 SECTIONS(段命令)2.2.1 作用2.2.2 格式 2.3 特殊符号含义2.4 通配符2.5 Eg 1. sections缩写 2. 链接脚本 https://www.cnblogs.com/jianhua19…...
React-事件绑定
React基础事件绑定 语法:on事件名称{事件处理程序},整体上遵循驼峰命名法 使用事件对象参数 语法:在事件回调函数中设置形参e...
使用“tcpdump”查看原始数据包
使用“tcpdump”查看原始数据包 尽管像 Snort 这样的工具可以出色地筛选通过我们网络的所有内容,但有时需要查看原始数据。为此,我们最好的工具是“tcpdump”。 使用 tcpdump 的最基本方法是简单地发出以下命令: tcpdump 使用 -v 选项可以…...
Python字符串处理全面教程
目录 第一部分:Python字符串基础 1.1 创建字符串 1.2 索引和切片 1.3 字符串连接和重复 1.4 字符串格式化 1.5 字符串的不可变性 总结: 第二部分:Python字符串常用方法 2.1 查找子字符串 find() 方法 index() 方法 rfind() 和 ri…...
基于微信小程序+ JAVA后端实现的【微信小程序跑腿平台】设计与实现 (内附设计LW + PPT+ 源码+ 演示视频 下载)
项目名称 项目名称: 《微信小程序跑腿平台的设计与实现》 项目技术栈 该项目采用了以下核心技术栈: 后端框架/库: Java, SSM框架数据库: MySQL前端技术: 微信小程序, HTML…(其它相关技术) …...
使用 VALUES 子句构建数据集
在数据库操作中,VALUES 子句是一个非常有用的工具,它可以直接在查询中创建一组值。这种方式非常适合用于临时数据的展示、测试和处理。本文将详细介绍 VALUES 子句的用法,并列出支持该功能的主要数据库系统。 一、VALUES 子句的基本用法 VA…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
TCP/IP 网络编程 | 服务端 客户端的封装
设计模式 文章目录 设计模式一、socket.h 接口(interface)二、socket.cpp 实现(implementation)三、server.cpp 使用封装(main 函数)四、client.cpp 使用封装(main 函数)五、退出方法…...
向量几何的二元性:叉乘模长与内积投影的深层联系
在数学与物理的空间世界中,向量运算构成了理解几何结构的基石。叉乘(外积)与点积(内积)作为向量代数的两大支柱,表面上呈现出截然不同的几何意义与代数形式,却在深层次上揭示了向量间相互作用的…...
Redis上篇--知识点总结
Redis上篇–解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字符串对象,而 val…...
