簡體   English   中英

使用 H2 數據庫的帶有 MVC 應用程序的 Spring Boot

[英]Spring Boot with MVC application using H2 database

我是使用嵌入式數據庫的新手,也使用 Spring MVC。 我已經制作了 Spring Boot 應用程序並使用了 h2 數據庫,但是在不同的項目中,我無法將兩者放在一起。

我最近的問題是在index.jsp頁面中,我用來顯示候選選區列表供用戶選擇。 我已經克服了創建連接的問題,但是我一直收到錯誤: "Table "CANDIDATES" not found; SQL statement: SELECT DISTINCT CONSTITUENCY FROM candidates ORDER BY CONSTITUENCY [42102-187]"

我知道該表在那里,但我不確定我是否將它設置在我的項目架構中的正確位置。 我創建了一個名為SQL(src中,然后主)文件夾,並放置在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>

春天開機DataSourceInitializer預計schema.sqldata.sql的src / main / resources文件夾。 它是腳本的默認位置。

首先將SQL文件夾移動到資源並使用以下屬性定義自定義位置

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

或者只是將腳本移動到默認位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM