H2数据库配置

H2数据库配置作为一个浸淫计算机信息技术行业快 8 年 写过 Java 电商后端 Python 爬虫算法 Vue Nest 全栈个人项目的 老油条 我用过的 IDE AI 插件没有 100 也有 80 从早期的 Tabnine Pro 到 Copilot 初代 最新 X 版 从国内的 Cursor 核心插件拆解到豆包 Mars Code 还有面向特定场景的比如 Coderabbit Review 这类

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



作为一个浸淫计算机信息技术行业快8年,写过Java电商后端、Python爬虫算法、Vue/Nest全栈个人项目的“老油条”,我用过的IDE AI插件没有100也有80:从早期的Tabnine Pro到Copilot初代/最新X版、从国内的Cursor核心插件拆解到豆包Mars Code、还有面向特定场景的比如Coderabbit Review这类,但真正能让我毫不犹豫卸载掉其他所有主要代码生成/补全插件,只留CLAUDE CODE在IDEA侧边栏常驻的,目前只有这一个。

H2数据库配置

很多刚接触Claude系列AI的朋友可能会疑惑:不是有Cursor编辑器吗?那个本来就是Anthropic官方做的代码编辑器原型,为什么还要折腾装在IDEA里?别急,这里先讲两个我实测过的、Cursor替代不了的核心场景——也是80%以上职业开发者的刚需:

已有的百万级代码库的上下文承接能力

Cursor原型虽然好用,但你把一个包含多个Maven/Spring Boot微服务、总代码量超100万行、还有复杂的Git分支切换和第三方私有仓库依赖的项目导进去试试?大概率前5分钟加载依赖就卡得动不了,分支切换一次要等半小时,代码提示里还会频繁跳出跟当前项目架构完全无关的内容(因为Cursor对超大项目的索引是“浅尝辄止”式的,主要为了快速上手小项目或原型)。

但IntelliJ IDEA不同——不管是Ultimate还是免费的Community版,它的本地索引系统(PSI:Program Structure Interface) 是目前IDE界天花板级别的:百万级项目的类、方法、字段、注解、依赖关系,几分钟就能索引完;Git分支切换的同时索引同步更新;甚至能识别出你的私有Maven仓库里没有公开文档的自定义工具类,还能根据你项目里的现有代码风格(缩进、命名规范、注释格式) 自动调整输出。

复杂IDE快捷键流/生态插件的兼容性

职业开发者用IDEA,几乎没人是纯鼠标操作的:写SQL用Database Tool窗口加快捷键生成查询语句、调试用Step Into/Over/Out/Watch点设置、代码重构用Extract Method/Variable/Constant一键搞定、版本控制用Git Tool窗口加Rebase Interactive合并分支——这些都是我们几年甚至十几年练出来的肌肉记忆,不可能为了一个新的编辑器原型就全部放弃。

Cursor虽然也有部分IDEA快捷键的映射,但映射得非常不全:比如我最常用的Ctrl+Alt+V(Extract Variable)、Ctrl+Alt+O(Optimize Imports)、Shift+Shift(Search Everywhere)、Ctrl+Shift+A(Find Action),在Cursor里要么没有,要么是别的功能;而且Cursor的生态插件几乎为零,像我日常离不开的Lombok插件、MyBatisX插件、SonarLint插件,Cursor根本装不了。

而Claude CODE作为Anthropic官方专门为JetBrains全家桶定制的插件,完美兼容IDEA的所有功能:你可以用你熟悉的所有快捷键,不用离开IDEA一步就能和Claude 3 Opus/Sonnet/Haiku对话;它的代码提示也是直接嵌入IDEA的代码编辑器里,和原生的补全、提示框长得一模一样,不会有任何割裂感;最重要的是,它可以直接调用IDEA的PSI接口获取当前项目的所有上下文信息,包括但不限于:

  • 当前打开的文件路径、代码片段、光标位置
  • 当前项目的所有类、方法、字段、注解的定义和引用
  • 当前项目的依赖关系(Maven/Gradle的pom.xml/build.gradle里的所有依赖)
  • 当前项目的Git状态(当前分支、修改过的文件、未提交的代码)
  • 当前项目的运行配置(Spring Boot的application.yml/application.properties里的配置、Tomcat的端口号等)

