有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Spring启动应用程序中的java内存SQLITE不工作

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

有人能推荐一下我做错了什么吗?我只需要将SQLITE作为内存中的一个,我们只在项目中使用jdbc

这是我的密码:

应用程序。性质

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。爪哇

@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。爪哇

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

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

}

我也有模式。sql和数据。src/main/resources下的sql文件

模式。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)

共 (1) 个答案

  1. # 1 楼答案

    嗯,我是在黑暗中拍摄的,但是看起来您需要将“Chats”表的模式也添加到您的模式中。sql