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 @ 2023-05-13 17:03  qi_fen_zhong  阅读(22)  评论(0编辑  收藏  举报
1 2 3
4