SpringMVCでMySQLに接続する

SpringMVCでMySQLに接続するにはspring-jdbcとmysql-connector-javaが必要です。

なのでpom.xmlに以下を追加します。

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>

次にspring設定ファイル<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://127.0.0.1:3306/testdb" />
<beans:property name="username" value="root" /><!-- ユーザIDを入力 -->
<beans:property name="password" value="aabbcc" /><!-- パスワードを入力 -->
</beans:bean>

<beans:bean class="org.springframework.jdbc.core.JdbcTemplate">
<beans:constructor-arg ref="dataSource" />
</beans:bean>

MySQLについてはMySQLのテーブル作成と存在確認を見てください。このテーブルを使用します。

ちなみにデータは1件のみです。

mysql> select * from tbl_customer;
+----+-----------+----------+------+
| id | firstname | lastname | age  |
+----+-----------+----------+------+
|  1 | yamada    | taro     |   20 |
+----+-----------+----------+------+
1 row in set (0.00 sec)

mysql>

MySQLに接続するコントローラです。

<pre><code>package jp.co.confrage;

import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("db")
public class DataBaseController {

@Autowired
private JdbcTemplate jdbcTemplate;

private static final Logger logger = LoggerFactory.getLogger(DataBaseController.class);

@RequestMapping(value = "home", method = RequestMethod.GET)
public String home(Model model) {
logger.info("Welcome Sample Page.");

List<Map<String, Object>>  list = jdbcTemplate.queryForList("select * from tbl_customer");

model.addAttribute("ahehe", list.get(0).get("firstname") );

return "dbHome";
}
}

jdbcTemplate.queryForListメソッドでいきなりMySQLに接続できます。これはJdbcTemplateクラスをservlet-context.xmlで定義しており、@AutoWiredアノテーションでJdbcTemplateをDIしているからです。

次に表示するdbHome.jspです。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Home</title>
</head>
<body>
<h1>
Hello world!
</h1>

<P>  DB's data is ${ahehe}</P>

</body>
</html>

今さらですが、${変数名}はaddAttributeの第一引数と合っていればなんでもいいです。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA