首页 > 其他分享 >JSP_5.11_课堂笔记

JSP_5.11_课堂笔记

时间:2023-05-13 17:12:16浏览次数:42  
标签:employees employ 5.11 JSP department close 课堂 id out

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)毁

标签:employees,employ,5.11,JSP,department,close,课堂,id,out
From: https://www.cnblogs.com/ningbaby/p/17397715.html

相关文章

  • 编程一小时2023.5.11
    1.#include<iostream>#include<cstring>#include<algorithm>#include<set>usingnamespacestd;constintN=1010;intt,n;inta[N],b[N];set<int>st;intg[N][N];intmain(){scanf("%d",&t);while(t--......
  • 5.11
    代码行数:200h学习内容:今天我学习了概率论之前拉下的课程,我学习了方差标准差等收获很多,又看了计算机网络的课遇到问题:我发现自己学习效率很慢,很贪玩,我要注意这一问题今天最难受就是体育课篮球比赛我输了,输球跟我关系很大,最后时刻快攻空蓝不进,没了绝杀球,很难受,落后一分学习计划:......
  • 农村高中生源转型期提升学生二次函数建模能力的课堂探究
         农村高中是处于国内各乡镇地区的普通全日制高级中学,属于农村教育的“终极”阶段。从农村高中所处的区位条件来讲,当下国内城镇化进程不断加快,农村高中生源呈现为逐年递减的全新变化形势,同时面临着新课标下数学核心素养培养的新要求与任务。然而,以往农村高中数学教学......
  • 5.11
    一.问题描述pta多态实验:1.定义一个整数加法器类Adder,对其重载运算符“+”、“++”,main(void)函数完成对其的测试。#include<iostream>usingnamespacestd;/*请在这里填写答案*///主函数intmain(void){intx;Addera1,a2(a1);cin>>x;(a1++).show()......
  • day70(2023.5.11)
    1.计算机网络通信 2.TCP/IP协议群 3.TCP协议传输特点 4.服务端口 5.数据包与处理流程 6.HTTP协议简介 7.HTTP协议特点 8.HTTP协议发展和版本     9.HTTP协议中URI、URL、URN10.HTTP协议的......
  • 5.11打卡
     二、思路设计 三、代码实现#include<bits/stdc++.h>usingnamespacestd;#defineTAXBASE3500;typedefstruct{longstart;longend;doubletaxrate;}TAXTABLE;TAXTABLETaxTable[]={{0,1500,0.03},{1500,4500,0.10},{4500,9000,0.20}......
  • 2023.5.11
    1//例6-162#include<iostream>3usingnamespacestd;4classPoint5{6public:7Point():x(0),y(0)8{9cout<<"DefaultConstructorcalled."<<endl;10}11Point(intx,inty):x(x),y......
  • 2023.5.11 再上车 春天开始落叶
    「AGC039E」PairingPoints在\(n>1\)时,有一个很好的性质:一条边至少要与一条边相交,不然就会有不止一个连通块。考虑圆上\(1\)号点的连边将圆分割成了两半,有两种情况:所有边均为二部间的连边,这是简单处理的。一条边跨越二部,剩下的边均是内部的边。(如果不止一条,则会连出环......
  • 2023.5.11
    python大作业    ......
  • 5.11每日总结
    今天学习了nextInt、nextFloat、nextDoublenext():用于读取String字符串数组,以空格划分(只读取输入直到空格),在读取后将光标指向本行nextLine():用于读取String字符串数组,读取包括单词之间的空格和除回车以外的所有符号,在读取后将光标指向下一行publicstaticvoidmain(String[]arg......