本系列文章是作者暑假给学生进行实训分享的笔记,主要介绍MyEclipse环境下JSP网站开发,包括JAVA基础、网页布局、数据库基础、Servlet、前端后台数据库交互、DAO等知识。
前一篇文章讲解了MyEclipse环境下创建JSP注册表页面,并通过Servlet获取所提交的数据。这一篇文章将讲解MySQL数据库基本操作,并分享Servlet链接数据库的方法。基础性文章,希望对读者有所帮助 ,尤其是我的学生。

参考前文:
Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门
Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交
Java+MyEclipse+Tomcat (三)配置MySQL及查询数据显示在JSP网页中
Java+MyEclipse+Tomcat (四)Servlet提交表单和数据库操作
Java+MyEclipse+Tomcat (五)DAO和Java Bean实现数据库和界面分开操作
Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作

前文:
[JSP暑假实训] 一.MyEclipse安装及JAVA基础知识
[JSP暑假实训] 二.JSP网站创建及Servlet实现注册表单提交、计算器运算

文章目录

  • 一.配置MySQL
  • 二.MySQL基本操作
  • 三.Navicat for MySQL可视化操作数据库
  • 四.JDBC连接数据库基础
  • 五.Servlet连接显示数据库

一.配置MySQL

首先下载mysql-5.0.96-winx64,安装过程如下图所示。

1.安装MySQL 5.0

2.选择手动配置、服务类型、通用多功能型和安装路径

3.设置数据库访问量连接数为15、端口为3306(代码中设置URL用到)、编码方式为utf-8

4.设置默认超级root用户的用户名和密码,最后安装成功


二.MySQL基本操作

安装MySQL 5.0成功后,进行数据库的简单操作。

1.运行MySQL输入默认用户密码123456,并创建数据库hcp(火车票),使用数据库。

--创建数据库
create database hcp;
--使用数据库
use database hcp;

2.创建表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 DEFAULT CHARSET=utf8;

其中,id为自增整数,并且为主键,其他的包括varchar类型、时间类型、浮点型等。

3.显示表结构,使用语句desc info。

4.向信息表中插入数据并显示查询的数据。

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;” 查询数据,得到如下图所示结果:

此时MySQL操作数据库基本讲解结束,你同样可以实现数据库的增删改查、事务、存储过程等操作,建议安装可视化的软件来替代黑框。


三.Navicat for MySQL可视化操作数据库

1.运行该软件,点击“连接”按钮新建一个连接。

2.在“新建连接”中输入自定义连接名,数据库用户名为“root”,密码“123456”。

3.选中数据库“hcp”,可以对表进行查看、设计、新建、删除、导入、导出等操作。

其中,设计表可以修改表的内容,或者添加新的字段,如下图所示:

双击表,可以查看数据如下所示:

4.选中数据库“hcp”,右键“转储SQL文件”,将整个数据库的内容导出sql文件。

导出的SQL文件内容如下:

