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)毁车
炸桥