如何在spring boot controller中执行sql语句?

use*_*529 5 java mysql uuid spring spring-boot

我想在spring boot controller类中执行sql语句,而不是在jpa存储库中定义任何方法.我想要使​​用的声明是

SELECT UUID();
Run Code Online (Sandbox Code Playgroud)

此语句与数据库相关,并且与特定实体无关.

如果任何人都能通过提供上述语句的执行解决方案,那将是很好的

  1. 弹簧控制器类
  2. jpa存储库(如果推荐)

更新

控制器:

@Autowired
JdbcTemplate jdbcTemplate;

@RequestMapping(value = "/UUID", method = RequestMethod.GET)
public ResponseEntity<String> getUUID() {
    String uuid = getUUID();
    return buildGuestResponse(uuid);
}

public String getUUID(){
    UUID uuid = (UUID)jdbcTemplate.queryForObject("select UUID()", UUID.class);
    return uuid.toString();
}
Run Code Online (Sandbox Code Playgroud)

kak*_*ali 7

您可以在代码中使用JdbcTemplate。

您将在配置类中需要的bean是:

@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource)
{
    return new JdbcTemplate(dataSource);
}
Run Code Online (Sandbox Code Playgroud)

运行查询的代码是:

@Autowired
private JdbcTemplate JdbcTemplate;

public String getUUID(){
    UUID uuid = (UUID)jdbcTemplate.queryForObject("select UUID()", UUID.class);
    return uuid.toString();
}
Run Code Online (Sandbox Code Playgroud)

或可能是这样的:

public UUID getUUID(){
    UUID uuid = (UUID)jdbcTemplate.queryForObject("select UUID()", UUID.class);
    return uuid;
}
Run Code Online (Sandbox Code Playgroud)