質問編集履歴

9 sql文の訂正

korosuke_Z

korosuke_Z score 8

2016/09/16 09:37  投稿

検索条件をViewで入力し、Java側でTIME型のデータベース参照をしたいです。
###前提・実現したいこと
SpringMVC,PostgreSQLを用いて、
開始時間と終了時間の間のデータをデータベースから拾ってくる。
結果をViewで表示したいです。
検索条件の入力をViewで行う。
start_timeとend_timeはtime型(time without time zone)です。
他の型の列(date型やvarchar型の)はDaoクラスから拾い、表示までできることは確認しています。
###発生している問題・エラーメッセージ
```
org.springframework.web.util.NestedServletException: Request processing failed;
nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback;
org.postgresql.util.PSQLException: ERROR: "$1"またはその近辺で構文エラー
```
###該当のソースコード
```Java
/*略*/
@Repository
public class TestDao {
 private static final String TEST_SEARCH=
 "SELECT start_time,end_time "
 +"FROM test_table "
 +"WHERE start_time BETWEEN TIME ? TIME '24:00' "
 +"AND end_time BETWEEN TIME '00:00' TIME ?";
 +"WHERE start_time BETWEEN TIME ?"
 +"AND TIME '24:00' "
 +"AND end_time BETWEEN TIME '00:00'"
 +"AND TIME ?";
@Autowired
private JdbcTemplate jdbcTemplate;
 public List<TestForm>TestResult(TestForm form) {
 String startTime = form.getStartTime();
 String endTime = form.getEndTime();
 List<Map<String, Object>> list=
 jdbcTemplate.queryForList(TEST_SEARCH,startTime,endTime);
List<TestForm> formList = new ArrayList<TestForm>();
 for(Map<String,Object> result:list){
   TestForm resultForm =new TestForm ();
   resultform.setStartName(result.get("start_time").toString());
   resultform.setEndName(result.get("end_time").toString());
  formList.add(resultForm);
 }
 return formList;
}
```
###試したこと
"
-
 FROM test_table WHERE start_time
 BETWEEN TIME '00:00' TIME '24:00'
 AND end_time BETWEEN TIME '00:00' TIME '24:00';
 をデータベース側で直接実行したらデータを全件拾うことに成功しました。
-
CAST(start_time AS TIME)を使ってみましたが特に意味はありませんでした。
-
SimpleDateFormat format= new SimpleDateFormat("hh:mm:ss");
Date time = format.parse(startTime);
を使っても効果はありませんでした。
-
入力内容が間違っていると思い(例:"24:00:00")が格納されたStringの変数を作り、queryForListに格納しましたがエラーメッセージは変わらず。
-
java.sql.Time javaSqlTime = java.sql.Time.valueOf(startTime)も効果なし。
###補足情報(言語/FW/ツール等のバージョンなど)
Java/SpringMVC/STS/PostgreSQL/A5M2
  • Java

    17373 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • PostgreSQL

    1531 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Spring

    972 questions

    Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

8 タイトル変更

korosuke_Z

korosuke_Z score 8

2016/09/15 17:28  投稿

データベースから開始時間と終了時間の間の値を拾い、Java側で表示する処理を作りたい。
検索条件をViewで入力し、Java側でTIME型のデータベース参照をしたいです。
###前提・実現したいこと
SpringMVC,PostgreSQLを用いて、
開始時間と終了時間の間のデータをデータベースから拾ってくる。
結果をViewで表示したいです。
検索条件の入力をViewで行う。
start_timeとend_timeはtime型(time without time zone)です。
他の型の列(date型やvarchar型の)はDaoクラスから拾い、表示までできることは確認しています。
###発生している問題・エラーメッセージ
```
org.springframework.web.util.NestedServletException: Request processing failed;
nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback;
org.postgresql.util.PSQLException: ERROR: "$1"またはその近辺で構文エラー
```
###該当のソースコード
```Java
/*略*/
@Repository
public class TestDao {
private static final String TEST_SEARCH=
"SELECT start_time,end_time "
+"FROM test_table "
+"WHERE start_time BETWEEN TIME ? TIME '24:00' "
+"AND end_time BETWEEN TIME '00:00' TIME ?";
@Autowired
private JdbcTemplate jdbcTemplate;
public List<TestForm>TestResult(TestForm form) {
String startTime = form.getStartTime();
String endTime = form.getEndTime();
List<Map<String, Object>> list=
jdbcTemplate.queryForList(TEST_SEARCH,startTime,endTime);
List<TestForm> formList = new ArrayList<TestForm>();
for(Map<String,Object> result:list){
TestForm resultForm =new TestForm ();
resultform.setStartName(result.get("start_time").toString());
resultform.setEndName(result.get("end_time").toString());
formList.add(resultForm);
}
return formList;
}
```
###試したこと
"
-
FROM test_table WHERE start_time
BETWEEN TIME '00:00' TIME '24:00'
AND end_time BETWEEN TIME '00:00' TIME '24:00';
をデータベース側で直接実行したらデータを全件拾うことに成功しました。
-
CAST(start_time AS TIME)を使ってみましたが特に意味はありませんでした。
-
SimpleDateFormat format= new SimpleDateFormat("hh:mm:ss");
Date time = format.parse(startTime);
を使っても効果はありませんでした。
-
入力内容が間違っていると思い(例:"24:00:00")が格納されたStringの変数を作り、queryForListに格納しましたがエラーメッセージは変わらず。
-
java.sql.Time javaSqlTime = java.sql.Time.valueOf(startTime)も効果なし。
###補足情報(言語/FW/ツール等のバージョンなど)
Java/SpringMVC/STS/PostgreSQL/A5M2
  • Java

    17373 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • PostgreSQL

    1531 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Spring

    972 questions

    Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

7 課題変更

korosuke_Z

korosuke_Z score 8

2016/09/15 17:24  投稿

データベースから開始時間と終了時間の間の値を拾い、Java側で表示する処理を作りたい。
###前提・実現したいこと
SpringMVC,PostgreSQLを用いて、
開始時間と終了時間の間のデータをデータベースから拾ってくる。
結果をViewで表示したいです。
検索条件の入力をViewで行う。
start_timeとend_timeはtime型(time without time zone)です。
他の型の列(date型やvarchar型の)はDaoクラスから拾い、表示までできることは確認しています。
###発生している問題・エラーメッセージ
```
org.springframework.web.util.NestedServletException: Request processing failed;
nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback;
org.postgresql.util.PSQLException: ERROR: "$1"またはその近辺で構文エラー
```
###該当のソースコード
```Java
/*略*/
@Repository
public class TestDao {
 private static final String TEST_SEARCH=
 "SELECT start_time,end_time "
 +"FROM test_table "
 +"WHERE start_time BETWEEN TIME ? TIME '24:00' "
 +"AND end_time BETWEEN TIME '00:00' TIME ?";
@Autowired
private JdbcTemplate jdbcTemplate;
 public List<TestForm>TestResult(TestForm form) {
 String startTime = form.getStartTime();
 String endTime = form.getEndTime();
 List<Map<String, Object>> list=
 jdbcTemplate.queryForList(TEST_SEARCH,startTime,endTime);
List<TestForm> formList = new ArrayList<TestForm>();
 for(Map<String,Object> result:list){
   TestForm resultForm =new TestForm ();
   resultform.setStartName(result.get("start_time").toString());
   resultform.setEndName(result.get("end_time").toString());
  formList.add(resultForm);
 }
 return formList;
}
```
###試したこと
"
-
 FROM test_table WHERE start_time
 BETWEEN TIME '00:00' TIME '24:00'
 AND end_time BETWEEN TIME '00:00' TIME '24:00';
 をデータベース側で直接実行したらデータを全件拾うことに成功しました。
-
CAST(start_time AS TIME)を使ってみましたが特に意味はありませんでした。
-
SimpleDateFormat format= new SimpleDateFormat("hh:mm:ss");
Date time = format.parse(startTime);
を使っても効果はありませんでした。
-
入力内容が間違っていると思い(例:"24:00:00")が格納されたStringの変数を作り、queryForListに格納しましたがエラーメッセージは変わらず。
-  
java.sql.Time javaSqlTime = java.sql.Time.valueOf(startTime)も効果なし。  
###補足情報(言語/FW/ツール等のバージョンなど)
Java/SpringMVC/STS/PostgreSQL/A5M2
  • Java

    17373 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • PostgreSQL

    1531 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Spring

    972 questions

    Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

6 課題を追記

korosuke_Z

korosuke_Z score 8

2016/09/15 17:14  投稿

データベースから開始時間と終了時間の間の値を拾い、Java側で表示する処理を作りたい。
###前提・実現したいこと
SpringMVC,PostgreSQLを用いて、
開始時間と終了時間の間のデータをデータベースから拾ってくる。
結果をViewで表示したいです。
検索条件の入力をViewで行う。
start_timeとend_timeはtime型(time without time zone)です。
他の型の列(date型やvarchar型の)はDaoクラスから拾い、表示までできることは確認しています。
###発生している問題・エラーメッセージ
```
org.springframework.web.util.NestedServletException: Request processing failed;
nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback;
org.postgresql.util.PSQLException: ERROR: "$1"またはその近辺で構文エラー
```
###該当のソースコード
```Java
/*略*/
@Repository
public class TestDao {
 private static final String TEST_SEARCH=
 "SELECT start_time,end_time "
 +"FROM test_table "
 +"WHERE start_time BETWEEN TIME ? TIME '24:00' "
 +"AND end_time BETWEEN TIME '00:00' TIME ?";
@Autowired
private JdbcTemplate jdbcTemplate;
 public List<TestForm>TestResult(TestForm form) {
 String startTime = form.getStartTime();
 String endTime = form.getEndTime();
 List<Map<String, Object>> list=
 jdbcTemplate.queryForList(TEST_SEARCH,startTime,endTime);
List<TestForm> formList = new ArrayList<TestForm>();
 for(Map<String,Object> result:list){
   TestForm resultForm =new TestForm ();
   resultform.setStartName(result.get("start_time").toString());
   resultform.setEndName(result.get("end_time").toString());
  formList.add(resultForm);
 }
 return formList;
}
```
###試したこと
"
-  
 FROM test_table WHERE start_time
 BETWEEN TIME '00:00' TIME '24:00'
 AND end_time BETWEEN TIME '00:00' TIME '24:00';
   
 をデータベース側で直接実行したらデータを全件拾うことに成功しました。
-  
CAST(start_time AS TIME)を使ってみましたが特に意味はありませんでした。
-  
SimpleDateFormat format= new SimpleDateFormat("hh:mm:ss");  
Date time = format.parse(startTime);  
を使っても効果はありませんでした。  
-  
入力内容が間違っていると思い(例:"24:00:00")が格納されたStringの変数を作り、queryForListに格納しましたがエラーメッセージは変わらず。  
###補足情報(言語/FW/ツール等のバージョンなど)
Java/SpringMVC/STS/PostgreSQL/A5M2
  • Java

    17373 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • PostgreSQL

    1531 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Spring

    972 questions

    Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

5 引用ミス

korosuke_Z

korosuke_Z score 8

2016/09/15 15:21  投稿

データベースから開始時間と終了時間の間の値を拾い、Java側で表示する処理を作りたい。
###前提・実現したいこと
SpringMVC,PostgreSQLを用いて、
開始時間と終了時間の間のデータをデータベースから拾ってくる。
結果をViewで表示したいです。
検索条件の入力をViewで行う。
start_timeとend_timeはtime型(time without time zone)です。
他の型の列(date型やvarchar型の)はDaoクラスから拾い、表示までできることは確認しています。
###発生している問題・エラーメッセージ
```
org.springframework.web.util.NestedServletException: Request processing failed;
nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback;
org.postgresql.util.PSQLException: ERROR: "$1"またはその近辺で構文エラー
```
###該当のソースコード
```Java
/*略*/
@Repository
public class TestDao {
 private static final String DAY_LESSON_SEARCH =
 private static final String TEST_SEARCH=
 "SELECT start_time,end_time "
 +"FROM test_table "
 +"WHERE start_time BETWEEN TIME ? TIME '24:00' "
 +"AND end_time BETWEEN TIME '00:00' TIME ?";
@Autowired
private JdbcTemplate jdbcTemplate;
 public List<TestForm>TestResult(TestForm form) {
 String startTime = form.getStartTime();
 String endTime = form.getEndTime();
 List<Map<String, Object>> list=
 jdbcTemplate.queryForList(startTime,endTime);
 jdbcTemplate.queryForList(TEST_SEARCH,startTime,endTime);
List<TestForm> formList = new ArrayList<TestForm>();
 for(Map<String,Object> result:list){
   TestForm resultForm =new TestForm ();
   resultform.setStartName(result.get("start_time").toString());
   resultform.setEndName(result.get("end_time").toString());
  formList.add(resultForm);
 }
 return formList;
}
```
###試したこと
"
 FROM test_table WHERE start_time
 BETWEEN TIME '00:00' TIME '24:00'
 AND end_time BETWEEN TIME '00:00' TIME '24:00';
 
 をデータベース側で直接実行したらデータを全件拾うことに成功しました。
CAST(start_time AS TIME)を使ってみましたが特に意味はありませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
Java/SpringMVC/STS/PostgreSQL/A5M2
  • Java

    17373 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • PostgreSQL

    1531 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Spring

    972 questions

    Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

4 誤字

korosuke_Z

korosuke_Z score 8

2016/09/15 15:16  投稿

