gpt4 book ai didi

java - 使用 H2 数据库的 Spring Boot 和 MVC 应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:52 26 4
gpt4 key购买 nike

我对嵌入式数据库和 Spring MVC 的使用还很陌生。我已经制作了 Spring Boot 应用程序并使用了 h2 数据库,但在不同的项目中,并且我无法将两者放在一起。

我最近的问题是在 index.jsp 页面中,我使用它来显示候选选区列表以供用户选择。我已经克服了创建连接的问题,但是我不断收到错误:“未找到表“CANDIDATES”;SQL 语句:从候选者中选择不同的选区 ORDER BY CONSTITUENCY [42102-187]”

我知道该表在那里,但我不确定是否将其设置在项目架构中的正确位置。我创建了一个名为 SQL 的文件夹(在 src 中,然后在 main 中),并在其中放置了 data.sqlschema.sql 填充内容

>ELECTION2016
>src/main/java
>src/main/resources
>src/test/java
>JRE System Library
>Maven Dependencies
>Apache Tomcat v8.0
v src
v main
>webapp
v SQL
>data.sql
>schema.sql
>test
>target
>pom.xml

基本上我不确定我是否将 sql 文件放在正确的位置!

我的index.jsp页面:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<html>
<head>
<title>Election 2016</title>
</head>
<body BGCOLOR=#FFE5B4>

<%
try {
Class.forName("org.h2.Driver");
Connection con = DriverManager.getConnection("jdbc:h2:~/test", "", "");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT DISTINCT CONSTITUENCY FROM candidates ORDER BY CONSTITUENCY");
%>
<h2>Choose constituency</h2>
<form name="constituencyform" action="display.jsp" method="post">
<select name="constituency">
<%
while (rs.next()) {
%><option><%=rs.getString(1)%></option><%
}
rs.close();
stmt.close();
%>
</select>
<input type="submit" value="Next">
</form>
<%
} catch (SQLException ex) {
%><%= ex.getMessage() %><%
}
%>
</body>
</html>

最佳答案

Spring boot DataSourceInitializer 需要 schema.sqldata.sql 位于 src/main/resources 文件夹中。这是脚本的默认位置。

首先将 SQL 文件夹移动到资源并使用以下属性定义自定义位置

spring.datasource.schema=classpath*:sql/schema.sql
spring.datasource.data=classpath*:sql/data.sql

或者只是将脚本移动到默认位置。

关于java - 使用 H2 数据库的 Spring Boot 和 MVC 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36435607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com