2016-04-05 24 views
1

我非常喜歡使用嵌入式數據庫並使用Spring MVC。我已經制作了spring引導應用程序,並使用了h2數據庫,但是在單獨的項目中,我無法將它們放在一起。使用H2數據庫的Spring MVC應用程序

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

我知道桌子在那裏,但我不確定是否將其設置在我的項目體系結構的正確位置。我創建了一個名爲SQL文件夾(在SRC,然後主),並放置在data.sql和schema.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> 

任何幫助,將不勝感激感謝!

回答

0

彈簧啓動DataSourceInitializer預計schema.sqldata.sqlsrc/main/resources文件夾中。這是腳本的默認位置。所有的

Firsl移動SQL文件夾中的資源和使用以下屬性

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

或者只是移動腳本默認位置定義自定義位置。

相關問題