SpringMVCでMySQLに接続する
SpringMVCでMySQLに接続するにはspring-jdbcとmysql-connector-javaが必要です。
なのでpom.xmlに以下を追加します。
1 2 3 4 5 6 7 8 9 10 |
<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>の設定を行います。
1 2 3 4 5 6 7 8 9 10 |
<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件のみです。
1 2 3 4 5 6 7 8 9 |
mysql> select * from tbl_customer; +----+-----------+----------+------+ | id | firstname | lastname | age | +----+-----------+----------+------+ | 1 | yamada | taro | 20 | +----+-----------+----------+------+ 1 row in set (0.00 sec) mysql> |
MySQLに接続するコントローラです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
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です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<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の大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^