第14周 预习、实验与作业:Java JDBC编程

1.3 课前问题列表

1.回想“流与文件”章节,如何将一组对象存储到文件中?主要步骤是什么。

 主要步骤如下:

  1. 打开文件:首先需要创建或打开目标文件,以便可以向其中写入数据。

  2. 序列化对象:将要存储的对象进行序列化,即将其转换为字节流的形式,以便可以写入文件。

  3. 写入文件:将序列化后的对象数据写入到已打开的文件中。

  4. 关闭文件:在完成写入操作后,需要关闭文件以确保数据被正确地保存

2.关系数据库中使用表存储数据。查询资料回答:表的设计应该遵循什么基本规范?如果要将Student对象(学号、姓名、年龄、分数、学院)存入数据库,要怎么设计表?设计几个表?

表设计应遵守的规范:

1.符合规范化要求:表的设计应该符合数据库的规范化要求,减少数据冗余并确保数据的一致性和完整性。

2.定义主键:每个表应该有一个能唯一标识每一条记录的主键,以确保记录的唯一性

3.定义外键:在需要引用其他表的情况下,应该使用外键来建立表与表之间的关联关系。

4.字段命名规范:字段的命名应该具有描述性,易于理解,并且遵循命名规范。

如果要将Student对象(学号、姓名、年龄、分数、学院)存入数据库,可以设计一个名为 "students" 和一个名为“departments”的表

“students"的表结构如下

students
- 学号 (student_id, 主键)
- 姓名 (name)
- 年龄 (age)
- 分数 (score)
- 学院 (department)

对学院信息可以再设计一个表“departments”进行储存

表“departments”如下

departments
- 学院编号 (department_id, 主键)
- 学院名称 (department_name)

将学生和学院信息分别存储在两个表中,并通过学院编号建立了关联关系。这种设计不仅减少了数据冗余,还有助于保持数据的一致性和完整性。

3.JDBC编程的一般步骤是?

步骤如下:

(1)导入java.sql包
(2)加载并注册驱动程序
(3)创建Connection对象,连接数据库 
(4)创建Statement的子接口PreparedStatement对象
(5)处理结果集(如果是查询语句)
(6)关闭资源

4.Statement与PreparedStatement有何区别?

  1. Statement

    • Statement对象用于执行静态的SQL语句,即在编写代码时已经确定了SQL语句的结构和内容。
    • 当使用Statement执行SQL语句时,每次都会将完整的SQL语句发送到数据库进行编译和执行,这可能存在安全隐患(例如SQL注入攻击)。
    • 适合用于执行不带参数的简单SQL语句,但在多次执行相同的SQL语句时效率较低。
  2. PreparedStatement

    • PreparedStatement对象用于执行动态的SQL语句,即SQL语句的结构已经确定,但是具体的参数值是在执行时动态指定的。
    • 在创建PreparedStatement时,SQL语句已经被预编译,并且可以多次执行,因此在执行时只需要传入参数值而不需要重新编译SQL语句,这提高了效率并降低了安全风险。
    • PreparedStatement还支持批量更新操作,可以一次性执行多个SQL语句,提高了数据库操作的效率。

总的来说,PreparedStatement比Statement更安全、更高效,特别适合用于执行需要重复执行的SQL语句以及带有参数的SQL语句。因此,在实际开发中,推荐尽量使用PreparedStatement来执行数据库操作。

5.怎么将数据库中表的数据组装成一个对象?

将数据库中表的数据组装成一个对象通常涉及以下几个步骤:

  1. 定义对象模型:首先需要定义一个Java类,用于表示要从数据库中获取的数据。该类的属性应该对应表中的字段。

  2. 查询数据库并获取结果集:使用合适的SQL语句执行数据库查询操作,将查询结果存储在结果集中。

  3. 遍历结果集:遍历结果集中的每一条记录,并从中读取每个字段的数值。

  4. 创建对象并赋值:针对每条记录,创建一个对象实例,并将结果集中的数据赋值给对象的属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值