【JDBC 連線練習 normal】
以下是運動中心的使用記錄
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 曾經在運動中心運動的有哪些人 ? 改為使用 java.sql.PreparedStatement,並且對於傳入SQL的參數使用”?”
開發環境:
MySQL Workbench MySQL Server
開發工具:
使用 JSTL 來簡化JSP
使用 Maven 來管理 library
使用 quickstart 的方式建立 webapp project
使用 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_normal_1</groupId>
<artifactId>exam</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>JDBC_normal_1</</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_normal_1</</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 import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","test","test");
StringBuffer sb = new StringBuffer();
sb.append("SELECT * FROM USE_RECORD ");
sb.append("WHERE USE_DATE_START = ? ");
ps = conn.prepareStatement(sb.toString());
ps.setString(1,"20131102");
rs = ps.executeQuery();
}catch(Exception ex){
ex.printStackTrace();
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
</head>
<body>
<h2>JDBC_normal_1</h2>
<% if(null != rs){ %>
<table border="1" width="100%">
<tr>
<th>編號</th>
<th>使用開始日</th>
<th>使用開始時間</th>
<th>使用結束日</th>
<th>使用結束時間</th>
<th>使用地方</th>
</tr>
<% while (rs.next()){ %>
<tr>
<td><%=rs.getString("USER_ID") %></td>
<td><%=rs.getString("USE_DATE_START") %></td>
<td><%=rs.getString("USE_TIME_START") %></td>
<td><%=rs.getString("USE_DATE_END") %></td>
<td><%=rs.getString("USE_TIME_END") %></td>
<td>第 <%=rs.getString("USE_PLACE") %> 區</td>
</tr>
<% } %>
</table>
<% }else{ %>
<h2>查無資料</h2>
<% }
if(null != ps){
ps.close();
}
if(null != conn){
conn = null;
}
%>
</body>
</html>
於開頭加入
<%@ page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
指定該jsp 檔案所使用的文字編碼
在jsp當中引入四個準備的用的類別
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
並於程式中使用下列程式段載入 mysql 的 jdbc driver
Class.forName("com.mysql.jdbc.Driver");
接著使用
DriverManager.getConnection("jdbc:mysql://localhost:3306/test","test","test");
來建立 Connection
StringBuffer sb = new StringBuffer();
sb.append("SELECT * FROM USE_RECORD ");
sb.append("WHERE USE_DATE_START = ? ");
ps = conn.prepareStatement(sb.toString());
ps.setString(1,"20131102");
rs = ps.executeQuery();
整個程式由上列程式碼完成對資料庫的資料查詢
最後使用
<% while (rs.next()){ %>
<tr>
<td><%=rs.getString("USER_ID") %></td>
<td><%=rs.getString("USE_DATE_START") %></td>
<td><%=rs.getString("USE_TIME_START") %></td>
<td><%=rs.getString("USE_DATE_END") %></td>
<td><%=rs.getString("USE_TIME_END") %></td>
<td>第 <%=rs.getString("USE_PLACE") %> 區</td>
</tr>
<% } %>
將相關資訊列印出來
程式原始碼下載:http://goo.gl/c4sJlN
沒有留言 :
張貼留言