当前位置: 首页 > 知识库问答 >
问题:

Springboot无法提取ResultSet

任昊苍
2023-03-14

目前,我在为springboot项目获取mysql数据时遇到了一个问题:

@Entity
public class TestEntity implements Serializable {

    @Id
    private int id;
    private String p1;
    private String p2;
    private String p3;

    public TestEntity() {
    }

    public TestEntity(int id, String p1, String p2, String p3){
        this.id = id;
        this.p1 = p1;
        this.p2 = p2;
        this.p3 = p3;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getP1() {
        return p1;
    }

    public void setP1(String p1) {
        this.p1 = p1;
    }

    public String getP2() {
        return p2;
    }

    public void setP2(String p2) {
        this.p2 = p2;
    }

    public String getP3() {
        return p3;
    }

    public void setP3(String p3) {
        this.p3 = p3;
    }



}
@Service
public class TestService {

    @Autowired
    private TestRepository testRepository;

    public ArrayList<TestEntity> getAllTestEntities(){
       ArrayList<TestEntity> list = new ArrayList();
       testRepository.findAll().forEach(list::add);
       return list;
    }

    public Optional getTestEntity(int id){
       return testRepository.findById(id);
    }
    public void addTestEntity(TestEntity t){
        testRepository.save(t);
    }
    public void removeTestEntity(int index){

        testRepository.deleteById(index);

    }

}
@Repository("mysql")
public interface TestRepository extends CrudRepository<TestEntity,Integer> {



}
@RestController
public class TestController {

    @Autowired
    private TestService testService;

    @RequestMapping("/test/AllUnits")
    public ArrayList<TestEntity> getAllTestUnits(){
        return testService.getAllTestEntities();
    }

    @RequestMapping("/test/{id}")
    public Optional getAllTestUnit(@PathVariable int id){
        return testService.getTestEntity(id);
    }

    @RequestMapping(method=RequestMethod.POST,value = "/test" )
    public void addTestUnit(@RequestBody TestEntity t){
        testService.addTestEntity(t);
    }

    @RequestMapping(method=RequestMethod.DELETE,value = "/test/{id}" )
    public void deleteTestUnit(@RequestBody Integer id){
        testService.removeTestEntity(id);
    }

    @RequestMapping("/test/welcome")
    public String welcome(){

        return "welcome to springboot";

    }


}

编辑:Application.Properties

cloud.aws.region.auto=true
cloud.aws.region.static=us-east-2

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://alyxdev.czcdgqfkwsnr.us-east-2.rds.amazonaws.com:3306/CryptoCurrency
spring.datasource.username=*******
spring.datasource.password=*******

我能够使/test/welcome映射工作,因此我相信我对服务和控制器的实现是正确的。所以我想知道我是不是在访问存储库中的数据库时犯了一个错误,还是应该使用JpaRepository而不是CrudRepository并使用显式查询?

编辑堆栈跟踪:org.springframework.dao.invalidDataAccessResourceUsageException:无法提取结果集;SQL[N/A];嵌套异常为org.hibernate.exception.sqlgrammarexception:无法提取由org.hibernate.exception.sqlgrammarexception:无法提取由com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception:表“cryptocurrency.test_entity”不存在

共有1个答案

米承嗣
2023-03-14

在您的实体类(即TestEntity.java)中,您需要指定引用哪个表

@Entity
@Table(name="tbl_something")
public class TestEntity implements Serializable {

而使用CrudRepository对于过度使用数据库是很好的。application.properties文件在我看来不错。

 类似资料:
  • 问题内容: 安慰: 问题: 当我从类执行函数时,就会发生这种情况。这是怎么回事 问题答案: 如下更改查询: 否则如下: 中相应的比较 ,其中 子句是具有文字,而不是另一列。因此,必须在第一种情况下用引号引起来,或者在第二种情况下使用绑定变量。

  • 嗨,你能帮我解决这个问题吗。我在MySQL DB中连接了这个应用程序,每次运行这个作业从DB中取数据时,我总是会得到这个异常(参见添加了Java类、DAO和方法以及apache DBCP2配置的全栈跟踪)。 null

  • 我无法获取结果,create查询正在执行,但之后将其转换为list无法工作。请帮我解决这个问题。为什么它没有被转换成列表我无法获取结果,创建查询正在被执行,但之后将它转换成列表不起作用。请帮我解决这个问题。为什么它没有被转换成列表 表脚本 bean类 控制器方法是: 错误日志 null AnswerEntity类

  • 我已经将支持JAR和jdbc驱动程序添加到我的项目中,但我仍然得到了低于例外情况 getting找不到resultset异常错误执行load命令:getting sqlgrammerexception 我的配置文件

  • 这是我的POJO类,名为Student,我为它创建了一个表来更新标记。 这是我的主要班级 当我尝试执行该操作时,它显示了另一个错误,错误是“student0_”。“verson”:无效标识符

  • org.hibernate.exception.sqlgrammarexception:无法提取ResultSet 以及此控制台错误: 错误:您的SQL语法有错误;查看与您的MariaDB服务器版本相对应的手册,了解第1行“leave leave2_where leave2_.leave_employee=staff0_.staff_code and project1_.proj”附近使用的正确语