上机实验10 JDBC数据库编程

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 上机实验10 JDBC数据库编程

实验1 验证连接

一、实验目的

掌握java连接数据库的操作

二、实验内容

创建一个测试类,连接student数据库,测试连接数据库是否成功,并显示学生信息表中数据。

三、程序代码

1. import java.sql.Connection;
2. import java.sql.DriverManager;
3. import java.sql.ResultSet;
4. import java.sql.SQLException;
5. import java.sql.Statement;
6. 
7. public class Connect {
8.  public static void main(String[] args) throws SQLException,ClassNotFoundException {
9.    Connection conn = null;
10.     try {
11.       Class.forName("com.mysql.jdbc.Driver");
12.       System.out.println("驱动加载成功");
13.     }catch (ClassNotFoundException e) {
14.       e.printStackTrace();
15.       System.out.println("驱动加载失败");
16.     }
17.     String url="jdbc:mysql://localhost:3306/student";
18.     String user="root";
19.     String password="123";
20.     try {
21.       conn = DriverManager.getConnection(url,user,password);
22.       System.out.println("数据库连接成功");
23.       //创建命令对象
24.       Statement stmt = conn.createStatement();
25.       //给出sql语句,查询test表中的所有数据
26.       String sql = "select * from stuinfo";
27.       //执行sql语句,得到多条记录,结果集ResultSet
28.       ResultSet rs = stmt.executeQuery(sql);
29.       while(rs.next()) {
30.       //getString(columIndex) columIndex表示列号,从1开始
31.       System.out.println("学号:"+rs.getInt(1));
32.       System.out.println("姓名:"+rs.getString(2));
33.       System.out.println("性别:"+rs.getString(3));
34.       System.out.println("班级:"+rs.getString(4));
35.       System.out.println("电话:"+rs.getInt(5)); 
36.       }
37.       rs.close();
38.       stmt.close();
39.       conn.close();
40.     } catch (SQLException e) {
41.       // TODO Auto-generated catch block
42.       e.printStackTrace();
43.       System.out.println("连接失败");
44.     }
45.   }
46. }

四、实验指导

1、掌握连接数据库的步骤

1)注册JDBC Driver

2)获得与数据库的物理连接

3)创建不同类型的Statement

4)执行SQL命令

5)如果有结果集, 处理结果集

6)释放资源

实验2 数据库操作

一、实验目的

掌握DriverManager、Connection、Statement、PreparedStatement、ResultSet五大类的使用方法

二、实验内容

设计一个实现学生信息管理的程序,要求合法的学生才能进入系统,在系统中可以查看学生的基本信息和成绩,并能对各个信息进行简单的增删改操作。

三、程序代码

