需先清洗建表SQL为最简CREATE TABLE结构,再以结构化指令让DeepSeek生成Spring Boot+MyBatis-Plus的CRUD代码:含Lombok实体类(字段名/类型严格匹配)、BaseMapper接口、Service及Impl,且必须显式指定@TableId、@TableField等注解以保障主键、下划线映射和类型转换正确。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让DeepSeek根据数据库表结构自动生成CRUD代码,但直接粘贴建表SQL后模型常返回泛泛而谈的伪代码或忽略字段约束——这是因为缺少明确的输入格式、上下文指令和目标框架限定。
准备可解析的表结构文本
打开数据库管理工具(如DBeaver、Navicat或MySQL Workbench),右键目标数据表 → 选择“生成DDL”或“查看DDL”,复制完整建表语句。确保语句包含ENGINE、CHARSET、COMMENT及所有字段的NOT NULL、DEFAULT、AUTO_INCREMENT等约束。若用的是SQLite,需手动补全PRIMARY KEY和类型映射(如INTEGER对应Java的Long)。
删除语句中与结构无关的内容:注释行(--)、分号前空格、反引号包裹符(除非字段名含关键字)、以及“CREATE TABLE IF NOT EXISTS”中的IF NOT EXISTS部分。只保留最简CREATE TABLE table_name (...)结构。
这一步不能跳过。DeepSeek对DDL语法敏感,【缺失NOT NULL或主键声明会导致生成的实体类忽略必填校验,后续插入直接报错】。
向DeepSeek发送结构化指令
在对话框中按以下顺序粘贴内容:
1. 明确角色:“你是一名资深Java后端工程师,熟悉Spring Boot 3.x和MyBatis-Plus 3.5+。”
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
2. 输入清洗后的建表语句(直接粘贴,不加任何说明文字)。
3. 指定输出要求:“请生成:① Lombok风格的实体类(@Data + @TableName),字段名严格匹配数据库列名,类型按MySQL→Java映射规则转换(如DATETIME→LocalDateTime,TINYINT(1)→Boolean);② Mapper接口继承BaseMapper;③ Service接口及Impl实现类,含save、getById、list、removeById方法;④ 不要任何解释、不要注释、不要包路径占位符。”
注意:必须把“Lombok”“BaseMapper”“LocalDateTime”等关键词写进提示词,否则模型可能默认用Date或手写getter/setter。
验证并修正生成结果
方法一:检查实体类字段类型是否与数据库一致。例如MySQL中status TINYINT(1) COMMENT '0禁用1启用',必须转为private Boolean status;若生成成Integer,则手动改为Boolean,并添加@TableField(condition = "status = {0}")避免查询条件失效。
方法二:核对主键策略。建表语句含AUTO_INCREMENT时,实体类对应字段需加@TableId(type = IdType.AUTO);若无该声明,MyBatis-Plus插入时会传null导致主键冲突。
方法三:运行mvn compile。如果报错“cannot find symbol”指向某个字段,大概率是建表语句里用了下划线命名(user_name),但DeepSeek误转为userName——此时需在该字段上加@TableField("user_name")显式指定列名。


















