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…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...

windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...

Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...