一、JDBC 查询数据
编程要求
根据提示,在右侧编辑器编写代码,在queryDB方法中完成s表数据的查询,并按照输出格式进行输出(标题和数据之间使用“\t”分隔符进行分隔)。
原始S表结构如下所示:
sno sname status city
S1 精益 20 天津
S2 盛锡 10 北京
S3 东方红 30 北京
S4 丰泰盛 20 天津
S5 为民 30 上海
package step1;
import java.sql.*;
public class Query {
public static void queryDB() {
// 声明变量
Connection conn = null;
Statement stat = null;
ResultSet rs = null;
// "root"和"123123"是针对MySQL设置了用户名(root)和密码(123123)
String username = "root";
String password = "123123";
// 127.0.0.1:3306是mysql服务器地址及端口 数据库编码格式设置为utf-8
String url = "jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8";
try {
/********* Begin *********/
// 1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.建立数据库连接
conn = DriverManager.getConnection(url, username, password);
// 3.定义sql
String sql="select * from s";
// 4.建立statement对象
stat = conn.createStatement();
// 5.查询数据,输出结果
rs = stat.executeQuery(sql);
System.out.println("sno sname status city");
while (rs.next()){
System.out.print(rs.getString("sno")+" ");
System.out.print(rs.getString("sname")+" ");
System.out.print(rs.getString("status")+" ");
System.out.println(rs.getString("city"));
}
/********* End *********/
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stat != null) {
stat.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
二、JDBC 插入数据
编程要求
根据提示,在右侧编辑器编写代码,在insertDB方法中向s表插入数据。
插入数据为: ('S6','泰鑫',10,'十堰')。
插入成功显示:插入成功!
插入失败显示:插入失败!
插入数据后,评测系统会自动查询并显示s表数据,你无需处理查询数据表操作。
原始S表结构如下所示:
sno sname status city
S1 精益 20 天津
S2 盛锡 10 北京
S3 东方红 30 北京
S4 丰泰盛 20 天津
S5 为民 30 上海
package step1;
import java.sql.*;
public class Insert {
public static void insertDB() {
// 声明变量
Connection conn = null;
Statement stat = null;
// "root"和"123123"是针对MySQL设置了用户名(root)和密码(123123)
String username = "root";
String password = "123123";
// 127.0.0.1:3306是mysql服务器地址及端口 数据库编码格式设置为utf-8
String url = "jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8";
try {
/********* Begin *********/
// 1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.建立数据库连接
conn = DriverManager.getConnection(url, username, password);
// 3.建立statement对象
stat=conn.createStatement();
// 4.定义SQL
String sql = "INSERT INTO s VALUES('S6','泰鑫',10,'十堰')";
// 6.处理结果
int n=stat.executeUpdate(sql);
if(n>0){
System.out.println("插入成功!");
}else{
System.out.println("插入失败!");
}
/********* End *********/
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (stat != null) {
stat.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
三、JDBC 更新数据
编程要求
根据提示,在右侧编辑器编写代码,在updateDB方法中更新s表中S5的数据。
更新后数据为: ('S5','东风',40,'十堰')。
更新成功显示:更新成功!
更新失败显示:更新失败!
更新数据后,评测系统会自动查询并显示s表数据,你无需处理查询数据表操作。
原始S表结构如下所示:
sno sname status city
S1 精益 20 天津
S2 盛锡 10 北京
S3 东方红 30 北京
S4 丰泰盛 20 天津
S5 为民 30 上海
package step1;
import java.sql.*;
public class Update {
public static void updateDB() {
// 声明变量
Connection conn = null;
Statement stat = null;
// "root"和"123123"是针对MySQL设置了用户名(root)和密码(123123)
String username = "root";
String password = "123123";
// 127.0.0.1:3306是mysql服务器地址及端口 数据库编码格式设置为utf-8
String url = "jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8";
try {
/********* Begin *********/
// 1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.建立数据库连接
conn = DriverManager.getConnection(url, username, password);
// 3.定义SQL
String sql="UPDATE s SET sname='东风',status='40',city='十堰' WHERE sno='S5'";
// 4.建立statement对象
stat=conn.createStatement();
// 5.执行SQL
int n=stat.executeUpdate(sql);
// 6.处理结果
if(n>0){
System.out.println("更新成功!");
}else{
System.out.println("更新失败!");
}
/********* End *********/
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (stat != null) {
stat.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
四、JDBC 删除数据
编程要求
根据提示,在右侧编辑器编写代码,在deleteDB方法中删除s表中S5的数据。
删除成功显示:删除成功!
删除失败显示:删除失败!
删除数据后,评测系统会自动查询并显示s表数据,你无需处理查询数据表操作。
原始S表结构如下所示:
sno sname status city
S1 精益 20 天津
S2 盛锡 10 北京
S3 东方红 30 北京
S4 丰泰盛 20 天津
S5 为民 30 上海
package step1;
import java.sql.*;
public class Delete {
public static void deleteDB() {
// 声明变量
Connection conn = null;
Statement stat = null;
// "root"和"123123"是针对MySQL设置了用户名(root)和密码(123123)
String username = "root";
String password = "123123";
// 127.0.0.1:3306是mysql服务器地址及端口 数据库编码格式设置为utf-8
String url = "jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8";
try {
/********* Begin *********/
// 1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.建立数据库连接
conn = DriverManager.getConnection(url, username, password);
// 3.定义SQL
String sql="delete from s where sno='S5'";
// 4.建立statement对象
stat=conn.createStatement();
// 5.执行SQL
int n = stat.executeUpdate(sql);
// 6.处理结果
if(n>0){
System.out.println("删除成功!");
}else{
System.out.println("删除失败!");
}
/********* End *********/
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (stat != null) {
stat.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
五、JDBC 条件查询
编程要求
根据提示,在右侧编辑器编写代码,在queryDB方法中完成指定供应商信息的查询(带条件查询),并按照输出格式进行输出(标题和数据之间使用“\t”分隔符进行分隔)。
原始S表结构如下所示:
sno sname status city
S1 精益 20 天津
S2 盛锡 10 北京
S3 东方红 30 北京
S4 丰泰盛 20 天津
S5 为民 30 上海
package step1;
import java.sql.*;
import java.util.Scanner;
public class QuerySno {
public static void queryDB() {
// 接收供应商编号
Scanner scanner = new Scanner(System.in);
String sno = scanner.next();
// 声明变量
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
// "root"和"123123"是针对MySQL设置了用户名(root)和密码(123123)
String username = "root";
String password = "123123";
// 127.0.0.1:3306是mysql服务器地址及端口 数据库编码格式设置为utf-8
String url = "jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8";
try {
/********* Begin *********/
// 1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.建立数据库连接
conn = DriverManager.getConnection(url, username, password);
// 3.定义sql
String sql="select * from s where sno=?";
// 4.建立PreparedStatement对象
psmt = conn.prepareStatement(sql);
// 5.注册PreparedStatement对象的参数
psmt.setString(1,sno);
// 6.查询数据,输出结果
System.out.println("sno\tsname\tstatus\tcity");
rs=psmt.executeQuery();
while(rs.next()){
System.out.print(rs.getString("sno")+"\t");
System.out.print(rs.getString("sname")+"\t");
System.out.print(rs.getInt("status")+"\t");
System.out.print(rs.getString("city"));
}
/********* End *********/
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}