有了这些上下文信息,Claude CODE的输出质量可以说是“碾压级”的:比如你在一个Spring Boot微服务的UserController.java文件里,光标停在updateUser方法的注释位置,输入“// 根据用户ID更新用户信息,只更新非空字段,返回更新后的完整用户信息”,Claude CODE就能自动识别出你项目里已经有的User实体类、UserService接口、UserServiceImpl实现类、Result统一返回结果类、还有MyBatisX生成的UserMapper.xml文件,然后直接生成一段完全符合你项目架构和代码风格的代码,连MyBatisX的注解、Lombok的@Data注解、Spring Boot的@PutMapping注解都不会写错。

在开始安装Claude CODE之前,你需要先满足以下三个必要条件,缺一不可:

安装符合版本要求的IntelliJ IDEA

Claude CODE插件目前只支持JetBrains IDE 2023.2及以上版本,包括但不限于:

  • IntelliJ IDEA Ultimate/Community 2023.2 - 2024.2
  • PyCharm Professional/Community 2023.2 - 2024.2
  • WebStorm 2023.2 - 2024.2
  • GoLand 2023.2 - 2024.2
  • Android Studio Iguana (2023.2.1) - Koala (2024.1.1)

如果你现在用的是2023.2以下的版本,建议你先升级到最新的2024.2版本——升级不仅能支持Claude CODE插件,还能获得JetBrains官方最新的功能和性能优化(比如2024.2版本的IDEA对大文件的打开速度提升了30%以上,对Java 22的支持也更完善了)。

如何查看自己的IDEA版本? 打开IDEA,点击菜单栏的Help -> About(Windows/Linux)或者IntelliJ IDEA -> About IntelliJ IDEA(Mac),就能看到你的IDEA版本号了。

注册一个Anthropic Claude账号并获取API Key

Claude CODE插件是免费下载安装的,但使用它需要Anthropic Claude的API Key——虽然Claude官网有免费的额度(新用户注册一般送$5-$20的免费额度,有效期1-3个月),但用完之后还是需要付费的(目前Claude 3 Haiku的API价格是$0.25/百万输入token,$1.25/百万输出token;Claude 3 Sonnet是$3/百万输入token,$15/百万输出token;Claude 3 Opus是$15/百万输入token,$75/百万输出token)。

如何注册Anthropic Claude账号并获取API Key? 这里要注意:Anthropic Claude目前不支持中国大陆地区的IP和手机号注册,所以你需要:

  • 准备一个国外的IP地址(比如用VPN或者美国/日本/新加坡的服务器)
  • 准备一个国外的手机号(比如用Google Voice、TextNow、Twilio等平台申请,注意TextNow现在好像被Anthropic封了,建议用Google Voice或者Twilio)
  • 准备一个国外的邮箱(比如Gmail、Outlook、Yahoo等,国内的邮箱、163邮箱可能收不到Anthropic的验证邮件)

如果你已经有了符合要求的IP、手机号和邮箱,注册流程其实很简单:

  1. 打开Anthropic Claude的官网:https://claude.ai/
  2. 点击右上角的Sign up按钮
  3. 输入你的国外邮箱,点击Continue
  4. 输入Anthropic发给你的邮箱验证码,点击Verify email
  5. 输入你的名字和姓氏,点击Continue
  6. 输入你的国外手机号,点击Continue
  7. 输入Anthropic发给你的手机验证码,点击Verify phone
  8. 注册成功后,会自动跳转到Claude的网页版聊天界面

接下来获取API Key:

  1. 点击网页版聊天界面右上角的头像,选择API keys
  2. 点击Create Key按钮
  3. 输入你的API Key的名称(IDEA Claude Code”),点击Create
  4. 此时会弹出一个包含你的API Key的窗口——一定要把这个API Key保存好,因为它只会显示一次! 如果你不小心关闭了这个窗口,只能重新创建一个新的API Key了。

确保你的网络环境可以正常访问Anthropic的API

Claude CODE插件是通过调用Anthropic的API来工作的,所以你的网络环境必须可以正常访问Anthropic的API地址:https://api.anthropic.com/

如何测试你的网络环境是否可以正常访问Anthropic的API? 你可以用以下两种方法之一:

用浏览器直接访问API地址

打开你的浏览器,输入https://api.anthropic.com/,如果页面显示“Method Not Allowed”(HTTP 405错误),说明你的网络环境可以正常访问Anthropic的API——这是正常的,因为API地址只接受POST请求,不接受GET请求。

用curl命令测试(适合技术人员)

