上机实验10 JDBC数据库编程

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
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. }
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
Java 关系型数据库 数据库连接
JDBC:Java与数据库的“黄金搭档”,为何它如此重要?
JDBC:Java与数据库的“黄金搭档”,为何它如此重要?
53 8
|
4月前
|
Java 数据库连接 API
JDBC:Java数据库连接的“黑科技”大揭秘
JDBC:Java数据库连接的“黑科技”大揭秘
41 7
|
29天前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
29 1
|
2月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
87 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
2月前
|
SQL Java 数据库
Springboot+spring-boot-starter-data-jdbc实现数据库的操作
本文介绍了如何使用Spring Boot的spring-boot-starter-data-jdbc依赖来操作数据库,包括添加依赖、配置数据库信息和编写基于JdbcTemplate的数据访问代码。
200 2
|
2月前
|
SQL druid Java
JDBC和数据库连接池-两个工具类-JDBCUtilsByDruid和BasicDAO
JDBC和数据库连接池-两个工具类-JDBCUtilsByDruid和BasicDAO
61 0
|
4月前
|
Java 数据库连接 网络安全
JDBC数据库编程(java实训报告)
这篇文章是关于JDBC数据库编程的实训报告,涵盖了实验要求、实验环境、实验内容和总结。文中详细介绍了如何使用Java JDBC技术连接数据库,并进行增删改查等基本操作。实验内容包括建立数据库连接、查询、添加、删除和修改数据,每个部分都提供了相应的Java代码示例和操作测试结果截图。作者在总结中分享了在实验过程中遇到的问题和解决方案,以及对Java与数据库连接操作的掌握情况。
JDBC数据库编程(java实训报告)
|
4月前
|
SQL Java 数据库连接
JDBC之旅:从陌生到熟悉的Java数据库连接之路
JDBC之旅:从陌生到熟悉的Java数据库连接之路
33 9
|
4月前
|
SQL Java 数据库连接
Java开发者必知:JDBC连接数据库的“三大法宝”
Java开发者必知:JDBC连接数据库的“三大法宝”
42 7
|
4月前
|
SQL 安全 Java
JDBC:Java与数据库的“月老红线”,你真的了解它吗?
JDBC:Java与数据库的“月老红线”,你真的了解它吗?
25 1
下一篇
DataWorks