/*
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连接数据库基础

为统一并简化Java语言操作各种数据库,Sun公司提供了JDBC框架,用于所有Java应用以统一的方式连接数据库。JDBC(Java DataBase Connectivity,Java数据库连接)通过使用数据库厂家提供的数据库JDBC驱动器类,可以连接到任何流程的数据库上。

1.加载JDBC驱动程序(MySQL驱动)

Class.forName("com.mysql.jdbc.Driver") ;

2.提供JDBC连接的URL

//驱动程序名
String driverName = "com.mysql.jdbc.Driver";
//数据库用户名
String userName = "root";
//密码
String userPasswd = "123456";
//数据库名
String dbName = "hcp";
//表名
String tableName = "info";
//联结字符串
String url = "jdbc:mysql://localhost:3306/" + dbName + "?user="  + userName + "&password=" + userPasswd;

3.创建数据库的连接

Connection connection = DriverManager.getConnection(url);

4.创建一个Statement
要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:

  • 执行静态SQL语句。通常通过Statement实例实现。
  • 执行动态SQL语句。通常通过PreparedStatement实例实现。
  • 执行数据库存储过程。通常通过CallableStatement实例实现。

5.执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute
1).ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。

2).int executeUpdate(String sqlString):用于执行INSERT、UPDATE或DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等。

3).execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。

6.处理结果
两种情况:执行更新返回的是本次操作影响到的记录数、执行查询返回的结果是一个ResultSet对象。

  • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。
  • 使用结果集(ResultSet)对象的访问方法获取数据:
// 此方法比较高效  列是从左到右编号的,并且从列1开始
while(rs.next()){   String name = rs.getString("name") ;   String pass = rs.getString(1) ;
}

7.关闭JDBC对象

//释放连接方法 con ps rs
public static void release(Connection con,Statement ps,ResultSet rs){try{if(rs!=null){ // 关闭记录集rs.close();}if(ps!=null){ // 关闭声明 ps.close();}if(con!=null){ // 关闭连接对象 con.close();}}catch (Exception e) {e.printStackTrace();}
}

五.Servlet连接显示数据库

下面介绍最终Servlet连接本地数据库并显示内容的实验,步骤如下:

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>

此时运行结果如下图所示:

3.在JSP文件中增加JAVA连接数据库的代码,放置<% %>之间,需要注意while循环多次遍历显示 < tr > < td > 布局。
PS:增加 java.sql.* 扩展包

<%@ 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链接数据库的代码 --><%//驱动的名称String driverName = "com.mysql.jdbc.Driver";//数据库用户名密码String userName = "root";String userPwd = "123456";//数据库名字String dbName = "hcp";//表名String tableName = "info";//拼接字符串链接数据库String url = "jdbc:mysql://localhost:3306/" + dbName + "?user="+ userName + "&password=" +userPwd;//链接数据库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><%}//关闭连接re.close();  statement.close();  con.close();  %></table></div></body>
</html>

4.运行结果如下所示。


最近连续十多天给学生们分享暑假实训,JSP网站开发,周末不间断。大周末深夜凌晨办公室备课,为了什么?回想三年来,挺感谢学生们的厚爱的,无以回报,只希望自己能好好分享知识,认真教好每一位学生,将心比心,也望自己博士学成归来,能继续教书育人,感恩家乡和女神。

(By:Eastmount 2019-07-04 深夜1点 http://blog.csdn.net/eastmount/)

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

  1. [JSP暑假实训] 四.MyEclipse+Servlet+JSP实现火车票网站查询、修改、删除操作

    本系列文章是作者暑假给学生进行实训分享的笔记,主要介绍MyEclipse环境下JSP网站开发,包括JAVA基础.网页布局.数据库基础.Servlet.前端后台数据库交互.DAO等知识. 前一篇文章讲解 ...

  2. [JSP暑假实训] 五.MyEclipse+Servlet+JSP实现火车票网站注册操作及登陆验证

    本系列文章是作者暑假给学生进行实训分享的笔记,主要介绍MyEclipse环境下JSP网站开发,包括JAVA基础.网页布局.数据库基础.Servlet.前端后台数据库交互.DAO等知识. 前一篇文章讲解 ...

  3. [JSP暑假实训] 二.JSP网站创建及Servlet实现注册表单提交、计算器运算

    本系列文章是作者暑假给学生进行实训分享的笔记,主要介绍MyEclipse环境下JSP网站开发,包括JAVA基础.网页布局.数据库基础.Servlet.前端后台数据库交互.DAO等知识. 本篇文章开始讲 ...

  4. [JSP暑假实训] 一.MyEclipse安装及JAVA基础知识

    本系列文章是作者暑假给学生进行实训分享的笔记,主要介绍MyEclipse环境下JSP网站开发,包括JAVA基础.网页布局.数据库基础.Servlet.前端后台数据库交互.DAO等知识.非常基础的文章, ...

  5. JSP实习实训管理系统myeclipse开发mysql数据库WEB结构java编程

    一.源码特点   JSP 实习实训管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发. JSP实习实训管理系统my ...

  6. MySQL数据库实训题_实训六 MySql数据库编程练习

    实训六MySql数据库编程练习 一.实训目的 1.掌握Mysql数据库.Navicat  for Mysql等软件的安装配置方法. 2.掌握使用JDBC驱动程序连接MySql数据库的使用方法. 3.掌 ...

  7. 数据库在线实训平台-MySQL篇

    引入:记一次MySQL在线平台的实训过程 写在前面的话:自程序员节重磅来袭,十大数据库掌门尖峰对话,顶级大咖再聚长沙,硬核科技+开源文化+大咖云集共话数字计算新时代 -- 长沙·中国1024程序员节 ...

  8. JSP程序设计实训(一)—— JSP概述

    下一篇:JSP程序设计实训--JSP开发平台与Tomcat服务器 JSP概述 一.学习目的 了解JSP技术的基础理论知识,要求了解JSP的工作原理以及使用JSP开发Web项目的主要方式. 二.Web技 ...

  9. Bootstrap4+MySQL前后端综合实训-Day07-PM【用户信息管理页面——功能展示(分页显示数据、添加用户、批量删除用户、编辑用户信息)、servlet项目代码整理汇总】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 页面展示 分页显示数据 添加用户信息 (单个/批量)删除用户 编辑 ...

最新文章

  1. f150platinum_新款福特F150PLATINUM精英版皮卡超强越野实力展示
  2. swift3.0调用相册
  3. python框架实例_Python之Flask框架项目Demo入门
  4. Java内存溢出和内存泄露后怎么解决
  5. Spring MVC-07循序渐进之验证器 下 (JSR 303验证)
  6. Spring Boot –现代Java应用程序的基础
  7. 逆天了!小米将首发一亿像素手机
  8. 云原生数据中台的 What、Why、Who、How和Where
  9. RDP报表工具2.4.2版本
  10. 导航网站合集 | 你想要的资源它都有
  11. Standford Moss。图形用户页面接口,代码查重
  12. Postman保存二进制流数据
  13. 资本资产定价模型CAPM
  14. 商学院学习笔记(2)
  15. Linux中nvme驱动详解
  16. SGD的几种优化加速模型动态图形显示
  17. 一加手机可以刷鸿蒙系统吗,朋友想把1+手机安装鸿蒙系统,老板收费350,大家千万别被骗了!...
  18. 搜狗浏览器的高速模式果然很流畅
  19. 树莓派3B+摄像头使用picamera库
  20. c语言汇编语言在线转换,如何把汇编语言转换成C语言

热门文章

  1. 零基础学Python(第十五章 日期时间datetime、time、Calendar)
  2. oracle10g11g日志alter文件位置
  3. 创建Goldengate例外句丙记录跟踪Oracle错误
  4. cmd的rd命令简单解析
  5. python库(2)—— threading
  6. ExtJS:鼠标移出菜单后菜单自动隐藏
  7. Sql Server日期格式的转换收集
  8. python 迭代详解_详解python中的迭代
  9. C语言简单题-找最大的字符串
  10. 课程设计---约瑟夫环