1. import java.sql.Connection;
2. import java.sql.DriverManager;
3. import java.sql.ResultSet;
4. import java.sql.SQLException;
5. import java.sql.Statement;
6. import java.util.Scanner;
7. 
8. import com.mysql.jdbc.PreparedStatement;
9. 
10. public class Manage {
11.   public static void main(String[] args) throws SQLException,ClassNotFoundException {
12.     Connection conn = null;
13.     try {
14.       Class.forName("com.mysql.jdbc.Driver");
15.       System.out.println("驱动加载成功");
16.     }catch (ClassNotFoundException e) {
17.       e.printStackTrace();
18.       System.out.println("驱动加载失败");
19.     }
20.     String url="jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=gbk";
21.     String user="root";
22.     String password="123";
23.     try {
24.       conn = DriverManager.getConnection(url,user,password);
25.       System.out.println("数据库连接成功");
26.       //创建命令对象
27.       Statement stmt = conn.createStatement();
28.       System.out.println("请输入选择:1--查看 2--增加 3--删除 4--修改");
29.         Scanner val = new Scanner(System.in);
30.         int op = val.nextInt();
31.         switch(op) {
32.         case 1:
33.         //给出sql语句,查询test表中的所有数据
34.       String sql1 = "select * from score";
35.       //执行sql语句,得到多条记录,结果集ResultSet
36.       ResultSet rs = stmt.executeQuery(sql1);
37.       while(rs.next()) {
38.       //getString(columIndex) columIndex表示列号,从1开始
39.       System.out.println("学号:"+rs.getInt(1));
40.       System.out.println("课程名:"+rs.getString(2));
41.       System.out.println("分数:"+rs.getInt(3));
42.       }
43.       rs.close();
44.       stmt.close();
45.       conn.close();
46.       break;
47.         case 2:
48.         Statement stmt2 = conn.createStatement();
49.         int adsno = 0;
50.       String adcname = null;
51.       int adscore = 0;
52.       System.out.println("请输入要增加的内容:");
53.       adsno = val.nextInt();
54.       adcname = val.next();
55.       adscore = val.nextInt();
56.       String sql2 = "insert into score (sno,cname,score) value("+adsno+",'"+adcname+"',"+adscore+")";
57.       int result2 = stmt.executeUpdate(sql2);
58.       System.out.println("增加成功");
59.       break;
60.         case 3:
61.       int sno = val.nextInt();
62.       System.out.println("请输入要删除的学号:");
63.       String sql3 = "delete from score where sno = "+sno;
64.       int result3 = stmt.executeUpdate(sql3);
65.       System.out.println("删除成功");
66.       break;
67.         case 4:
68.         Statement stmt4 = conn.createStatement();
69.         int upsno = 0;
70.         String upcname = null;
71.         int upscore = 0;
72.         System.out.println("请输入要修改的学号和内容(如:1 化学 99):");
73.       upsno = val.nextInt();
74.       upcname = val.next();
75.       upscore = val.nextInt();
76.         String sql4 = "update score set sno = ? where cname = ? and score = ?";
77.         PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql4);
78.         pstmt.setInt(1, upsno);
79.         pstmt.setString(2,upcname);
80.         pstmt.setInt(3, upscore);
81.         pstmt.executeUpdate();
82.         pstmt.close();
83.         System.out.println("修改成功"); 
84.         break;
85.         }
86.     } catch (SQLException e) {
87.       // TODO Auto-generated catch block
88.       e.printStackTrace();
89.       System.out.println("连接失败");
90.     }
91. 
92.   }
93. }
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
Java 数据处理 流计算
实时计算 Flink版产品使用合集之可以通过JDBC连接器来连接Greenplum数据库吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
14 1
|
6天前
|
SQL Java 数据库连接
Java一分钟之-JDBC:Java数据库连接基础
【5月更文挑战第14天】JDBC是Java与关系数据库交互的API,常见问题包括资源管理、SQL注入和性能优化。易错点涉及驱动加载、空指针异常和事务管理。避免这些问题的方法有使用try-with-resources自动关闭资源、预编译PreparedStatement以防止SQL注入,以及正确管理事务。示例代码展示了基本的JDBC连接和查询。在实际开发中,推荐使用ORM框架如Hibernate或JPA来简化数据库操作。
15 1
|
6天前
|
存储 Java 分布式数据库
【分布式计算框架】HBase数据库编程实践
【分布式计算框架】HBase数据库编程实践
13 1
|
6天前
|
存储 Oracle 关系型数据库
实验三 Oracle数据库的创建和管理
实验三 Oracle数据库的创建和管理
15 1
|
6天前
|
SQL Oracle 关系型数据库
实验一 安装和使用Oracle数据库
实验一 安装和使用Oracle数据库
16 1
|
6天前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
17 6
|
6天前
|
SQL Java 关系型数据库
零基础轻松入门Java数据库连接(JDBC)
零基础轻松入门Java数据库连接(JDBC)
13 0
|
6天前
|
数据库
编程日记02:个人站优化数据库和日志
编程日记02:个人站优化数据库和日志
12 0
|
6天前
|
SQL Java 关系型数据库
JDBC编程
JDBC编程
13 2
|
6天前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
12 0