2016-04-05 12 views
1

私は組み込みデータベースを使用してかなり新しく、Spring MVCも使用しています。私は春のブートアプリケーションを作成し、h2データベースを使用して別のプロジェクトでは、私は一緒に2つを入れて問題があります。H2データベースを使用したSpring MVCアプリケーション

私の最近の問題はindex.jspページにあります。ユーザーが選択できる候補のリストを表示するために使用しています。私は接続を作成して克服しましたが、 "テーブル"候補 "が見つかりませんでした" SQLステートメント:SELECT DISTINCT CONSTITUENCY FROM候補 "ORDER BY CONSTITUENCY [42102-187]"。

私はテーブルがあることを知っていますが、私はそれが私のプロジェクトアーキテクチャの適切な場所に設定されているかどうかわかりません。私は(メイン、その後、SRCで)SQLというフォルダを作成し、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のsrc /メイン/リソースフォルダ内のschema.sqldata.sqlを期待しています。スクリプトのデフォルトの場所です。

すべてのFirslリソースにSQLフォルダを移動し、次のプロパティ

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

それとも、デフォルトの場所にスクリプトを移動を使用してカスタムの場所を定義します。