2016-04-05 3 views
1

Я довольно новый, используя встроенные базы данных и используя Spring MVC. Я сделал весенние загрузочные приложения и использовал базу данных h2, но в отдельных проектах, и у меня возникли проблемы с объединением двух.Приложение Spring MVC с использованием базы данных H2

Моя последняя проблема заключается в странице index.jsp, которую я использую, чтобы отобразить список кандидатов для выбора пользователем. Я преодолел создание соединения, однако я продолжаю получать ошибку «Таблица« КАНДИДАТЫ »не найден, SQL-оператор: SELECT DISTINCT CONSTTITUENCY FROM кандидатов ORDER BY CONSTITUENCY [42102-187]".

Я знаю, что там есть таблица, но я не уверен, настроен ли он в нужном месте в моей проектной архитектуре. Я создал папку под названием 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

Spring ботинок DataSourceInitializer ожидает schema.sql и data.sql в SRC/основные/ресурсы папки. Это расположение по умолчанию для сценариев.

Firsl всего двигаться SQL папку к ресурсам и определить пользовательское местоположение, используя следующие свойства

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

Или просто переместить скрипты в папку по умолчанию.

Смежные вопросы