[JSP暑假实训] 三.MySQL数据库基本操作及Servlet网站连接显示数据库信息
本系列文章是作者暑假給學(xué)生進(jìn)行實(shí)訓(xùn)分享的筆記,主要介紹MyEclipse環(huán)境下JSP網(wǎng)站開發(fā),包括JAVA基礎(chǔ)、網(wǎng)頁布局、數(shù)據(jù)庫基礎(chǔ)、Servlet、前端后臺數(shù)據(jù)庫交互、DAO等知識。
前一篇文章講解了MyEclipse環(huán)境下創(chuàng)建JSP注冊表頁面,并通過Servlet獲取所提交的數(shù)據(jù)。這一篇文章將講解MySQL數(shù)據(jù)庫基本操作,并分享Servlet鏈接數(shù)據(jù)庫的方法。基礎(chǔ)性文章,希望對讀者有所幫助 ,尤其是我的學(xué)生。
參考前文:
Java+MyEclipse+Tomcat (一)配置過程及jsp網(wǎng)站開發(fā)入門
Java+MyEclipse+Tomcat (二)配置Servlet及簡單實(shí)現(xiàn)表單提交
Java+MyEclipse+Tomcat (三)配置MySQL及查詢數(shù)據(jù)顯示在JSP網(wǎng)頁中
Java+MyEclipse+Tomcat (四)Servlet提交表單和數(shù)據(jù)庫操作
Java+MyEclipse+Tomcat (五)DAO和Java Bean實(shí)現(xiàn)數(shù)據(jù)庫和界面分開操作
Java+MyEclipse+Tomcat (六)詳解Servlet和DAO數(shù)據(jù)庫增刪改查操作
前文:
[JSP暑假實(shí)訓(xùn)] 一.MyEclipse安裝及JAVA基礎(chǔ)知識
[JSP暑假實(shí)訓(xùn)] 二.JSP網(wǎng)站創(chuàng)建及Servlet實(shí)現(xiàn)注冊表單提交、計算器運(yùn)算
文章目錄
- 一.配置MySQL
- 二.MySQL基本操作
- 三.Navicat for MySQL可視化操作數(shù)據(jù)庫
- 四.JDBC連接數(shù)據(jù)庫基礎(chǔ)
- 五.Servlet連接顯示數(shù)據(jù)庫
一.配置MySQL
首先下載mysql-5.0.96-winx64,安裝過程如下圖所示。
1.安裝MySQL 5.0
2.選擇手動配置、服務(wù)類型、通用多功能型和安裝路徑
3.設(shè)置數(shù)據(jù)庫訪問量連接數(shù)為15、端口為3306(代碼中設(shè)置URL用到)、編碼方式為utf-8
4.設(shè)置默認(rèn)超級root用戶的用戶名和密碼,最后安裝成功
二.MySQL基本操作
安裝MySQL 5.0成功后,進(jìn)行數(shù)據(jù)庫的簡單操作。
1.運(yùn)行MySQL輸入默認(rèn)用戶密碼123456,并創(chuàng)建數(shù)據(jù)庫hcp(火車票),使用數(shù)據(jù)庫。
--創(chuàng)建數(shù)據(jù)庫 create database hcp; --使用數(shù)據(jù)庫 use database hcp;2.創(chuàng)建表info(詳情表),包括序號、起始地、目的地、車次、出發(fā)時間、價格、備注。
CREATE TABLE `info` (`id` int(11) NOT NULL auto_increment,`start` varchar(40) default NULL,`end` varchar(40) default NULL,`name` varchar(40) default NULL,`starttime` datetime default NULL,`price` float default NULL,`otuer` varchar(100) default NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;其中,id為自增整數(shù),并且為主鍵,其他的包括varchar類型、時間類型、浮點(diǎn)型等。
3.顯示表結(jié)構(gòu),使用語句desc info。
4.向信息表中插入數(shù)據(jù)并顯示查詢的數(shù)據(jù)。
INSERT INTO `info` VALUES ('1', 'guiyang', 'kunming', 'T61', '2019-06-29 12:00:00', '56', NULL); INSERT INTO `info` VALUES ('2', 'guiyang', 'kaili', 'T88', '2019-06-29 12:00:00', '26', NULL); INSERT INTO `info` VALUES ('3', '貴陽', '西安', 'T98', '2019-07-04 12:00:00', '126', NULL); INSERT INTO `info` VALUES ('4', '貴陽', '武漢', 'T34', '2019-07-04 12:00:00', '86', NULL); INSERT INTO `info` VALUES ('5', '貴定', '西安', 'T51', '2019-07-04 12:00:00', '134', NULL); INSERT INTO `info` VALUES ('6', '昆明', '武漢', 'T21', '2019-06-29 12:00:00', '123', NULL);通過 “select * from info;” 查詢數(shù)據(jù),得到如下圖所示結(jié)果:
此時MySQL操作數(shù)據(jù)庫基本講解結(jié)束,你同樣可以實(shí)現(xiàn)數(shù)據(jù)庫的增刪改查、事務(wù)、存儲過程等操作,建議安裝可視化的軟件來替代黑框。
三.Navicat for MySQL可視化操作數(shù)據(jù)庫
1.運(yùn)行該軟件,點(diǎn)擊“連接”按鈕新建一個連接。
2.在“新建連接”中輸入自定義連接名,數(shù)據(jù)庫用戶名為“root”,密碼“123456”。
3.選中數(shù)據(jù)庫“hcp”,可以對表進(jìn)行查看、設(shè)計、新建、刪除、導(dǎo)入、導(dǎo)出等操作。
其中,設(shè)計表可以修改表的內(nèi)容,或者添加新的字段,如下圖所示:
雙擊表,可以查看數(shù)據(jù)如下所示:
4.選中數(shù)據(jù)庫“hcp”,右鍵“轉(zhuǎn)儲SQL文件”,將整個數(shù)據(jù)庫的內(nèi)容導(dǎo)出sql文件。
導(dǎo)出的SQL文件內(nèi)容如下:
/* Navicat MySQL Data TransferSource Server : 20190704 Source Server Version : 50622 Source Host : localhost:3306 Source Database : hcpTarget Server Type : MYSQL Target Server Version : 50622 File Encoding : 65001Date: 2019-07-04 23:51:16 */SET FOREIGN_KEY_CHECKS=0;-- ---------------------------- -- Table structure for `info` -- ---------------------------- DROP TABLE IF EXISTS `info`; CREATE TABLE `info` (`id` int(11) NOT NULL AUTO_INCREMENT,`start` varchar(40) DEFAULT NULL,`end` varchar(40) DEFAULT NULL,`name` varchar(40) DEFAULT NULL,`starttime` datetime DEFAULT NULL,`price` float DEFAULT NULL,`otuer` varchar(100) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;-- ---------------------------- -- Records of info -- ---------------------------- INSERT INTO `info` VALUES ('1', 'guiyang', 'kunming', 'T61', '2019-06-29 12:00:00', '56', null); INSERT INTO `info` VALUES ('2', 'guiyang', 'kaili', 'T88', '2019-06-29 12:00:00', '26', null); INSERT INTO `info` VALUES ('3', '貴陽', '西安', 'T98', '2019-07-04 12:00:00', '126', null); INSERT INTO `info` VALUES ('4', '貴陽', '武漢', 'T34', '2019-07-04 12:00:00', '86', null); INSERT INTO `info` VALUES ('5', '貴定', '西安', 'T51', '2019-07-04 12:00:00', '134', null); INSERT INTO `info` VALUES ('6', '昆明', '武漢', 'T21', '2019-06-29 12:00:00', '123', null);四.JDBC連接數(shù)據(jù)庫基礎(chǔ)
為統(tǒng)一并簡化Java語言操作各種數(shù)據(jù)庫,Sun公司提供了JDBC框架,用于所有Java應(yīng)用以統(tǒng)一的方式連接數(shù)據(jù)庫。JDBC(Java DataBase Connectivity,Java數(shù)據(jù)庫連接)通過使用數(shù)據(jù)庫廠家提供的數(shù)據(jù)庫JDBC驅(qū)動器類,可以連接到任何流程的數(shù)據(jù)庫上。
1.加載JDBC驅(qū)動程序(MySQL驅(qū)動)
Class.forName("com.mysql.jdbc.Driver") ;2.提供JDBC連接的URL
//驅(qū)動程序名 String driverName = "com.mysql.jdbc.Driver"; //數(shù)據(jù)庫用戶名 String userName = "root"; //密碼 String userPasswd = "123456"; //數(shù)據(jù)庫名 String dbName = "hcp"; //表名 String tableName = "info"; //聯(lián)結(jié)字符串 String url = "jdbc:mysql://localhost:3306/" + dbName + "?user=" + userName + "&password=" + userPasswd;3.創(chuàng)建數(shù)據(jù)庫的連接
Connection connection = DriverManager.getConnection(url);4.創(chuàng)建一個Statement
要執(zhí)行SQL語句,必須獲得java.sql.Statement實(shí)例,Statement實(shí)例分為以下3種類型:
- 執(zhí)行靜態(tài)SQL語句。通常通過Statement實(shí)例實(shí)現(xiàn)。
- 執(zhí)行動態(tài)SQL語句。通常通過PreparedStatement實(shí)例實(shí)現(xiàn)。
- 執(zhí)行數(shù)據(jù)庫存儲過程。通常通過CallableStatement實(shí)例實(shí)現(xiàn)。
5.執(zhí)行SQL語句
Statement接口提供了三種執(zhí)行SQL語句的方法:executeQuery 、executeUpdate和execute
1).ResultSet executeQuery(String sqlString):執(zhí)行查詢數(shù)據(jù)庫的SQL語句,返回一個結(jié)果集(ResultSet)對象。
2).int executeUpdate(String sqlString):用于執(zhí)行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等。
3).execute(sqlString):用于執(zhí)行返回多個結(jié)果集、多個更新計數(shù)或二者組合的語句。
6.處理結(jié)果
兩種情況:執(zhí)行更新返回的是本次操作影響到的記錄數(shù)、執(zhí)行查詢返回的結(jié)果是一個ResultSet對象。
- ResultSet包含符合SQL語句中條件的所有行,并且它通過一套get方法提供了對這些行中數(shù)據(jù)的訪問。
- 使用結(jié)果集(ResultSet)對象的訪問方法獲取數(shù)據(jù):
7.關(guān)閉JDBC對象
//釋放連接方法 con ps rs public static void release(Connection con,Statement ps,ResultSet rs){try{if(rs!=null){ // 關(guān)閉記錄集rs.close();}if(ps!=null){ // 關(guān)閉聲明 ps.close();}if(con!=null){ // 關(guān)閉連接對象 con.close();}}catch (Exception e) {e.printStackTrace();} }五.Servlet連接顯示數(shù)據(jù)庫
下面介紹最終Servlet連接本地數(shù)據(jù)庫并顯示內(nèi)容的實(shí)驗(yàn),步驟如下:
1.新建“test0704_web”工程,其文件夾如下圖所示。
2.修改“index.jsp”代碼如下所示:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><div align="center"><img src="imgs/bg.jpg" height="200" width="80%" /><br /><hr width="80%" color="red" size="3" /><h2>火車票查詢</h2><table border="2" width="80%"><tr><td>序號</td><td>起始地</td><td>目的地</td><td>車次</td><td>時間</td><td>價格</td><td>備注</td></tr></table></div></body> </html>此時運(yùn)行結(jié)果如下圖所示:
3.在JSP文件中增加JAVA連接數(shù)據(jù)庫的代碼,放置<% %>之間,需要注意while循環(huán)多次遍歷顯示 < tr > < td > 布局。
PS:增加 java.sql.* 擴(kuò)展包
4.運(yùn)行結(jié)果如下所示。
最近連續(xù)十多天給學(xué)生們分享暑假實(shí)訓(xùn),JSP網(wǎng)站開發(fā),周末不間斷。大周末深夜凌晨辦公室備課,為了什么?回想三年來,挺感謝學(xué)生們的厚愛的,無以回報,只希望自己能好好分享知識,認(rèn)真教好每一位學(xué)生,將心比心,也望自己博士學(xué)成歸來,能繼續(xù)教書育人,感恩家鄉(xiāng)和女神。
(By:Eastmount 2019-07-04 深夜1點(diǎn) http://blog.csdn.net/eastmount/)
總結(jié)
以上是生活随笔為你收集整理的[JSP暑假实训] 三.MySQL数据库基本操作及Servlet网站连接显示数据库信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [JSP暑假实训] 二.JSP网站创建及
- 下一篇: linux cmake编译源码,linu