データベースから開始時間と終了時間の間の値を拾い、Java側で表示する処理を作りたい。
###前提・実現したいこと
SpringMVC,PostgreSQLを用いて、
開始時間と終了時間の間のデータをデータベースから拾ってくる。
結果をViewで表示したいです。
検索条件の入力をViewで行う。
start_timeとend_timeはtime型(time without time zone)です。
他の型の列(date型やvarchar型の)はDaoクラスから拾い、表示までできることは確認しています。
###発生している問題・エラーメッセージ
```
org.springframework.web.util.NestedServletException: Request processing failed;
nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback;
org.postgresql.util.PSQLException: ERROR: "$1"またはその近辺で構文エラー
```
###該当のソースコード
```Java
/*略*/
@Repository
public class TestDao {
 private static final String DAY_LESSON_SEARCH =
 "SELECT start_time,end_time "
 +"FROM test_table "
 +"WHERE start_time BETWEEN TIME ? TIME '24:00' "
 +"AND end_time BETWEEN TIME '00:00' TIME ?";
@Autowired
private JdbcTemplate jdbcTemplate;
 public List<TestForm>TestResult(TestForm form) {
 String startTime = form.getStartTime();
 String endTime = form.getEndTime();
 List<Map<String, Object>> list=
 jdbcTemplate.queryForList(startTime,endTime);
List<TestForm> formList = new ArrayList<TestForm>();
 for(Map<String,Object> result:list){
   TestForm resultForm =new TestForm ();
   resultform.setStartName(result.get("start_time").toString());
   resultform.setEndName(result.get("end_time").toString());
  formList.add(resultForm);
 }
 return formList;
}
```
###試したこと
"
 FROM test_table WHERE start_time
 BETWEEN TIME '00:00' TIME '24:00'
 AND end_time BETWEEN TIME '00:00' TIME '24:00';
 
 をデータベース側で直接実行したら全件データを拾うことに成功しました。
 をデータベース側で直接実行したらデータを全件拾うことに成功しました。
CAST(start_time AS TIME)を使ってみましたが特に意味はありませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
Java/SpringMVC/STS/PostgreSQL/A5M2
  • Java

    17373 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • PostgreSQL

    1531 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Spring

    972 questions

    Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

3 変数名の構文を整えました

korosuke_Z

korosuke_Z score 8

2016/09/15 15:15  投稿

データベースから開始時間と終了時間の間の値を拾い、Java側で表示する処理を作りたい。
###前提・実現したいこと
SpringMVC,PostgreSQLを用いて、
開始時間と終了時間の間のデータをデータベースから拾ってくる。
結果をViewで表示したいです。
検索条件の入力をViewで行う。
start_timeとend_timeはtime型(time without time zone)です。
他の型の列(date型やvarchar型の)はDaoクラスから拾い、表示までできることは確認しています。
###発生している問題・エラーメッセージ
```
org.springframework.web.util.NestedServletException: Request processing failed;
nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback;
org.postgresql.util.PSQLException: ERROR: "$1"またはその近辺で構文エラー
```
###該当のソースコード
```Java
/*略*/
@Repository
public class TestDao {
 private static final String DAY_LESSON_SEARCH =
 "SELECT start_time,end_time "
 +"FROM test_table "
 +"WHERE start_time BETWEEN TIME ? TIME '24:00' "
 +"AND end_time BETWEEN TIME '00:00' TIME ?";
@Autowired
private JdbcTemplate jdbcTemplate;
 public List<TestForm>TestResult(TestForm form) {
 String startTime = form.getStartTime();
 String endTime = form.getEndTime();
 List<Map<String, Object>> list=
 jdbcTemplate.queryForList(startTime,endTime);
List<TestForm> formList = new ArrayList<TestForm>();
 for(Map<String,Object> result:list){
   TestForm resultform =new TestForm ();
   TestForm resultForm =new TestForm ();
   resultform.setStartName(result.get("start_time").toString());
   resultform.setEndName(result.get("end_time").toString());
  formList.add(resultform);
  formList.add(resultForm);
 }
 return formList;
}
```
###試したこと
"
 FROM test_table WHERE start_time
 BETWEEN TIME '00:00' TIME '24:00'
 AND end_time BETWEEN TIME '00:00' TIME '24:00';
 
 をデータベース側で直接実行したら全件データを拾うことに成功しました。
CAST(start_time AS TIME)を使ってみましたが特に意味はありませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
Java/SpringMVC/STS/PostgreSQL/A5M2
  • Java

    17373 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • PostgreSQL

    1531 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Spring

    972 questions

    Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

2 addするものを間違えていました

korosuke_Z

korosuke_Z score 8

