JSP_5.11_课堂笔记

insert.jsp

<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 通过JDBC向MySQL数据表中增加数据
//1、加载驱动
Class.forName("com.mysql.jdbc.Driver");
/*
2、创建和数据库之前的连接
创建需要借助一个Java类 DriverManager
DriverManager类中有一个方法 getConnection() 通过这个方法就可以实现创建和数据库的连接
获取和数据库的连接需要传递三个参数:
(1)URL:数据库的地址 不同的数据库地址写法不一样的
MySQL: jdbc:mysql://ip:port/dataBaseName?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8
(2)username: 数据库的用户名
(3)password:数据库的密码
*/
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/study?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8", "root", "123456");
//3、准备sql语句
String sql = "insert into user(username,password) values('zs','123456')";
//4、创建小推车
Statement stat = conn.createStatement();
/*
5、小推车带着sql去MySQL执行 返回结果
JDBC执行的SQL语句一般分为两种DML、DQL
如果执行的是DML类型的语句,那么使用Statement的executeUpdate方法执行 方法返回一个int类型的整数值,代表DML语句执行成功数据库表数据受影响的行数
如果执行的是DQL类型的语句,那么使用Statement的executeQuery方法执行 方法返回一个ResultSet结果集,结果集就是我们从MySQL查询回来的数据
*/
int num = stat.executeUpdate(sql);
//6、Java程序中处理结果
if(num >0){
out.print("增加数据成功");
}else{
out.print("增加数据失败");
}
//7、毁车炸桥
stat.close();
conn.close();
%>

delete.jsp

<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 通过JDBC向MySQL数据表中增加数据
//1、加载驱动
Class.forName("com.mysql.jdbc.Driver");
/*
2、创建和数据库之前的连接
创建需要借助一个Java类 DriverManager
DriverManager类中有一个方法 getConnection() 通过这个方法就可以实现创建和数据库的连接
获取和数据库的连接需要传递三个参数:
(1)URL:数据库的地址 不同的数据库地址写法不一样的
MySQL: jdbc:mysql://ip:port/dataBaseName?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8
(2)username: 数据库的用户名
(3)password:数据库的密码
*/
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/study?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8", "root", "123456");
//3、准备sql语句
String sql = "delete from user where user_id=1";
//4、创建小推车
Statement stat = conn.createStatement();
/*
5、小推车带着sql去MySQL执行 返回结果
JDBC执行的SQL语句一般分为两种DML、DQL
如果执行的是DML类型的语句,那么使用Statement的executeUpdate方法执行 方法返回一个int类型的整数值,代表DML语句执行成功数据库表数据受影响的行数
如果执行的是DQL类型的语句,那么使用Statement的executeQuery方法执行 方法返回一个ResultSet结果集,结果集就是我们从MySQL查询回来的数据
*/
int num = stat.executeUpdate(sql);
//6、Java程序中处理结果
if(num >0){
out.print("删除数据成功");
}else{
out.print("删除数据失败");
}
//7、毁车炸桥
stat.close();
conn.close();
%>

update.jsp

<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 通过JDBC向MySQL数据表中增加数据
//1、加载驱动
Class.forName("com.mysql.jdbc.Driver");
/*
2、创建和数据库之前的连接
创建需要借助一个Java类 DriverManager
DriverManager类中有一个方法 getConnection() 通过这个方法就可以实现创建和数据库的连接
获取和数据库的连接需要传递三个参数:
(1)URL:数据库的地址 不同的数据库地址写法不一样的
MySQL: jdbc:mysql://ip:port/dataBaseName?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8
(2)username: 数据库的用户名
(3)password:数据库的密码
*/
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/study?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8", "root", "123456");
//3、准备sql语句
String sql = "update user set password='6543211' where user_id = 2";
//4、创建小推车
Statement stat = conn.createStatement();
/*
5、小推车带着sql去MySQL执行 返回结果
JDBC执行的SQL语句一般分为两种DML、DQL
如果执行的是DML类型的语句,那么使用Statement的executeUpdate方法执行 方法返回一个int类型的整数值,代表DML语句执行成功数据库表数据受影响的行数
如果执行的是DQL类型的语句,那么使用Statement的executeQuery方法执行 方法返回一个ResultSet结果集,结果集就是我们从MySQL查询回来的数据
*/
int num = stat.executeUpdate(sql);
//6、Java程序中处理结果
if(num >0){
out.print("更新数据成功");
}else{
out.print("更新数据失败");
}
//7、毁车炸桥
stat.close();
conn.close();
%>

select.jsp

