数据库:实验五通用接口数据库编程

一、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();
			}
		}
		
	}
}

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值