在 Spring Boot 应用程序中的内存 SQLITE 不工作

问题描述

我正在尝试在我的 spring-boot 应用程序中将 sqlITE 设置为内存数据库。但是当我尝试查询数据库时,它给了我一个错误“没有这样的表”

有人可以推荐我做错了什么吗?我只需要在内存中使用 sqlITE,我们只在我们的项目中使用 jdbc。

这是我的代码

application.properties

spring.datasource.url=jdbc:sqlite:memory
spring.datasource.username=
spring.datasource.password= 

spring.datasource.platform=sqlite
spring.datasource.driver-class-name=org.sqlite.JDBC

MyRepo.java

@Repository
public class MyRepo{

    @Autowired
    private NamedParameterJdbcTemplate namedJdbc;
    
    
    public String getUserName() throws Exception{
        String userName = null;
        String sql = "SELECT username FROM emp WHERE username=:name";
        MapsqlParameterSource paramSource = new MapsqlParameterSource();
        paramSource.addValue("name","tuser");
        userName = this.namedJdbc.query(sql,paramSource,(rs) -> {
                String name = null;
                while (rs.next()) {
                    name = rs.getString("username").trim();
                    return name;
                }
                return null;
            });
        
        return userName;
    }
}

UserDaoTest.java

@SpringBoottest
public class UserDaoTest {
    
    @Autowired
    private MyRepo rep;

    
    @Test
    public void testFindByname() throws Exception{
        rep.getUserName();
        
    }

}

我在 src/main/resources 下也有 schema.sql 和 data.sql 文件

schema.sql

DROP TABLE IF EXISTS emp;CREATE TABLE IF NOT EXISTS emp(username VARCHAR(20),empId BIGINT,PRIMARY KEY(empId) )

数据.sql

INSERT INTO emp(username,empId) VALUES ('tuser',1001);

我得到的异常:

PreparedStatementCallback; uncategorized sqlException for sql [SELECT username FROM Chats WHERE username=?]; sql state [null]; error code [1]; [sqlITE_ERROR] sql error or missing database (no such table: Chats)

解决方法

好吧,我是在黑暗中拍摄,但看起来您还需要将“聊天”表的架构添加到您的 schema.sql