質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.85%

  • Java

    12496questions

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

  • SQL

    2099questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

  • Spring

    597questions

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

HTML画面にデータベースから取ってきたデータを表示しようとすると全てNULLになる

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 123

oka12

score 1

Spring MVC+mybatisを使用し、データベースからデータをHTML画面に呼び出そうとしているのですが、全てのデータがNULLになってしまいます。
あとNULLの数とデータの数(toha2_nm)は一致しています。なので、おそらくListにはデータを格納できていると思うのですが、なぜNULLになってしまうのでしょうか?
以下にコードを記載しておきます。

mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.jiji.senkyo.mybatis.mapper.JS0007Mapper">

    <select id="getJS0007SyukeiList" resultType="com.jiji.senkyo.model.JS0007Model" parameterType="com.jiji.senkyo.model.JS0007Model"
        flushCache="true">

            <!-- 党派情報等を検索 -->
            select toha2_nm

            from toha_nm
            join toha_sen_info
            using(toha_cd)

            where toha_cd != '0'

            order by toha_cd;


    </select>

</mapper>
mapper.java

package com.jiji.senkyo.mybatis.mapper;

import java.util.List;
import com.jiji.senkyo.model.JS0007Model;



public interface JS0007Mapper extends BaseMapper {
        /**
    *一覧情報獲得
    *
    * @param params JS0007モデル
    * @return 一覧情報(JS0007モデル)
    */
    List<JS0007Model> getJS0007SyukeiList(JS0007Model params); 


}
model.java


package com.jiji.senkyo.model;


public class JS0007Model extends BaseModel {

    /**

     * serialVersionUID

     */
    private static final long serialVersionUID = 1L;


    private String toha_cd;
    private String sen_joho_cd;
    private String toha2_nm;
    private String toha3_nm;
    private String tokei_cd;




        /**
         * @return toha_cd
         * toha_cd
         */
        public String getToha_cd() {
            return toha_cd;
        }


        /**
         * @param toha_cd 設定する toha_cd
         */
        public void setToha_cd(String toha_cd) {
            this.toha_cd = toha_cd;
        }


        /**
         * @return sen_joho_cd
         * sen_joho_cd
         */
        public String getSen_joho_cd() {
            return sen_joho_cd;
        }


        /**
         * @param sen_joho_cd 設定する sen_joho_cd
         */
        public void setSen_joho_cd(String sen_joho_cd) {
            this.sen_joho_cd = sen_joho_cd;
        }


        /**
         * @return toha2_nm
         * toha2_nm
         */
        public String getToha2_nm() {
            return toha2_nm;
        }


        /**
         * @param toha2_nm 設定する toha2_nm
         */
        public void setToha2_nm(String toha2_nm) {
            this.toha2_nm = toha2_nm;
        }


        /**
         * @return toha3_nm
         * toha3_nm
         */
        public String getToha3_nm() {
            return toha3_nm;
        }


        /**
         * @param toha3_nm 設定する toha3_nm
         */
        public void setToha3_nm(String toha3_nm) {
            this.toha3_nm = toha3_nm;
        }


        /**
         * @return tokei_cd
         * tokei_cd
         */
        public String getTokei_cd() {
            return tokei_cd;
        }


        /**
         * @param tokei_cd 設定する tokei_cd
         */
        public void setTokei_cd(String tokei_cd) {
            this.tokei_cd = tokei_cd;
        }





}
service.java

package com.jiji.senkyo.service;


import java.util.List;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.jiji.senkyo.model.JS0007Model;
import com.jiji.senkyo.mybatis.mapper.*;




@Service("JS0007Service")
public class JS0007Service extends BaseService {

    /**
     * eventApplyMapper
     */
    @Autowired
    private JS0007Mapper js0007Mapper;

//以下Serviceの実行コードを記入

/**
 * ユーザー情報取得
 * 
 * @param params ログインユーザー
 * @return ユーザー情報取得
 */
public List<JS0007Model> getJS0007SyukeiList() {
    // パラメータ設定
    JS0007Model param = new JS0007Model();

    // TODO デバック用
    param.setToha_cd("0");
    param.setSen_joho_cd("0");
    param.setToha2_nm("1");
    param.setToha3_nm("0");
    param.setTokei_cd("0");


    // ユーザー情報を取得
    List<JS0007Model> resultModel = this.js0007Mapper.getJS0007SyukeiList(param);
    if(resultModel == null) {
        return null;
    }


     /*UserInfo result = new UserInfo();
     *BeanUtils.copyProperties(resultModel, result);
     */

    // 画面一覧のデータを取得
    return resultModel; //後でinfoに移し替える


}
controller.java

package com.jiji.senkyo.controller;


import java.util.List;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import com.jiji.senkyo.model.JS0007Model;
import com.jiji.senkyo.service.JS0007Service;


 @Controller
 public class JS0007Controller extends BaseController {



    /**
    * サービス
    */
    @Autowired
    private JS0007Service js0007Service;

    /**
     * setupDomain
     *
     *@return UserInfo
     */

     /*@ModelAttribute
     *public UserInfo setupDomain() {
     *    return new UserInfo();
     *}
     */


     /**
     * @return index
     */
     @RequestMapping(value = "/JS0007" )
     public String index(Model model) {

         /*UserInfo userInfo = new UserInfo();
         *model.addAttribute("userInfo", userInfo);
         */

         List<JS0007Model> listModel = this.js0007Service.getJS0007SyukeiList(); 


         model.addAttribute("test", listModel);


         return "JS0007";
     }
JS0007.html

<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head th:include="/commons/common.html::header(~{::link},~{::script},null)">
    <!-- Required meta tags -->
    <meta charset="utf-8">

</head>
<body>
<div id="header"th:include="/commons/common.html::bodyHeader"></div><!-- /.header -->
<div id="navbar" th:include="/commons/common.html::navbar('メニュー','','','','')"></div><!--/.navbar -->

    <span th:text="${test}">AKO</span>


<!-- 以下略 -->
service.java

List<JS0007Model> resultModel = this.js0007Mapper.getJS0007List(param);
→16個の要素全てがnullでした。この要素はmapperから読み込んでいるのでmapperを
確かめたいのですが、mapper.javaはインタフェースなのでデバックができないです。mapper.xmlも然り。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • oka12

    2018/05/30 12:44

    そうだと思います。だから、Mapper.xmlからserviceに行くまでのどこかでSQL文がうまく渡されていないと思っています。

    キャンセル

  • mts10806

    2018/05/30 12:45

    「思います」だと確証がないのでデバッグ実行して変数の中身や状態を確認し、確認結果を質問本文に追記してください。

    キャンセル

  • oka12

    2018/05/31 13:04

    追記しました。デバックでチェックしたところ、Model.javaが実行時に使われていませんでした。とりあえずModelをservice側で呼び出せないかやってみます!

    キャンセル

回答 1

check解決した方法

0

Model.javaにおいてtokei_cd→tokeiCdのようにアンダーバーを無くしたらうまくいきました。

最後にmts10806さん、ご回答いただきありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.85%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Java

    12496questions

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

  • SQL

    2099questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

  • Spring

    597questions

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