MyBatis Plus 集成
本指南介绍如何在 MyBatis Plus 项目中集成 SuperSQL。
添加依赖
在 pom.xml 中添加 MyBatis Plus 集成依赖:
xml
<dependency>
<groupId>com.aispace.supersql</groupId>
<artifactId>super-sql-mybatis-plus</artifactId>
<version>1.0.0-M1</version>
</dependency>配置 MyBatis Plus
在 application.yml 中配置 MyBatis Plus:
yaml
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.your.package.entity
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl使用 ExecuteSqlMapper
SuperSQL 提供了 ExecuteSqlMapper 用于执行 SQL 查询。
Mapper 接口
java
@Mapper
public interface ExecuteSqlMapper extends BaseMapper<Map<String, Object>> {
}使用示例
java
@Service
@RequiredArgsConstructor
public class QueryService {
private final ExecuteSqlMapper executeSqlMapper;
public List<Map<String, Object>> executeQuery(String sql) {
return executeSqlMapper.selectList(
new QueryWrapper<Map<String, Object>>()
.apply("SQL", sql)
);
}
}集成 SuperSQL
Service 示例
java
@Service
@RequiredArgsConstructor
public class SuperSqlMyBatisService {
private final SpringSqlEngine sqlEngine;
private final ChatModel chatModel;
private final ExecuteSqlMapper executeSqlMapper;
public List<Map<String, Object>> query(String question) {
String sql = sqlEngine.setChatModel(chatModel)
.generateSql(question);
return executeSqlMapper.selectList(
new QueryWrapper<Map<String, Object>>()
.apply("SQL", sql)
);
}
public void trainDatabase(String ddl) {
sqlEngine.setChatModel(chatModel)
.train(TrainBuilder.builder()
.content(ddl)
.policy(TrainPolicyType.DDL)
.build());
}
}Controller 示例
java
@RestController
@RequestMapping("/api")
@RequiredArgsConstructor
public class SuperSqlController {
private final SuperSqlMyBatisService queryService;
@PostMapping("/query")
public ResponseEntity<?> query(@RequestBody QueryRequest request) {
try {
List<Map<String, Object>> result = queryService.query(request.getQuestion());
return ResponseEntity.ok(result);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(Map.of("error", e.getMessage()));
}
}
@PostMapping("/train")
public ResponseEntity<String> train(@RequestBody TrainRequest request) {
try {
queryService.trainDatabase(request.getContent());
return ResponseEntity.ok("训练成功");
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body("训练失败: " + e.getMessage()));
}
}
}下一步
- 查看 Spring Boot 集成 了解 Spring Boot 集成
- 学习 MCP 集成 了解 MCP 集成
- 探索 向量数据库 了解向量数据库配置