<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.ResultSet" %>
<%
try {
// 通过JDBC向MySQL数据表中增加数据
//1、加载驱动
Class.forName("com.mysql.jdbc.Driver");
/*
2、创建和数据库之前的连接
创建需要借助一个Java类 DriverManager
DriverManager类中有一个方法 getConnection() 通过这个方法就可以实现创建和数据库的连接
获取和数据库的连接需要传递三个参数:
(1)URL:数据库的地址 不同的数据库地址写法不一样的
MySQL: jdbc:mysql://ip:port/dataBaseName?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8
(2)username: 数据库的用户名
(3)password:数据库的密码
*/
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/study?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8", "root", "123456");
//3、准备sql语句
String sql = "select * from user";
//4、创建小推车
Statement stat = conn.createStatement();
/*
5、小推车带着sql去MySQL执行 返回结果
JDBC执行的SQL语句一般分为两种DML、DQL
如果执行的是DML类型的语句,那么使用Statement的executeUpdate方法执行 方法返回一个int类型的整数值,代表DML语句执行成功数据库表数据受影响的行数
如果执行的是DQL类型的语句,那么使用Statement的executeQuery方法执行 方法返回一个ResultSet结果集,结果集就是我们从MySQL查询回来的数据
*/
ResultSet rs = stat.executeQuery(sql);
//6、Java程序中处理结果
if(rs.next()){
out.println("查询成功");
}else{
out.println("查询失败");
}
//7、毁车炸桥
rs.close();
stat.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
%>

显示效果更好的select.jsp页面

<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.ResultSet" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询结果</title>
</head>
<body>
<table border="1">
<tr>
<th>id</th>
<th>username</th>
<th>password</th>
</tr>
<%
try {
// 连接数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/study?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8", "root", "123456");
// 执行查询操作
String sql = "select * from user";
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(sql);
// 处理查询结果并展示在表格中
while(rs.next()){
out.println("<tr>");
out.println("<td>" + rs.getInt("id") + "</td>");
out.println("<td>" + rs.getString("username") + "</td>");
out.println("<td>" + rs.getString("password") + "</td>");
out.println("</tr>");
}
// 关闭资源
rs.close();
stat.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
%>
</table>
</body>
</html>

5.11笔记

标题一、作业

1、要求创建一个数据库叫做company 数据库支持中文;

create database if not exists company charset “utf8”;

2、在company数据库下创建一个员工employees数据表,员工数据表有如下字段:
employ_id 员工编号 整数类型 自动递增的主键
employ_name 员工的姓名
employ_age 员工的年龄
employ_sex 员工的性别
employ_salary 员工的薪资 小数double
employ_department_id 员工部门编号 整数
use company;

create table if not exists employees(
employ_id int primary key auto_increment,
employ_name varchar(20),
employ_age int,
employ_sex varchar(5),
employ_salary double,
employ_department_id int
);

3、增加数据(自己增加)

insert into employees(employ_name,employ_age,employ_sex,employ_salary,employ_department_id) values(“zs”,20,”man”,1000.0,1);

4、将表中1号部门的所有员工薪资更改为3000.00;

update employees set employ_salary=3000.00 where employ_department_id = 1;

5、删除表中年龄在16岁以下的员工信息

Delete from employees where employ_age <16;

6、查询表中年龄大于30岁并且薪资小于5000的员工信息

Select * from employees where employ_age >30 and employ_salary<5000.00;

7、查询表中每个部门的总人数

Select employ_department_id,count(*) from employees group by employ_department_id;

8、查询表中性别为man的所有员工中薪资最高的员工信息

Select * from employees where employ_sex = “man” order by employees_salary desc limit 1;

9、查询不同部门的平均薪资avg

Select employ_department_id,avg(employ_salary) from employees group by employ_department_id;

10、查询人数最多的前两个部门编号以及部门的人数

Select employ_department_id,count(*) as total from employees group by employ_department_id order by total desc limit 2;

二、 JDBC技术

JDBC技术是Java数据库连接技术,通过JDBC可以实现使用Java程序操作不同的数据库,诸如MySQL、Oracle、SQL Server等等数据库。

1、JDBC操作数据库的步骤(七步曲)
预备条件:引入依赖 操作MySQL数据库的依赖(包工队)
【注意】依赖属于后端的依赖,前端依赖需要放到webapp目录下,后端依赖必须放到webappWEB-INFlib。而且大家还必须注意,前端依赖放到webapp目录下即可引入成功,后端依赖放到lib目录下不算引入成功,还必须进行build path操作才算引入成功。
(1)加载驱动(选址)
(2)创建连接(造桥梁)
(3)在Java中准备一个SQL语句(物资)
(4)创建小推车(根据桥梁来创建)
(5)小推车带着SQL语句去MySQL执行,小推车再带着结果返回到Java程序中
(6)Java程序处理MySQL的返回结果
(7)毁

posted @   qi_fen_zhong  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
1 2 3
4
点击右上角即可分享
微信分享提示