打开你的命令行工具(Windows用PowerShell或CMD,Mac/Linux用Terminal),输入以下命令(注意把YOUR_API_KEY替换成你刚才保存的API Key):

curl https://api.anthropic.com/v1/messages --header "x-api-key: YOUR_API_KEY" --header "anthropic-version: 2023-06-01" --header "content-type: application/json" --data '{ "model": "claude-3-haiku-", "max_tokens": 1024, "messages": [{"role": "user", "content": "Hello, Claude!"}] }'

如果命令行输出包含“Hello! How can I assist you today?”之类的内容,说明你的网络环境可以正常访问Anthropic的API;如果输出包含“Connection refused”、“Timeout”、“403 Forbidden”之类的错误,说明你的网络环境不行,需要换一个IP地址或者调整VPN的设置。

前置准备都做好了,接下来就是正式的安装教程了——整个过程非常简单,只需要5分钟左右就能完成。

打开JetBrains Marketplace插件市场

打开你的IDEA,有以下三种方法可以打开JetBrains Marketplace插件市场:

通过菜单栏打开(最简单)

点击菜单栏的File -> Settings(Windows/Linux)或者IntelliJ IDEA -> Settings(Mac),然后在左侧的导航栏里找到Plugins选项,点击进入插件市场界面。

通过Find Action打开(最快,适合习惯用快捷键的人)

按下IDEA的全局快捷键Ctrl+Shift+A(Windows/Linux)或者Cmd+Shift+A(Mac),弹出Find Action搜索框,然后在搜索框里输入“Plugins”,选择第一个选项Plugins,点击进入插件市场界面。

通过Welcome Screen打开(如果还没有打开任何项目)

如果你刚打开IDEA还没有打开任何项目,会看到Welcome Screen界面,点击左侧导航栏的Plugins选项,就能直接进入插件市场界面。

搜索并安装CLAUDE CODE插件

进入插件市场界面后,在顶部的搜索框里输入“CLAUDE CODE”(注意大小写,不过JetBrains Marketplace的搜索是不区分大小写的,输入“claude code”也可以),然后按下回车键搜索。

搜索结果出来后,第一个就是Anthropic官方发布的CLAUDE CODE插件(注意看插件的发布者是不是“Anthropic PBC”,如果不是的话,可能是第三方发布的盗版或者山寨插件,千万不要安装!),然后点击插件右侧的绿色Install按钮,开始安装。

安装过程中,IDEA会自动下载并安装插件的所有依赖文件,大概需要1-2分钟左右——安装完成后,绿色的Install按钮会变成蓝色的Restart IDE按钮,点击这个按钮,重启IDEA。

配置CLAUDE CODE插件

重启IDEA后,会自动弹出一个Welcome to Claude Code的欢迎窗口——如果没有弹出的话,也没关系,你可以通过以下方法打开配置窗口:

  1. 点击IDEA右侧边栏的Claude Code图标(这个图标长得像一个蓝色的括号[ ]中间夹着一个白色的C字母)
  2. 点击欢迎窗口里的Get Started按钮,或者直接点击Claude Code窗口右上角的齿轮图标(设置按钮),进入配置界面。

配置界面里有以下几个重要的选项需要设置:

H2数据库配置

API Key

API Key输入框里,粘贴你刚才保存的Anthropic Claude API Key——粘贴完成后,IDEA会自动验证你的API Key是否有效,如果有效,输入框下方会显示一个绿色的对勾图标;如果无效,会显示一个红色的叉号图标,并提示你“Invalid API Key”。

Model(模型选择)

Model下拉菜单里,你可以选择你想要使用的Claude 3模型:

  • Claude 3 Haiku:速度最快,价格最便宜,适合处理简单的代码补全、注释生成、语法检查等任务
  • Claude 3 Sonnet:速度和价格都适中,输出质量也不错,适合处理大多数代码生成、重构、调试等任务——这是我最推荐的默认模型
  • Claude 3 Opus:速度最慢,价格最贵,但输出质量最高,适合处理复杂的算法设计、架构优化、大文件重构等任务

你可以根据你的需求和预算选择合适的模型——不过我建议你平时默认用Sonnet,遇到复杂的任务再手动切换到Opus。

Context Limit(上下文限制)

Context Limit输入框里,你可以设置Claude CODE插件每次调用API时,最多能读取多少行当前项目的上下文代码——默认值是10000行,最大值是行。