2016/09/15 15:14  投稿

データベースから開始時間と終了時間の間の値を拾い、Java側で表示する処理を作りたい。
###前提・実現したいこと
SpringMVC,PostgreSQLを用いて、
開始時間と終了時間の間のデータをデータベースから拾ってくる。
結果をViewで表示したいです。
検索条件の入力をViewで行う。
start_timeとend_timeはtime型(time without time zone)です。
他の型の列(date型やvarchar型の)はDaoクラスから拾い、表示までできることは確認しています。
###発生している問題・エラーメッセージ
```
org.springframework.web.util.NestedServletException: Request processing failed;
nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback;
org.postgresql.util.PSQLException: ERROR: "$1"またはその近辺で構文エラー
```
###該当のソースコード
```Java
/*略*/
@Repository
public class TestDao {
 private static final String DAY_LESSON_SEARCH =
 "SELECT start_time,end_time "
 +"FROM test_table "
 +"WHERE start_time BETWEEN TIME ? TIME '24:00' "
 +"AND end_time BETWEEN TIME '00:00' TIME ?";
@Autowired
private JdbcTemplate jdbcTemplate;
 public List<TestForm>TestResult(TestForm form) {
 String startTime = form.getStartTime();
 String endTime = form.getEndTime();
 List<Map<String, Object>> list=
 jdbcTemplate.queryForList(startTime,endTime);
List<TestForm> formList = new ArrayList<TestForm>();
 for(Map<String,Object> result:list){
   TestForm resultform =new TestForm ();
   resultform.setStartName(result.get("start_time").toString());
   resultform.setEndName(result.get("end_time").toString());
  dayLessonSearchResultList.add(resultform);
  formList.add(resultform);
 }
 return formList;
}
```
###試したこと
"
 FROM test_table WHERE start_time
 BETWEEN TIME '00:00' TIME '24:00'
 AND end_time BETWEEN TIME '00:00' TIME '24:00';
 
 をデータベース側で直接実行したら全件データを拾うことに成功しました。
CAST(start_time AS TIME)を使ってみましたが特に意味はありませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
Java/SpringMVC/STS/PostgreSQL/A5M2
  • Java

    17373 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • PostgreSQL

    1531 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Spring

    972 questions

    Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

1 エラーメッセージの場所がおかしかったです

korosuke_Z

korosuke_Z score 8

2016/09/15 15:12  投稿

データベースから開始時間と終了時間の間の値を拾い、Java側で表示する処理を作りたい。
###前提・実現したいこと
SpringMVC,PostgreSQLを用いて、
開始時間と終了時間の間のデータをデータベースから拾ってくる。
結果をViewで表示したいです。
検索条件の入力をViewで行う。
start_timeとend_timeはtime型(time without time zone)です。
他の型の列(date型やvarchar型の)はDaoクラスから拾い、表示までできることは確認しています。
###発生している問題・エラーメッセージ
```
エラーメッセージ  
```  
org.springframework.web.util.NestedServletException: Request processing failed;
nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback;
org.postgresql.util.PSQLException: ERROR: "$1"またはその近辺で構文エラー
```  
###該当のソースコード
```Java
/*略*/
@Repository
public class TestDao {
 private static final String DAY_LESSON_SEARCH =
 "SELECT start_time,end_time "
 +"FROM test_table "
 +"WHERE start_time BETWEEN TIME ? TIME '24:00' "
 +"AND end_time BETWEEN TIME '00:00' TIME ?";
@Autowired
private JdbcTemplate jdbcTemplate;
 public List<TestForm>TestResult(TestForm form) {
 String startTime = form.getStartTime();
 String endTime = form.getEndTime();
 List<Map<String, Object>> list=
 jdbcTemplate.queryForList(startTime,endTime);
List<TestForm> formList = new ArrayList<TestForm>();
 for(Map<String,Object> result:list){
   TestForm resultform =new TestForm ();
   resultform.setStartName(result.get("start_time").toString());
   resultform.setEndName(result.get("end_time").toString());
  dayLessonSearchResultList.add(resultform);
 }
 return formList;
}
```
###試したこと
"
 FROM test_table WHERE start_time
 BETWEEN TIME '00:00' TIME '24:00'
 AND end_time BETWEEN TIME '00:00' TIME '24:00';
 
 をデータベース側で直接実行したら全件データを拾うことに成功しました。
CAST(start_time AS TIME)を使ってみましたが特に意味はありませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
Java/SpringMVC/STS/PostgreSQL/A5M2
  • Java

    17373 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • PostgreSQL

    1531 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Spring

    972 questions

    Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る