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

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

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

Spring

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

Q&A

1回答

7308閲覧

SpringMVC JDBCを使用してDBからデータ取得したい

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

Spring

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

0グッド

0クリップ

投稿2016/06/13 05:17

編集2022/01/12 10:55

###前提・実現したいこと

JAVA初心者です。Springを使ってDBからうまくデータ取れません。
STSを使ってます、STSで
new -> Spring Legacy Project -> TemplatesのSimple Spring WEB Mavenでプロジェクトを作成して、HomeControllerでJdbcTemplateを使ってDBアクセスは出来たのですが、HomeController以外でJdbcTemplateを使うとDBからデータ取得出来ず、例外エラーになります。

実現したいことは違うpackageでDBの処理を書きたい

###発生している問題・エラーメッセージ

HTTPステータス 500 - Request processing failed; nested exception is java.lang.NullPointerException

###該当のソースコード

pom.xml

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> を追加

servlet-context.xml

<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <beans:property name="driverClassName" value="org.gjt.mm.mysql.Driver" /> <beans:property name="url" value="jdbc:mysql://localhost:3306/ec_site" /> <beans:property name="username" value="root" /><!-- ユーザIDを入力 --> <beans:property name="password" value="" /><!-- パスワードを入力 --> </beans:bean> を追加

src/main/java/ec_site.drg.jp/ HomeController.java

package ec_site.drg.jp; import java.text.DateFormat; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import ec_site.drg.jp.bc.db_access; /** * Handles requests for the application home page. */ @Controller public class HomeController { // db_access db= new db_access(); @RequestMapping(value = "/", method = RequestMethod.GET) public String home( Model model ) { // db.db_connection(); return "home"; } }

src/main/java/ec_site.drg.jp.bc/db_access.java

package ec_site.drg.jp.bc; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; /** * @author udon */ public class db_access { @Autowired public JdbcTemplate jdbc; // public void db_connection() { // List<Map<String, Object>> db_order_list = jdbc.queryForList("select * from item_date"); System.out.print(db_order_list); } }

###試したこと
srvlet-context.xmlに<context:component-scan base-package="ec_site.drg.jp.bc" />を追加、処理を書いたクラスのpackage

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

<context:component-scan base-package=".....">

では、実は annotation-config="true" のデフォルト設定が含まれており、Springの何らかのアノテーションが必要です。

データベースのアクセスであれば、@Resourceを指定するのが良いでしょう。

投稿2016/06/13 06:01

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/06/13 08:22

解答ありがとうございます。 @Resourceについて調べて使ってみたんですが解決できませんでした。 @Autowiredでは取得できないでしょうか。
A-pZ

2016/06/13 08:54

設定に不備がなければAutowired指定で取得できるはずです。 おそらく設定がないのかもしれませんが、以下も確認してください。 Springの設定ファイル中に `<context:annotation-config />`があるか。 `@Resource`で取得できない場合ですが、以下Springのアノテーションで利用可能になっているかも確認してください。 `@Repository` `@Component`
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問