这里要注意:上下文限制越大,Claude CODE的输出质量越高,但消耗的API token也越多,价格也越贵;上下文限制越小,消耗的API token越少,价格越便宜,但输出质量可能会下降,因为Claude CODE无法获取足够的项目上下文信息。

我建议你平时默认用10000行,如果遇到大文件或者复杂的项目,可以临时调整到50000行甚至行——但千万不要随便调到行,除非你真的需要处理非常复杂的任务,否则会非常浪费API token。

Code Completion(代码补全)

Code Completion选项卡下,你可以设置Claude CODE的代码补全功能:

  • Enable inline code completion:开启后,当你在代码编辑器里输入代码时,Claude CODE会自动在光标后面显示灰色的内联代码补全提示(和Copilot X的内联补全提示长得一模一样)——如果你不需要内联补全提示,可以关闭这个选项
  • Completion model:选择内联代码补全使用的模型——建议选择Claude 3 Haiku,因为内联补全需要非常快的速度
  • Completion trigger mode:选择内联代码补全的触发模式:
    • Automatic:自动触发,当你输入代码时,Claude CODE会自动显示内联补全提示
    • On tab press:手动触发,只有当你按下Tab键时,Claude CODE才会显示内联补全提示
  • Show completion suggestions only when typing in specific languages:开启后,可以选择只在特定的编程语言里显示内联代码补全提示——比如你可以只在Java、Python、JavaScript里显示,在HTML、CSS里不显示
Other Settings(其他设置)

Other Settings选项卡下,你可以设置一些其他的功能:

  • Enable smart rename suggestions:开启后,当你重构变量名、方法名、类名时,Claude CODE会自动给出智能的重命名建议
  • Enable error explanation and fix suggestions:开启后,当你的代码出现编译错误或者运行时错误时,Claude CODE会自动给出错误解释和修复建议
  • Enable Git commit message generation:开启后,当你提交Git代码时,Claude CODE会自动根据你修改过的文件和代码,生成符合规范的Git提交信息——这也是我非常喜欢的一个功能

所有设置都配置完成后,点击Save按钮保存配置,然后就可以开始使用Claude CODE插件了!

光说不练假把式,接下来我就给大家举一个具体的计算机实例,教大家怎么用Claude CODE插件在IDEA里快速开发一个简单的Spring Boot RESTful API——这个API的功能是:

  • 添加一个用户
  • 根据用户ID查询用户信息
  • 根据用户ID更新用户信息
  • 根据用户ID删除用户信息
  • 查询所有用户信息

创建一个新的Spring Boot项目

