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_numbermerchant_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 智能编码助手官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/840301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文章解读与仿真程序复现思路——电力系统保护与控制EI\CSCD\北大核心《基于改进粒子滤波的锂离子电池剩余寿命预测 》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Windows 10x64 IoT Enterprise LTSC 2021

打KB5036892补丁&#xff0c;升级版本19044.4291&#xff0c;打简体中文补丁包&#xff0c;系统后续升级需要升级英文补丁&#xff0c;需要重新打中文补丁包&#xff0c;系统禁用升级。禁用打印机服务&#xff0c;需要安装打印机的自行打开服务Print Spooler。 链接&#xff1a…

【SqL】数据库脚本编写规范和指南

编写本文档的目的是保证在开发过程中产出高效、格式统一、易阅读、易维护的SQL代码。 1 编写目的 2 SQL书写规范 3 SQL编写原则 软件全套资料获取进主页或者本文末个人名片直接获取。

Spring AOP的实操 + 原理(动态代理)

1 什么是Spring AOP 要想知道Spring AOP那必然是是要先知道什么是AOP了: AOP&#xff0c;全称为 Aspect-Oriented Programming&#xff08;面向切面编程&#xff09;&#xff0c;是一种编程范式&#xff0c;用于提高代码的模块化&#xff0c;特别是横切关注点&#xff08;cros…

钡铼BL205分布式IO在精密机械加工自动化中的精准控制OPC UA

随着工业自动化技术的不断发展&#xff0c;精密机械加工领域对于高效、精准的控制需求日益增加。在这一背景下&#xff0c;钡铼BL205分布式IO的出现为精密机械加工自动化注入了新的活力和可能性。本文将探讨钡铼BL205分布式IO在精密机械加工自动化中的应用&#xff0c;尤其是其…

使用Python探究OpenAI API

谁没听说过OpenAI?这家人工智能研究实验室因其著名的产品ChatGPT而改变了世界。它改变了AI实施领域&#xff0c;许多公司现在急于成为下一大热点。 尽管竞争激烈&#xff0c;OpenAI仍然是任何生成式AI业务需求的首选公司&#xff0c;因为它拥有最好的模型和持续的支持。该公司…

在使用LabVIEW控制多个串口设备进行数据读取时,读取时间过长

在使用LabVIEW控制多个串口设备进行数据读取时&#xff0c;如果发现数据更新时间超过5秒&#xff0c;可以从以下几个方面进行分析和解决&#xff1a; 1. 串口配置与通信参数 确保每个串口的通信参数&#xff08;波特率、数据位、停止位、校验位等&#xff09;配置正确&#x…

【Spring Security系列】权限之旅:SpringSecurity小程序登录深度探索

作者&#xff1a;后端小肥肠 创作不易&#xff0c;未经允许严禁转载。 姊妹篇&#xff1a; 【Spring Security系列】Spring SecurityJWTRedis实现用户认证登录及登出_spring security jwt 退出登录-CSDN博客 1. 前言 欢迎来到【Spring Security系列】&#xff01;在当今数字化…

识别剪贴板的内容并且添加磁力头

有时候复制的磁力链接并没有磁力头&#xff0c;而只有后面的内容&#xff0c;这个时候就必须给磁力链接添加开头magnet:xturn:btih:下载软件才能识别&#xff0c;如果经常需要这么做比较麻烦&#xff0c;于是我写了一个自动添加磁力头的小软件&#xff0c;运行即可自动添加&…

记录一个写SpringBoot中Hive数据可以正常提取但无法存到MySQL的bug

【背景】 我正在用SpringBoot框架写一个数据治理项目&#xff0c;目前所处阶段是将hive和hdfs中的元数据提取出来&#xff0c;存储到MySQL中&#xff0c;我的hive和hdfs上的数据存储在三台Linux服务器上&#xff08;hadoop102-104&#xff09;&#xff0c;MySQL在我本地Window…

JAVA 转 Golang——速通 Golang 基础

文章目录 1. 前言&#xff1a;2. go的下载与配置3. Golang 目录结构4. Golang 的基础语法4.1. 变量声明4.2. 输入输出4.3. 条件控制4.4. 数组和切片4.5. 映射表 1. 前言&#xff1a; 根据鼠鼠的实习投递经历&#xff0c;由于越来越多中大型公司都使用 Golang&#xff0c;在现在…

vue + SpringBoot + flowable 实现工作流审批功能 (流程图部署)

目录 搭建前端vue项目 vue init webpack project_name 初始化项目 导入 element-ui 框架 npm install element-ui -s 设置 element-ui 全局配置 编辑 main.js 文件 import ElementUI from "element-ui"; // ui框架导入 import element-ui/lib/theme-chal…

文心大模型4.0创建智能体:资深研发专家一对一辅导

目录 前言 一、什么是文心智能体平台&#xff1f; 1、通过平台能做什么 2、平台的优势 3、智能体类型 二、如何访问和使用这个智能体&#xff1f; 1、零代码开发&#xff1a;一句话创建智能体 2、资深研发专家一对一辅导智能体介绍 总结 前言 在当今快节奏和高度竞争的…

Sping源码(八)—registerBeanPostProcessors

序言 之前我们用大量的篇幅介绍过invokeBeanFactoryPostProcessors()方法的执行流程。 而invokeBeanFactoryPostProcessors的主要逻辑就是遍历执行实现了BeanDefinitionRegistryPostProcesso类(主要是针对BeanDefinition的操作)和BeanFactoryPostProcessor(主要针对BeanFacrot…

干货 | 什么是单相感应电机控制器?一文带你看感应交流电机解决方案KP86202

单相感应电机控制器是一种用于控制单相感应电机运行的电子设备。单相感应电机是一种常见的电动机类型&#xff0c;广泛应用于家用电器、商业设备以及轻工制造等领域。 单相感应电机控制器通常包括电源模块、控制逻辑模块和功率输出模块。其主要功能是对单相感应电机进行启停、…

如何生成Github Badge徽章图标

如何生成徽章Badge 什么是徽章(Badge)生成小徽章shields网站开源项目的徽章lib版本徽章代码测试覆盖度开源协议Github workflow的徽章 开源代码实践效果py-enumjs-enumerate 什么是徽章(Badge) 在开源项目的README中&#xff0c;经常会见到一些徽章(Badge)小图标&#xff0c;如…

FastCopy

目录 背景: 简介&#xff1a; 原理: 下载地址: 工具的使用: 背景: 简介&#xff1a; FastCopy是一款速度非常快的拷贝软件&#xff0c;软件版本为5.7.1 Fastcopy是日本的最快的文件拷贝工具&#xff0c;磁盘间相互拷贝文件是司空见惯的事情&#xff0c;通常情况…

redis--redis Cluster

简介 解决了redis单机写入的瓶颈问题&#xff0c;即单机的redis写入性能受限于单机的内存大小、并发数量、网卡速率等因素无中心架构的redis cluster机制&#xff0c;在无中心的redis集群当中&#xff0c;其每个节点保存当前节点数据和整个集群状态,每个节点都和其他所有节点连…

好书推荐|MATLAB科技绘图与数据分析

提升你的数据洞察力&#xff0c;用于精确绘图和分析的高级MATLAB技术 MATLAB科技绘图与数据分析——jd 本书内容 《MATLAB科技绘图与数据分析》结合作者多年的数据分析与科研绘图经验&#xff0c;详细讲解MATLAB在科技图表制作与数据分析中的使用方法与技巧。全书分为3部分&a…

C语言 数组——数组的定义和初始化

目录 为什么使用数组(Array)? 一维数组的定义 一维数组的初始化 一维数组元素的访问 一维数组元素的赋值 数组的逻辑存储结构 数组的物理存储结构 二维数组的定义和初始化 为什么使用数组(Array)? 一维数组的定义 一维 数组的定义 int a[10]; 定义一个有 10 个 int 型元素的…