日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

[JSP暑假实训] 三.MySQL数据库基本操作及Servlet网站连接显示数据库信息

發(fā)布時間:2024/6/1 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [JSP暑假实训] 三.MySQL数据库基本操作及Servlet网站连接显示数据库信息 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本系列文章是作者暑假給學(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ù):
// 此方法比較高效 列是從左到右編號的,并且從列1開始 while(rs.next()){ String name = rs.getString("name") ; String pass = rs.getString(1) ; }

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ò)展包

<%@ page language="java" import="java.util.*,java.sql.*" 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><!-- 添加JAVA鏈接數(shù)據(jù)庫的代碼 --><%//驅(qū)動的名稱String driverName = "com.mysql.jdbc.Driver";//數(shù)據(jù)庫用戶名密碼String userName = "root";String userPwd = "123456";//數(shù)據(jù)庫名字String dbName = "hcp";//表名String tableName = "info";//拼接字符串鏈接數(shù)據(jù)庫String url = "jdbc:mysql://localhost:3306/" + dbName + "?user="+ userName + "&password=" +userPwd;//鏈接數(shù)據(jù)庫Class.forName("com.mysql.jdbc.Driver").newInstance();//SQL查詢ResultSet re;Connection con = DriverManager.getConnection(url);Statement statement = con.createStatement();String sql = "select * from " + tableName;System.out.println(sql);re = statement.executeQuery(sql);%><table border="2" width="80%"><tr><td>序號</td><td>起始地</td><td>目的地</td><td>車次</td><td>時間</td><td>價格</td><td>備注</td></tr><%while (re.next()) {%><tr><td><% out.print(re.getString(1)); %></td><td><% out.print(re.getString(2)); %></td><td><% out.print(re.getString(3)); %></td><td><% out.print(re.getString(4)); %></td><td><% out.print(re.getString(5)); %></td><td><% out.print(re.getString(6)); %></td><td><% out.print(re.getString(7)); %></td></tr><%}//關(guān)閉連接re.close(); statement.close(); con.close(); %></table></div></body> </html>

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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。