第1关:jdbc基础知识
第2关:jdbc增加数据
任务描述
本关任务:学会使用jdbc向mysql数据库插入数据
1.向staff员工表中插入id为5,名字为:李敏,性别为:女,年龄为:21的数据
数据库相关信息:
数据库名:company
表:staff
staff表数据字典:
列名 | 数据类型 | 备注 |
---|---|---|
id | varchar(20) | 员工编号 |
name | varchar(20) | 员工姓名 |
sex | varchar(20) | 员工性别 |
age | int | 员工年龄 |
相关知识
1. 概念
Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
2.使用jdbc常用的几个步骤
-
导入驱动jar包
-
注册驱动
-
获取数据库连接对象 Connection
-
定义sql
-
获取执行sql语句的对象 Statement
-
执行sql,接受返回结果
-
处理结果
-
释放资源
对应的代码实现:
//1. 导入驱动jar包
//2.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//3.获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root");
//4.定义sql语句
String sql = "update account set balance = 500 where id = 1";
//5.获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//6.执行sql
int count = stmt.executeUpdate(sql);
//7.处理结果
System.out.println(count);
//8.释放资源
stmt.close();
conn.close();
3.使用jdbc向数据库中插入数据示例代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 导入mysql的jar包
// JDBC步骤:
// 1.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("加载驱动成功");
// 2.获取连接
/**
* url:协议+IP+端口+资源
* user:用户名
* password:密码
*/
Connection con = DriverManager.getConnection("jdbc:mysql:///studet?useUnicode=true&characterEncoding=utf8","root","root");
System.out.println("获取连接成功");
// 3.创建会话
Statement sta = con.createStatement();
// 4.发送sql
String sql = "insert into dept values(null,'java',90 )";
int n = sta.executeUpdate(sql);
System.out.println("发送sql成功");
// 5.处理结果
if (n>0){
System.out.println("插入成功");
}else{
System.out.println("插入失败");
}
// 6.关闭数据库资源
sta.close();
con.close();
}
}
编程要求
根据提示,在右侧编辑器补充代码,完成以下任务:
1.向staff员工表中插入id为5,名字为:李敏,性别为:女,年龄为:21的数据
测试说明
平台会对你编写的代码进行测试:
无输入
开始你的任务吧,祝你成功!
package step2;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class AddData {
public void run() throws SQLException, ClassNotFoundException {
// ---------------------Begin------------------------
//获取数据库连接
Connection connection = this.getConnection();
//获取statement对象
Statement statement = connection.createStatement();
//向staff员工表中插入id为5,名字为:李敏,性别为:女,年龄为:21的数据
String sql = "INSERT INTO `company`.`staff` (`id`, `name`, `sex`, `age`) VALUES ('5', '李敏', '女', '21')";
statement.executeUpdate(sql);
//关闭数据库连接,释放资源
statement.close();
connection.close();
// ---------------------End------------------------
}
public Connection getConnection() throws ClassNotFoundException, SQLException {
// ---------------------Begin------------------------
//获取数据库连接,账户名:root,密码:123123, 数据库名:company,MySQL版本为8.0.20
Class.forName("com.mysql.cj.jdbc.Driver");
String username = "root";
String password = "123123";
String url = "jdbc:mysql://localhost:3306/company?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true";
return DriverManager.getConnection(url, username, password);
// ---------------------End------------------------
}
}
第3关:jdbc删除数据
任务描述
本关任务:学会使用jdbc删除数据
1.删除staff员工表中id为4的记录
数据库相关信息:
数据库名:company
表:staff
staff表数据字典:
列名 | 数据类型 | 备注 |
---|---|---|
id | varchar(20) | 员工编号 |
name | varchar(20) | 员工姓名 |
sex | varchar(20) | 员工性别 |
age | int | 员工年龄 |
相关知识
1. 概念
Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
2.使用jdbc常用的几个步骤
-
导入驱动jar包
-
注册驱动
-
获取数据库连接对象 Connection
-
定义sql
-
获取执行sql语句的对象 Statement
-
执行sql,接受返回结果
-
处理结果
-
释放资源
对应的代码实现:
//1. 导入驱动jar包
//2.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//3.获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root");
//4.定义sql语句
String sql = "update account set balance = 500 where id = 1";
//5.获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//6.执行sql
int count = stmt.executeUpdate(sql);
//7.处理结果
System.out.println(count);
//8.释放资源
stmt.close();
conn.close();
3.使用jdbc删除数据示例代码
public static void main(String[] args){
Connection con = null;
Statement sta = null;
try {
// JDBC步骤:
// 1.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("加载驱动成功");
// 2.获取连接
con = DriverManager.getConnection("jdbc:mysql:///studet?useUnicode=true&characterEncoding=utf8","root","root");
System.out.println("获取连接成功");
// 3.创建会话
sta = con.createStatement();
// 4.发送sql
String sql = "delete from dept where salg = 100";
int n = sta.executeUpdate(sql); // 除了查询,增删改都属于修改
System.out.println("发送sql成功");
// 5.处理结果
if (n>0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally{
// 6.关闭数据库资源
try {
if (sta != null){
sta.close();// 避免空指针异常
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (con != null){
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
编程要求
根据提示,在右侧编辑器补充代码,完成以下任务:
1.删除staff员工表中id为4的记录
测试说明
平台会对你编写的代码进行测试:
无输入
开始你的任务吧,祝你成功!
package step3;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DelData {
public void run() throws SQLException, ClassNotFoundException {
// ---------------------Begin------------------------
//获取数据库连接
Connection connection = this.getConnection();
//获取statement对象
Statement statement = connection.createStatement();
//删除staff员工表中id为4的记录
String sql = "delete from staff where id = 4";
statement.executeUpdate(sql);
//关闭数据库连接,释放资源
statement.close();
connection.close();
// ---------------------End------------------------
}
public Connection getConnection() throws ClassNotFoundException, SQLException {
// ---------------------Begin------------------------
//获取数据库连接,账户名:root,密码:123123, 数据库名:company,MySQL版本为8.0.20
Class.forName("com.mysql.cj.jdbc.Driver");
String username = "root";
String password = "123123";
String url = "jdbc:mysql://localhost:3306/company?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true";
return DriverManager.getConnection(url, username, password);
// ---------------------End------------------------
}
}
第4关:jdbc修改数据
任务描述
本关任务:学会使用jdbc修改数据
1.修改staff表中id=3的性别为男
数据库相关信息:
数据库名:company
表:staff
staff表数据字典:
列名 | 数据类型 | 备注 |
---|---|---|
id | varchar(20) | 员工编号 |
name | varchar(20) | 员工姓名 |
sex | varchar(20) | 员工性别 |
age | int | 员工年龄 |
相关知识
1.概念
Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
2.使用jdbc常用的几个步骤
-
导入驱动jar包
-
注册驱动
-
获取数据库连接对象 Connection
-
定义sql
-
获取执行sql语句的对象 Statement
-
执行sql,接受返回结果
-
处理结果
-
释放资源
对应的代码实现:
//1. 导入驱动jar包
//2.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//3.获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root");
//4.定义sql语句
String sql = "update account set balance = 500 where id = 1";
//5.获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//6.执行sql
int count = stmt.executeUpdate(sql);
//7.处理结果
System.out.println(count);
//8.释放资源
stmt.close();
conn.close();
3.使用jdbc修改数据库中的数据
public static void main(String[] args){
Connection con = null;
Statement sta = null;
try {
// JDBC步骤:
// 1.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("加载驱动成功");
// 2.获取连接
con = DriverManager.getConnection("jdbc:mysql:///studet?useUnicode=true&characterEncoding=utf8","root","root");
System.out.println("获取连接成功");
// 3.创建会话
sta = con.createStatement();
// 4.发送sql
String sql = "update dept set dept = 'ios' where id = 1";
int n = sta.executeUpdate(sql); // 除了查询,增删改都属于修改
System.out.println("发送sql成功");
// 5.处理结果
if (n>0){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally{
// 6.关闭数据库资源
try {
if (sta != null){
sta.close();// 避免空指针异常
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (con != null){
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
编程要求
根据提示,在右侧编辑器补充代码,完成以下任务:
1.修改staff表中id=3的性别为男
测试说明
平台会对你编写的代码进行测试:
无输入
开始你的任务吧,祝你成功!
package step4;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class EditData {
public void run() throws SQLException, ClassNotFoundException {
// ---------------------Begin------------------------
//获取数据库连接
Connection connection = this.getConnection();
//获取statement对象
Statement statement = connection.createStatement();
//修改staff表中id=3的性别为男
String sql = "update staff set sex = '男' where id = 3";
statement.executeUpdate(sql);
//关闭数据库连接,释放资源
statement.close();
connection.close();
// ---------------------End------------------------
}
public Connection getConnection() throws ClassNotFoundException, SQLException {
// ---------------------Begin------------------------
//获取数据库连接,账户名:root,密码:123123, 数据库名:company,MySQL版本为8.0.20
Class.forName("com.mysql.cj.jdbc.Driver");
String username = "root";
String password = "123123";
String url = "jdbc:mysql://localhost:3306/company?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true";
return DriverManager.getConnection(url, username, password);
// ---------------------End------------------------
}
}
第5关:jdbc查询数据
任务描述
本关任务:学会使用jdbc查询数据
1.查询staff表中所有数据并将其打印输出
数据库相关信息:
数据库名:company
表:staff
staff表数据字典:
列名 | 数据类型 | 备注 |
---|---|---|
id | varchar(20) | 员工编号 |
name | varchar(20) | 员工姓名 |
sex | varchar(20) | 员工性别 |
age | int | 员工年龄 |
相关知识
1.概念
Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
2.使用jdbc常用的几个步骤
-
导入驱动jar包
-
注册驱动
-
获取数据库连接对象 Connection
-
定义sql
-
获取执行sql语句的对象 Statement
-
执行sql,接受返回结果
-
处理结果
-
释放资源
对应的代码实现:
//1. 导入驱动jar包
//2.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//3.获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root");
//4.定义sql语句
String sql = "update account set balance = 500 where id = 1";
//5.获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//6.执行sql
int count = stmt.executeUpdate(sql);
//7.处理结果
System.out.println(count);
//8.释放资源
stmt.close();
conn.close();
3.使用jdbc查询数据示例代码
package com.runoob.test;
import java.sql.*;
public class MySQLDemo {
// MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";
// MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
//static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
//static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
// 数据库的用户名与密码,需要根据自己的设置
static final String USER = "root";
static final String PASS = "123456";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER);
// 打开链接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
System.out.println(" 实例化Statement对象...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, name, url FROM websites";
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库
while(rs.next()){
// 通过字段检索
int id = rs.getInt("id");
String name = rs.getString("name");
String url = rs.getString("url");
// 输出数据
System.out.print("ID: " + id);
System.out.print(", 站点名称: " + name);
System.out.print(", 站点 URL: " + url);
System.out.print("\n");
}
// 完成后关闭
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}// 什么都不做
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
编程要求
根据提示,在右侧编辑器补充代码,完成以下任务:
1.查询staff表中所有数据并将其打印输出
测试说明
平台会对你编写的代码进行测试:
无输入
开始你的任务吧,祝你成功!
package step5;
import java.sql.*;
public class QuerryData {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
QuerryData querryData = new QuerryData();
// ---------------------Begin------------------------
//获取数据库连接
try{
Connection conn = querryData.getConnection();
//获取statement对象
Statement sta = conn.createStatement();
//遍历输出staff表中的数据
String sql = "SELECT id, name, sex, age from staff";
//"SELECT id, first, last, age FROM student";
ResultSet rs = sta.executeQuery(sql);
while(rs.next()){
// 通过字段检索
int id = rs.getInt("id");
String name = rs.getString("name");
String sex = rs.getString("sex");
String age = rs.getString("age");
// 输出数据
System.out.print(id+",");
System.out.print(name+",");
System.out.print(sex+",");
System.out.println(age);
}
//关闭数据库连接,释放资源
rs.close();
sta.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
}
// ---------------------End------------------------
}
public Connection getConnection() throws ClassNotFoundException, SQLException {
// ---------------------Begin------------------------
//获取数据库连接,账户名:root,密码:123123, 数据库名:company,MySQL版本为8.0.20
Class.forName("com.mysql.cj.jdbc.Driver");
String username = "root";
String password = "123123";
String url = "jdbc:mysql://localhost:3306/company?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true";
return DriverManager.getConnection(url, username, password);
// ---------------------End------------------------
}
}