【JDBC 連線練習】
以下是運動中心的使用記錄
USE_RECORD (使用記錄)
USER_ID (使用者編號) | USE_DATE_START (使用開始日) | USE_TIME_START (使用開始時間) | USE_DATE_END (使用結束日) | USE_TIME_END (使用結束時間) | USE_PLACE (使用地方) |
2013000005 | 20131102 | 130300 | 20131102 | 140000 | 1 |
2013000002 | 20131102 | 103000 | 20131102 | 162400 | 1 |
2013000002 | 20131102 | 182400 | 20131102 | 203000 | 1 |
2013000002 | 20131102 | 230130 | 20131103 | 033030 | 3 |
2013000003 | 20131101 | 090100 | 20131101 | 100600 | 1 |
2013000003 | 20131102 | 152000 | 20131102 | 202400 | 3 |
2013000003 | 20131102 | 100000 | 20131103 | 010000 | 2 |
2013000001 | 20131101 | 080500 | 20131101 | 121000 | 1 |
JSP 畫面
編號 | 使用開始日 | 使用開始時間 | 使用結束日 | 使用結束時間 | 使用地方 |
2013000001 | 20131101 | 080500 | 20131101 | 121000 | 第1區 |
2013/11/02 曾經在運動中心運動的有哪些人 ?
開發環境:
MySQL Workbench MySQL Server
Tomcat 7 AP server
開發工具:
使用 JSTL 來簡化JSP
使用 Maven 來管理 library
使用 quickstart 的方式建立 webapp project
參照: http://www.tutorialspoint.com/jsp/jsp_database_access.htm
使用 MySQL 建立相關資料
-- MySQL 語法
CREATE TABLE IF NOT EXISTS `USE_RECORD` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`USER_ID` varchar(11) NOT NULL,
`USE_DATE_START` varchar(10) NOT NULL,
`USE_TIME_START` varchar(10) NOT NULL,
`USE_DATE_END` varchar(10) NOT NULL,
`USE_TIME_END` varchar(10) NOT NULL,
`USE_PLACE` varchar(2) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
INSERT INTO `USE_RECORD` (`USER_ID`, `USE_DATE_START`, `USE_TIME_START`,`USE_DATE_END`,`USE_TIME_END`,`USE_PLACE`) VALUES
('2013000005', '20131102', '130300','20131102','140000','1'),
('2013000002', '20131102', '103000','20131102','162400','3'),
('2013000002', '20131102', '182400','20131102','203000','2'),
('2013000002', '20131102', '230130','20131103','033030','1'),
('2013000003', '20131101', '090100','20131101','100600','2'),
('2013000003', '20131102', '152000','20131102','202400','1'),
('2013000003', '20131102', '100000','20131103','010000','2'),
('2013000001', '20131101', '080500','20131101','121000','1');
SELECT * FROM `USE_RECORD`;
SELECT * FROM `USE_RECORD`
WHERE `USE_DATE_START` = '20131102';
Maven 的 pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>JDBC_easy1</groupId>
<artifactId>exam</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>jdbc_easy1</name>
<url>http://maven.apache.org</url>
<dependencies>
<!-- 引入 commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging-api</artifactId>
<version>1.1</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 使用 jstl 用 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- servlet 用 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<!-- jsp 用 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<!-- 引入 JDBC connector-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>
<build>
<finalName>JDBC_easy1</finalName>
</build>
</project>
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Archetype Created Web Application</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
主要頁面Index.jsp
<%@ page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<html>
<head>JDBC easy1</head>
<!--
Reference http://www.tutorialspoint.com/jsp/jsp_database_access.htm
-->
<body>
<sql:setDataSource var="mysql_ds" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
user="test" password="test" />
<sql:query var="result" dataSource="${mysql_ds}">
SELECT * FROM `USE_RECORD`
WHERE `USE_DATE_START` = '20131102';
</sql:query>
<table border="1" width="100%">
<tr>
<th>編號</th>
<th>使用開始日</th>
<th>使用開始時間</th>
<th>使用結束日</th>
<th>使用結束時間</th>
<th>使用地方</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
<td><c:out value="${row.USER_ID}" /></td>
<td><c:out value="${row.USE_DATE_START}" /></td>
<td><c:out value="${row.USE_TIME_START}" /></td>
<td><c:out value="${row.USE_DATE_END}" /></td>
<td><c:out value="${row.USE_TIME_END}" /></td>
<td><c:out value="${row.USE_PLACE}" /></td>
</tr>
</c:forEach>
</table>
</body>
</html>
Jsp 中使用了 JSTL 的 sql 標籤 及 c 標籤
使用時記得在頁面開頭引用
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
好讓 jsp 認得該標籤,並於開頭加入
<%@ page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
指定該jsp 檔案所使用的文字編碼
其中 <sql:setDataSource var="mysql_ds" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
user="test" password="test" />
用法
可參照:http://www.apekshit.com/t/204/JSTL-SQL-SetDataSource-Example
簡單說明標籤的四個屬性
1. driver Attribute: 指定 jdbc所使用 driver 如 com.mysql.jdbc.Driver
2. url Attribute: 指定 dataBase 的連線路徑
3. var Attribute:指定一個變數名稱給該設定好的 dataSource
4. user Attribute: 登入dataBase 的使用者帳號
5. password Attribute: 登入dataBase 的使用者密碼
其中 <sql:query var="result" dataSource="${mysql_ds}"> 用法
可參照:http://www.apekshit.com/t/205/JSTL-SQL-Query-Tag-Example
三種屬性
1. datasource Attribute: 之前所指定的 dataSource 變數名稱
2. sql Attribute: 指定要執行之 sql 語法
3. var Attribute: 指定該結果集的變數名稱
其中 <c:forEach var="row" items="${result.rows}">用法
可參照:http://www.apekshit.com/t/89/JSTL-forEach-Tag
程式原始碼下載:http://goo.gl/EHXQvp
初学者的好消息。谢谢。
回覆刪除了解jdbc