SpringMVCでMySQLに接続する(Maven)
SpringMVCでMySQLに接続するにはspring-jdbcとmysql-connector-javaが必要です。
pom.xml
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についてはMySQLのテーブル作成と存在確認を見てください。このテーブルを使用します。
ちなみにデータは1件のみです。
mysql> select * from tbl_customer;
+----+-----------+----------+------+
| id | firstname | lastname | age |
+----+-----------+----------+------+
| 1 | yamada | taro | 20 |
+----+-----------+----------+------+
1 row in set (0.00 sec)
mysql>
コントローラ
MySQLに接続するコントローラです。
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しているからです。
JSP
次に表示する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の第一引数と合っていればなんでもいいです。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント