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…...
Kali Linux 安全工具解析
Kali Linux 安全工具解析 目录 Kali Linux 安全工具解析一、Kali Linux 概述1.1 核心特性1.2 系统要求 二、核心工具分类与实战应用2.1 信息收集工具2.1.1 Nmap2.1.2 Recon-ng2.1.3 theHarvester 2.2 漏洞利用工具2.2.1 Metasploit Framework2.2.2 SQLMap2.2.3 Burp Suite 2.3 …...

Mac/iOS 如何解压 RAR 格式压缩包:常用工具与详细操作步骤
一、Mac 系统解压 RAR 文件之法 Mac 系统上解压 RAR 文件有多种方法,除了系统自带的一些简单功能外,还可以借助特定的软件来实现高效解压。以下将介绍几款常用工具的解压操作。 (一)解压专家解压步骤 解压专家 是一款在 Mac 和 …...
OpenCV 图像通道的分离与合并
一、知识点 1、一张彩色图像可以由R、G、B三个通道的灰度图合并而成。 2、void split(InputArray m, OutputArrayOfArrays mv); (1)、将多通道阵列划分为几个单通道阵列。 (2)、参数说明: m: 要分离的多通道阵列。 mv: 输出的vector容器,每个元素都…...
C++ map基础概念、map对象创建、map赋值操作、map大小操作、map数据插入、map数据删除、map数据修改、map数据统计
map的使用频率很高,仅次于vector,先了解下pair的概念: pair 概念: template<class _Ty1, class Ty2> struct pair{ _Ty1 first; // 这两个可以是任意的类型 _Ty2 second; }; eg:pair<int, int> p(13,…...

2024 CKA题库+详尽解析| 15、备份还原Etcd
目录 免费获取题库配套 CKA_v1.31_模拟系统 15、 备份还原Etcd 题目: 开始操作: 1)、切换集群 2)、登录master并提权 3)、备份Etcd现有数据 4)、验证备份数据快照 5)、查看节点和Pod状态 6&am…...
Linux下如何查看一个端口被什么进程占用? 该进程又打开了哪些文件?
Linux下如何查看一个端口被什么进程占用? 该进程又打开了哪些文件? 查看端口 1.使用lsof命令查看端口占用的进程 lsof可以列出系统上打开的文件,其中包括网络连接、进程信息等。 lsof -i:<端口号> 例如,如果需…...

uniapp Vue2 获取电量的独家方法:绕过官方插件限制
在使用 uniapp 进行跨平台应用开发时,获取设备电量信息是一个常见的需求。然而,uniapp 官方提供的uni.getBatteryInfo方法存在一定的局限性,它不仅需要下载插件,而且目前仅支持 Vue3,这让使用 Vue2 进行开发的开发者陷…...
如何把本地服务器变成公网服务器?内网ip网址转换到外网连接访问
内网IP只能在本地内部网络连接访问,当本地搭建服务器部署好相关网站或应用后,在局域网内可以通过内网IP访问,但在外网是无法直接访问异地内网IP端口应用的,只有公网IP和域名才能实现互联网上的访问。那么需要如何把本地服务器变…...

力扣面试150题--除法求值
Day 62 题目描述 做法 此题本质是一个图论问题,对于两个字母相除是否存在值,其实就是判断,从一个字母能否通过其他字母到达,做法如下: 遍历所有等式,为每个变量分配唯一的整数索引。初始化一个二维数组 …...

Flutter:下拉框选择
 文档地址dropdown_button2 // 限价、市价 状态final List<String> orderTypes [普通委托, 市价委托];String? selectedOrderType 普通委托;changeOrderType(String …...