写点什么

灵码产品演示:Maven 示例工程生成

作者:阿里云云效
  • 2025-09-12
    浙江
  • 本文字数:3056 字

    阅读完需:约 10 分钟

作者:轻眉


演示主题:由 AI 自动生成 0 到 1 的电商订单 Java 项目

演示目的

面向 Java 零基础的用户,通过灵码的产品能力(如提示词、编码智能体、项目 Rules 和 SQLite MCP 服务、单元测试)自动生成 0 到 1 的电商订单 Java 项目,使用 Maven 作为构建工具。

演示准备

1. 安装 JetBrains IDE

版本号 2020.3 及以上。Lingma IDE:通过安装包下载安装。参考:https://help.aliyun.com/zh/lingma/user-guide/installation-and-login-guide/

2. 安装本地 Maven 工具

https://maven.apache.org/download.cgi,或者使用 brew 安装 Maven。


注:未提前安装,灵码智能体编译运行时,自主检查 Maven 环境和依赖,会自主修复安装下载依赖。

3. 安装最新的灵码插件


注:也可以直接使用灵码 IDE(https://lingma.aliyun.com/download

4. 安装简单实用的数据库 SQLite3

brew install sqlite3
复制代码

5. 安装 uvx

pip install uvx
复制代码


这里需要注意 python 的环境 3.12 及以上,建议用 pipenv/poetry(https://python-poetry.org/)等配置 python 的环境变量。确保 uvx 安装正确,信息参考如下:


6. 安装 mcp-server-sqlite

uvx install  mcp-server-sqlite
复制代码

7. 创建演示目录和 SQLite 数据库文件

在项目所在根目录下创建演示目录,mkdir< dir >,例如,在 /Users/yuxiao/Downloads/ 下创建 0713demo:


mkdir /Users/yuxiao/Downloads/0713demo
复制代码


在该目录下创建数据库文件 “test.db”


cd < dir >,例:


cd /Users/yuxiao/Downloads/0713demotouch test.db
复制代码

8. 在灵码插件中,配置 mcp-server-sqlite 服务


通过 json 配置更改来添加插 MCP 插件。



添加如下内容:


"mcp-server-sqlite": {  "autoApprove": [],  "disabled": false,  "timeout": 60,  "command": "mcp-server-sqlite",  "args": [    "--db-path",    "/Users/yuxiao/Downloads/0713demo/test.db"  ],  "transportType": "stdio"},
复制代码


注:/Users/yuxiao/Downloads/0713demo/路径改成您实际创建 test.db 所在的绝对路径。

演示步骤

1. 在 IDE 中创建一个新的空工程

以下以 IDEA 为例:



2. 打开灵码,使用 agent 模式,模型选择“qwen3-thinking”

注:这里也可换成 qwen3-coder,作为新手推荐 qwen3-thinking,可以学习分析思考过程。


3. 创建一个空的 Maven 工程

输入 prompt:“生成一个 maven 工程”



灵码编码智能体自动生成一个基础的 Maven 工程结构,包含标准目录和 pom.xml 配置。



该初始化 Maven 工程包含:


  • 标准的 Maven 目录结构

  • 基础 pom.xml 配置(含 JUnit 5 依赖)

  • 简单的 Java 主程序

  • 对应的测试类


注:灵码智能体自动生成的项目目录和代码,每次执行结果不会完全一模一样!本文中的内容是作者做 demo 生成的效果,作为示例参考。

4. 创建电商订单场景的实体类

输入 prompt:“构建一个电商定单的 entity 的类,包含最基础的字段。”



灵码编码智能体自动生成 Order 实体类,该 Order 实体类包含以下核心字段:


  • orderId - 订单唯一标识

  • userId - 关联用户系统

  • productId - 关联商品系统

  • quantity - 购买数量

  • totalAmount - 订单总金额(使用 BigDecimal 避免精度问题)

  • status - 订单状态(建议用枚举类型增强可读性)

  • 时间相关字段:创建时间、支付时间、更新时间

5. 初始化函数

输入 prompt:“初始化函数。”



灵码编码智能体自动生成两个构造函数:全参数构造函数和基础字段构造函数,包含自动初始化逻辑。


  • 全参数构造函数:支持所有字段的自定义初始化

  • 基础字段构造函数:仅需提供核心业务字段即可创建订单对象

  • 智能默认值:

  • 状态字段自动初始化为 0(待支付),

  • 创建时间自动设置为当前时间,

  • 空值防护:对可能为 null 的参数进行了空值检查。

6. 提供增删改查的业务逻辑

输入 prompt:“提供增删改查的函数。”



灵码编码智能体自动创建订单的增删改查功能,包含以下组件:


数据访问层(DAO):OrderDAO.java


  • 创建 OrderDAO 类,包含存储数据的 Map。


业务服务层(Service):OrderService.java


  • 实现 createOrder 方法,添加新订单。

  • 实现 getOrder 方法,根据 ID 获取订单。

  • 实现 updateOrder 方法,更新现有订单。

  • 实现 deleteOrder 方法,移除订单。


总结:该操作的提示词,没有明确指明数据库类型,AI 实现方案为提供一个简单的 DAO 实现,模拟内存操作。在方案最后,会建议用户将内存存储替换为真实的数据库持久化。

7. 数据持久化到 SQLite 数据库中

输入 prompt:“数据库为 sqlite,在 test.db 中创建 order0713 订单表。”



灵码编码智能体自动完成 SQLite 数据库表创建和持久化功能,包含以下内容:


  • 在 test.db 中创建了 order0713 表,字段对应 Order 类属性

  • 添加了数据库连接工具类 DBUtil,用于获取 SQLite 数据库连接

  • 扩展了 OrderDAO 实现数据库持久化功能,包含表结构初始化、数据加载和保存方法

  • 在 pom.xml 中添加了 SQLite JDBC 依赖和 Java 时间 API 注解支持

8. 编译并运行

输入 prompt:“编译并运行。”



编译过程中遇到各类问题,智能体自动修复。



多轮修复后,再重新编译。



运行成功,若有问题,继续自动修复。


9. 按企业规范生成单元测试

创建项目的 rules:


在灵码高级设置中,添加 project_rule.md 文件。



自动添加目录和默认文件。



按企业单测生成规范,编辑 rule 文件,如下:



选中要单测的函数,右键生成单元测试。



灵码编码智能体自动生成单测方案,方案满足项目中定义单测的 rule 规范。


一、被测函数分析


被测函数:OrderService.createOrder(Order order)


该函数主要完成以下功能:


  • 对订单对象进行业务校验:

  • 检查购买数量是否大于 0

  • 检查订单金额是否大于 0

  • 调用数据访问层的 createOrder 方法创建订单。


二、分支分析


正常分支:


  • 订单数量>0 且订单金额>0,调用 orderDAO.createOrder 返回 true

  • 订单数量>0 且订单金额>0,调用 orderDAO.createOrder 返回 false


异常分支:


  • 订单数量<=0,抛出 IllegalArgumentException

  • 订单金额<=0,抛出 IllegalArgumentException


三、测试用例分析



灵码编码智能体按以上方案生成单测用例:


10. demo 工程的架构解读及视图

输入 prompt:“介绍该工程架构,技术栈,业务流程,并画出 Plantuml 架构图。”


灵码编码智能体生成:该工程是一个典型的 Java 项目,使用了 Maven 作为构建工具。项目的目录结构遵循标准的 Maven 布局,其中 src/main/java 包含了所有的源代码,而 src/test/java 则存放了测试代码。项目中包含了一些基本的类如 App.java, DatabaseConnection.java, Order.java, OrderDao.java, 和 OrderService.java,以及一个测试类 OrderServiceTest.java。


技术栈


  • 编程语言:Java

  • 构建工具:Maven

  • 数据库连接:可能使用 JDBC 或其他 ORM 框架(具体实现未给出)

  • 单元测试:JUnit 5


业务流程


  • App.java:可能是应用程序的入口点。

  • DatabaseConnection.java:处理与数据库的连接。

  • Order.java:表示订单的模型类。

  • OrderDao.java:数据访问对象,负责与数据库交互以获取或存储订单信息。

  • OrderService.java:服务层类,可能包含业务逻辑来处理订单。

  • OrderServiceTest.java:对 OrderService 类中的方法进行单元测试。


PlantUML 架构图


  • 以下是该项目的一个简单 PlantUML 架构图:



输入 prompt:“以创建订单为例,分层介绍业务流程。”


灵码编码智能体生成:



注:安装 PlantUML 插件,或者拷贝 PlantUML 代码到 PlantUML 官网进行展示。

结束语

目前受限于模型的能力,智能体编译运行时需要多次修复才能编译运行通过,当出现多次不能编译成功时,可以通过优化提示词或人工干预做局部修改。


生成的样例工程如下:https://tongyi-code.oss-cn-hangzhou.aliyuncs.com/assets/0708V1unit_test_success.zip

发布于: 2025-09-12阅读数: 2
用户头像

云效,产研数字化同行者。 2021-11-05 加入

云效,云原生时代一站式BizDevOps平台。支持公共云、专有云和混合云多种部署形态,支持敏捷研发、DevOps、BizDevOps模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,实现多倍效能提升。

评论

发布
暂无评论
灵码产品演示:Maven 示例工程生成_Java_阿里云云效_InfoQ写作社区