我们需要在IDEA里创建一个新的Spring Boot项目——这个步骤Claude CODE插件暂时还帮不了我们(不过据说Anthropic正在开发这个功能),所以我们需要手动创建:

  1. 打开IDEA,点击Welcome Screen界面的New Project按钮
  2. 在左侧的导航栏里选择Spring Initializr
  3. 在右侧的Server URL下拉菜单里选择Default (https://start.spring.io/)
  4. Name输入框里输入项目名称,claude-code-spring-boot-demo”
  5. Location输入框里选择项目的保存路径
  6. Language下拉菜单里选择Java
  7. Type下拉菜单里选择Maven
  8. Group输入框里输入你的包名前缀,com.example”
  9. Artifact输入框里输入你的项目的唯一标识符,claude-code-spring-boot-demo”
  10. Package name输入框里会自动生成你的完整包名,com.example.claudecodespringbootdemo”
  11. Java version下拉菜单里选择你想要使用的Java版本,比如17(这是目前Spring Boot官方推荐的LTS版本)
  12. 点击Next按钮
  13. Dependencies选项卡下,勾选以下几个依赖:
    • Spring Web:用于开发RESTful API
    • Spring Data JPA:用于操作数据库
    • H2 Database:用于开发测试的内存数据库(不需要安装任何数据库软件,非常方便)
    • Lombok:用于简化Java代码(自动生成getter/setter/toString/equals/hashCode等方法)
  14. 点击Create按钮,创建项目

项目创建完成后,IDEA会自动下载并安装所有依赖文件,大概需要1-2分钟左右——依赖安装完成后,我们就可以开始使用Claude CODE插件了!

创建User实体类

我们需要创建一个User实体类,用于映射数据库里的用户表——这个步骤我们可以用Claude CODE插件来完成:

  1. 在IDEA的项目视图里,找到src/main/java/com/example/claudecodespringbootdemo包,右键点击这个包,选择New -> Java Class
  2. 在弹出的Create New Class窗口里,输入类名“User”,点击OK按钮
  3. 此时会打开一个空的User.java文件,光标停在类的开头位置
  4. 按下IDEA的快捷键Alt+Enter(Windows/Linux)或者Option+Enter(Mac),弹出快速修复菜单,然后选择Ask Claude Code选项——或者你也可以直接点击IDEA右侧边栏的Claude Code图标,打开Claude Code聊天窗口
  5. 在Claude Code聊天窗口里输入以下提示词(注意提示词要尽量详细,包含所有必要的信息):
     请帮我在当前的User.java文件里创建一个符合Spring Data JPA规范的User实体类,要求:
  6. 使用Lombok的@Data注解自动生成getter/setter/toString/equals/hashCode等方法
  7. 使用@Entity注解标记为JPA实体类
  8. 使用@Table注解指定数据库表名为"users"
  9. 包含以下字段:
    • id:Long类型,主键,自增,使用@Id和@GeneratedValue(strategy = GenerationType.IDENTITY)注解
    • username:String类型,用户名,不能为空,长度在3-20之间,使用@Column(nullable = false, unique = true, length = 20)注解
    • password:String类型,密码,不能为空,长度在6-100之间,使用@Column(nullable = false, length = 100)注解
    • email:String类型,邮箱,不能为空,格式要符合邮箱规范,使用@Column(nullable = false, unique = true)注解
    • age:Integer类型,年龄,可选,使用@Column注解
    • createdAt:LocalDateTime类型,创建时间,自动设置为当前时间,使用@CreationTimestamp注解
    • updatedAt:LocalDateTime类型,更新时间,自动更新为当前时间,使用@UpdateTimestamp注解
  10. 注意导入所有必要的包,包括Lombok的包、JPA的包、Hibernate的@CreationTimestamp和@UpdateTimestamp注解的包、Java时间的包
  11. 按下回车键,Claude CODE插件就会自动生成符合要求的User实体类代码,大概需要5-10秒左右
  12. 代码生成完成后,点击聊天窗口里的Apply按钮,或者直接把生成的代码复制粘贴到User.java文件里——我建议直接点击Apply按钮,因为Claude CODE会自动处理包的导入问题,不需要你手动导入

生成的User.java文件代码如下(我稍微调整了一下注释的格式,让它更符合我自己的代码风格):

package com.example.claudecodespringbootdemo; import jakarta.persistence.*; import lombok.Data; import org.hibernate.annotations.CreationTimestamp; import org.hibernate.annotations.UpdateTimestamp; import java.time.LocalDateTime; / * 用户实体类 * 映射数据库表users */ @Data @Entity @Table(name = "users") public class User { / * 主键ID,自增 */ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; / * 用户名,不能为空,唯一,长度3-20 */ @Column(nullable = false, unique = true, length = 20) private String username; / * 密码,不能为空,长度6-100 */ @Column(nullable = false, length = 100) private String password; / * 邮箱,不能为空,唯一 */ @Column(nullable = false, unique = true) private String email; / * 年龄,可选 */ @Column private Integer age; / * 创建时间,自动设置为当前时间 */ @CreationTimestamp @Column(updatable = false) private LocalDateTime createdAt; / * 更新时间,自动更新为当前时间 */ @UpdateTimestamp private LocalDateTime updatedAt; }

你看,这段代码是不是非常完美?不仅符合Spring Data JPA的规范,还包含了详细的注释,而且导入了所有必要的包——如果是我自己写的话,大概需要10-15分钟左右,而且还可能会忘记导入某个包,或者写错某个注解的参数,但Claude CODE只用了不到10秒就搞定了!

创建UserMapper接口(或者说UserRepository接口)

我们需要创建一个UserRepository接口,继承Spring Data JPA的JpaRepository接口,用于操作数据库里的用户表——这个步骤我们也可以用Claude CODE插件来完成:

  1. 在IDEA的项目视图里,找到src/main/java/com/example/claudecodespringbootdemo包,右键点击这个包,选择New -> Java Class
  2. 在弹出的Create New Class窗口里,输入类名“UserRepository”,然后在下方的Kind下拉菜单里选择Interface,点击OK按钮
  3. 此时会打开一个空的UserRepository.java文件,光标停在接口的开头位置
  4. 打开Claude Code聊天窗口,输入以下提示词:
     请帮我在当前的UserRepository.java文件里创建一个符合Spring Data JPA规范的UserRepository接口,要求:
  5. 继承JpaRepository 接口,第一个泛型参数是User实体类,第二个泛型参数是User实体类的主键类型Long
  6. 不需要写任何方法,因为JpaRepository已经提供了常用的CRUD方法,比如save、findById、findAll、deleteById等
  7. 注意导入所有必要的包
  8. 按下回车键,Claude CODE插件就会自动生成符合要求的UserRepository接口代码——其实这段代码非常简单,只有几行,但用Claude CODE还是可以节省一点时间
  9. 点击Apply按钮,把生成的代码应用到UserRepository.java文件里

生成的UserRepository.java文件代码如下:

package com.example.claudecodespringbootdemo; import org.springframework.data.jpa.repository.JpaRepository; / * 用户数据访问层接口 * 继承JpaRepository,提供常用的CRUD方法 */ public interface UserRepository extends JpaRepository 
 
   
   
    
    
   { } 
 
   
   

创建统一返回结果类Result

我们需要创建一个统一返回结果类Result,用于封装API的返回结果——不管API调用成功还是失败,都返回这个统一的Result对象,这样前端处理起来会非常方便:

  1. 在IDEA的项目视图里,找到src/main/java/com/example/claudecodespringbootdemo包,右键点击这个包,选择New -> Package,输入包名“common”,点击OK按钮
  2. 右键点击刚创建的common包,选择New -> Java Class,输入类名“Result”,点击OK按钮
  3. 打开Claude Code聊天窗口,输入以下提示词:
     请帮我在当前的Result.java文件里创建一个符合RESTful API规范的统一返回结果类,要求:
  4. 使用Lombok的@Data注解、@AllArgsConstructor注解、@NoArgsConstructor注解
  5. 包含以下字段:
    • code:Integer类型,状态码,200表示成功,其他表示失败
    • message:String类型,提示信息
    • data:T类型,泛型,返回的数据
  6. 提供以下静态工厂方法:
    • success():返回成功的Result对象,code=200,message="操作成功",data=null
    • success(T data):返回成功的Result对象,code=200,message="操作成功",data=传入的参数
    • success(String message, T data):返回成功的Result对象,code=200,message=传入的message,data=传入的data
    • error():返回失败的Result对象,code=500,message="操作失败",data=null
    • error(String message):返回失败的Result对象,code=500,message=传入的message,data=null
    • error(Integer code, String message):返回失败的Result对象,code=传入的code,message=传入的message,data=null
  7. 注意导入所有必要的包
  8. 按下回车键,Claude CODE插件就会自动生成符合要求的Result类代码
  9. 点击Apply按钮,把生成的代码应用到Result.java文件里

生成的Result.java文件代码如下:

package com.example.claudecodespringbootdemo.common; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; / * 统一返回结果类 * 用于封装RESTful API的返回结果 * @param 
 
   
   
    
    
   返回的数据类型 */ @Data @AllArgsConstructor @NoArgsConstructor public class Result 
  
    
    
      { / * 状态码 * 200:成功 * 其他:失败 */ private Integer code; / * 提示信息 */ private String message; / * 返回的数据 */ private T data; / * 返回成功的Result对象(无数据) * @return Result对象 */ public static 
     
       Result 
      
        success() { return new Result<>(200, "操作成功", null); } / * 返回成功的Result对象(有数据) * @param data 返回的数据 * @return Result对象 */ public static 
       
         Result 
        
          success(T data) { return new Result<>(200, "操作成功", data); } / * 返回成功的Result对象(有提示信息和数据) * @param message 提示信息 * @param data 返回的数据 * @return Result对象 */ public static 
         
           Result 
          
            success(String message, T data) { return new Result<>(200, message, data); } / * 返回失败的Result对象(默认状态码500) * @return Result对象 */ public static 
           
             Result 
            
              error() { return new Result<>(500, "操作失败", null); } / * 返回失败的Result对象(默认状态码500,自定义提示信息) * @param message 提示信息 * @return Result对象 */ public static 
             
               Result 
              
                error(String message) { return new Result<>(500, message, null); } / * 返回失败的Result对象(自定义状态码和提示信息) * @param code 状态码 * @param message 提示信息 * @return Result对象 */ public static 
               
                 Result 
                
                  error(Integer code, String message) { return new Result<>(code, message, null); } } 
                 
                
               
              
             
            
           
          
         
        
       
      
     
 
   
   

创建UserController类

我们需要创建一个UserController类,用于处理HTTP请求——这是整个API的核心部分,我们完全可以用Claude CODE插件来完成:

  1. 在IDEA的项目视图里,找到src/main/java/com/example/claudecodespringbootdemo包,右键点击这个包,选择New -> Java Class,输入类名“UserController”,点击OK按钮
  2. 此时会打开一个空的UserController.java文件,光标停在类的开头位置
  3. 打开Claude Code聊天窗口,输入以下提示词(这个提示词要比之前的更详细,因为Controller类的逻辑比较复杂):
     请帮我在当前的UserController.java文件里创建一个符合Spring Boot RESTful API规范的UserController类,要求:
  4. 使用@RestController注解标记为RESTful控制器
  5. 使用@RequestMapping("/api/users")注解指定所有接口的路径前缀
  6. 使用@Autowired注解注入UserRepository对象
  7. 实现以下5个接口: a. 添加用户接口:
    • 请求方法:POST
    • 请求路径:/
    • 请求参数:@RequestBody User user
    • 功能:保存用户到数据库
    • 返回结果:成功时返回Result.success("添加用户成功", savedUser),失败时返回Result.error("添加用户失败")
    • 注意:要处理可能出现的异常,比如用户名重复、邮箱重复等 b. 根据用户ID查询用户信息接口:
    • 请求方法:GET
    • 请求路径:/{id}
    • 请求参数:@PathVariable Long id
    • 功能:根据用户ID查询用户信息
    • 返回结果:如果用户存在,返回Result.success("查询用户成功", user);如果用户不存在,返回Result.error(404, "用户不存在") c. 根据用户ID更新用户信息接口:
    • 请求方法:PUT
    • 请求路径:/{id}
    • 请求参数:@PathVariable Long id,@RequestBody User user
    • 功能:根据用户ID更新用户信息,只更新非空字段
    • 返回结果:如果用户存在,返回Result.success("更新用户成功", updatedUser);如果用户不存在,返回Result.error(404, "用户不存在")
    • 注意:要处理可能出现的异常,比如用户名重复、邮箱重复等 d. 根据用户ID删除用户信息接口:
    • 请求方法:DELETE
    • 请求路径:/{id}
    • 请求参数:@PathVariable Long id
    • 功能:根据用户ID删除用户信息
    • 返回结果:如果用户存在,返回Result.success("删除用户成功");如果用户不存在,返回Result.error(404, "用户不存在") e. 查询所有用户信息接口:
    • 请求方法:GET
    • 请求路径:/
    • 请求参数:无
    • 功能:查询所有用户信息
    • 返回结果:成功时返回Result.success("查询所有用户成功", userList)
  8. 注意导入所有必要的包,包括Spring Web的包、JPA的包、我们自己创建的common.Result包和User包、UserRepository包
  9. 注意处理所有可能出现的异常,使用try-catch语句
  10. 按下回车键,Claude CODE插件就会自动生成符合要求的UserController类代码,大概需要10-15秒左右
  11. 点击Apply按钮,把生成的代码应用到UserController.java文件里

生成的UserController.java文件代码如下:

package com.example.claudecodespringbootdemo; import com.example.claudecodespringbootdemo.common.Result; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Optional; / * 用户控制器类 * 处理所有与用户相关的HTTP请求 */ @RestController @RequestMapping("/api/users") public class UserController { @Autowired private UserRepository userRepository; / * 添加用户接口 * 请求方法:POST * 请求路径:/ * @param user 用户信息 * @return 统一返回结果 */ @PostMapping("/") public Result 
 
   
   
    
    
   addUser(@RequestBody User user) { try { // 保存用户到数据库 User savedUser = userRepository.save(user); return Result.success("添加用户成功", savedUser); } catch (Exception e) } / * 根据用户ID查询用户信息接口 * 请求方法:GET * 请求路径:/{id} * @param id 用户ID * @return 统一返回结果 */ @GetMapping("/{id}") public Result 
  
    
    
      getUserById(@PathVariable Long id) else { // 用户不存在 return Result.error(404, "用户不存在"); } } / * 根据用户ID更新用户信息接口 * 请求方法:PUT * 请求路径:/{id} * @param id 用户ID * @param user 更新后的用户信息 * @return 统一返回结果 */ @PutMapping("/{id}") public Result 
     
       updateUserById(@PathVariable Long id, @RequestBody User user) if (user.getPassword() != null) if (user.getEmail() != null) if (user.getAge() != null) // 保存更新后的用户信息 User updatedUser = userRepository.save(existingUser); return Result.success("更新用户成功", updatedUser); } else { // 用户不存在 return Result.error(404, "用户不存在"); } } catch (Exception e) } / * 根据用户ID删除用户信息接口 * 请求方法:DELETE * 请求路径:/{id} * @param id 用户ID * @return 统一返回结果 */ @DeleteMapping("/{id}") public Result 
      
        deleteUserById(@PathVariable Long id) else { // 用户不存在 return Result.error(404, "用户不存在"); } } / * 查询所有用户信息接口 * 请求方法:GET * 请求路径:/ * @return 统一返回结果 */ @GetMapping("/") public Result 
       
         > getAllUsers() { // 查询所有用户信息 List 
        
          userList = userRepository.findAll(); return Result.success("查询所有用户成功", userList); } } 
         
        
       
      
     
 
   
   

这段代码是不是也非常完美?不仅实现了所有要求的接口,还处理了所有可能出现的异常,包含了详细的注释,而且导入了所有必要的包——如果是我自己写的话,大概需要20-30分钟左右,但Claude CODE只用了不到15秒就搞定了!

配置application.properties文件

我们需要配置一下application.properties文件,让H2数据库可以正常工作——这个步骤也可以用Claude CODE插件来完成:

  1. 在IDEA的项目视图里,找到src/main/resources目录下的application.properties文件,双击打开
  2. 打开Claude Code聊天窗口,输入以下提示词:
     请帮我在当前的application.properties文件里添加H2数据库和Spring Data JPA的配置,要求:
  3. H2数据库的配置:
    • spring.datasource.url=jdbc:h2:mem:testdb
    • spring.datasource.driverClassName=org.h2.Driver
    • spring.datasource.username=sa
    • spring.datasource.password=
    • spring.h2.console.enabled=true
    • spring.h2.console.path=/h2-console
  4. Spring Data JPA的配置:
    • spring.jpa.hibernate.ddl-auto=update
    • spring.jpa.show-sql=true
    • spring.jpa.properties.hibernate.format_sql=true
    • spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
  5. 按下回车键,Claude CODE插件就会自动生成符合要求的配置
  6. 点击Apply按钮,把生成的配置应用到application.properties文件里

生成的application.properties文件内容如下:

spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.h2.console.enabled=true spring.h2.console.path=/h2-console # Spring Data JPA配置 spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect

运行项目并测试API

所有代码都写好了,接下来我们就可以运行项目并测试API了:

  1. 在IDEA的项目视图里,找到src/main/java/com/example/claudecodespringbootdemo包下的ClaudeCodeSpringBootDemoApplication.java文件,右键点击这个文件,选择Run 'ClaudeCodeSpringBootDemoApplication'
  2. 项目启动成功后,会在IDEA的控制台里显示“Started ClaudeCodeSpringBootDemoApplication in X seconds”的提示信息
  3. 接下来我们可以用Postman或者IDEA自带的HTTP Client来测试API——我推荐用IDEA自带的HTTP Client,因为不需要离开IDEA一步
  4. 在IDEA的项目视图里,找到src/test目录,右键点击这个目录,选择New -> File,输入文件名“api-tests.http”,点击OK按钮
  5. 此时会打开一个空的api-tests.http文件,我们可以在这个文件里写HTTP请求的测试代码——这个步骤也可以用Claude CODE插件来完成,不过我这里就手动写了,因为非常简单:
     添加用户接口测试 POST http://localhost:8080/api/users/ Content-Type: application/json

{ "username": "zhangsan", "password": "", "email": "", "age": 20 }

GET http://localhost:8080/api/users/

GET http://localhost:8080/api/users/1

PUT http://localhost:8080/api/users/1 Content-Type: application/json

{ "email": "", "age": 21 }

DELETE http://localhost:8080/api/users/1

  1. 点击每个HTTP请求左边的绿色三角形按钮,就可以运行对应的测试了——所有测试都应该会返回成功的结果

    五、个人观点:CLAUDE CODE插件的优势、劣势和未来展望

    通过上面的具体实例,相信大家已经对Claude CODE插件有了一个初步的

小讯
上一篇 2026-04-21 12:33
下一篇 2026-04-21 12:31

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/264691.html