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

把数据抽象为流,用字节输入输出流(InputStream,OutputStream)进行读写。

主要步骤为:创建一个输入流,通过该流写入文件

public static void writeObjectToFile(Object obj)
{
File file =new File("test.dat");
FileOutputStream out;
try {
out = new FileOutputStream(file);
ObjectOutputStream objOut=new ObjectOutputStream(out);
objOut.writeObject(obj);
objOut.flush();
objOut.close();
System.out.println("write object success!");
} catch (IOException e) {
System.out.println("write object failed");
e.printStackTrace();
}
}

代码来源

查阅资料得知,Java io包内的ObjectOutputStream可以实现写入对象,把对象序列化,变成字节序列。

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

数据命名规范

  • 所有数据库对象名称必须使用小写字母并用下划线分割。
  • 所有数据库对象名称禁止使用 MySQL 保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)。
  • 数据库对象的命名要能做到见名识意,并且最后不要超过 32 个字符。
  • 临时库表必须以 tmp 为前缀并以日期为后缀,备份表必须以 bak 为前缀并以日期 (时间戳) 为后缀。
  • 所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低)。

设计规范

  • 数据库和表的字符集统一使用 UTF8MB4
  • 所有表和字段都需要添加注释
  • 禁止在数据库中存储图片,文件等大的二进制数据
  • 优先选择符合存储需要的最小的数据类型
  • .....

--引用自《知乎

学号 姓名 年龄 学院 :学生基本信息表

学号 分数 :学生成绩表

JDBC编程的一般步骤是哪些?

1、加载JDBC驱动程序。

2、提供JDBC连接的URL。

3、创建数据库的连接。

4、创建一个Statement,要执行SQL语句,必须获得java.sql.Statement实例。

5、执行SQL语句。

6、处理两种情况的结果。

7、关闭JDBC对象(关闭结果集-->关闭数据库操作对象-->关闭连接)。

Statement与PreparedStatement有何区别?

PreparedStatement是Statement的子类

  • ①PreparedStatement接口代表预编译的语句,它主要的优势在于可以减少SQL的编译错误并增加SQL的安全性(减少SQL注射攻击的可能性)
  • ②PreparedStatement中的SQL语句是可以带参数的,避免了用字符串连接拼接SQL语句的麻烦和不安全
  • ③当批量处理SQL或频繁执行相同的查询时,PreparedStatement有明显的性能上的优势,由于数据库可以将编译优化后的SQL语句缓存起来,下次执行相同结构的语句时就会很快(不用再次编译和生成执行计划)

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

第14周 预习、实验与作业:Java数据库编程的更多相关文章

  1. 20145212 实验五《Java网络编程》

    20145212 实验五<Java网络编程> 一.实验内容 1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成 ...

  2. 20145210实验五《Java网络编程》

    20145210实验五<Java网络编程> 实验内容 1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码, ...

  3. 20145237 实验五《Java网络编程》

    20145237 实验五<Java网络编程> 一.实验内容 •1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: •2.利用加解密代码包,编译运行代码,一人加密,一人解密: •3 ...

  4. 20145312 实验五 《Java网络编程》

    20145312 实验五<Java网络编程> 一. 实验内容及要求 实验内容: 运行下载的TCP代码,结对进行,一人服务器,一人客户端: 利用加解密代码包,编译运行代码,一人加密,一人解密 ...

  5. 20145312 实验五《Java网络编程》

    20145312 实验五<Java网络编程> 一. 实验内容及要求 实验内容: 运行下载的TCP代码,结对进行,一人服务器,一人客户端: 利用加解密代码包,编译运行代码,一人加密,一人解密 ...

  6. java面向对象下:Java数据库编程

    19.Java数据库编程: JDBC概述:        JDBC(Java Database Connection)是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类 ...

  7. java数据库编程——读写LOB、可滚动和可更新的结果集、元数据

    java 数据库编程 1. 读写LOB 除了数字.字符串和日期之外,许多数据库还可以存储大对象,例如图片或其它数据.在SQL中,二进制大对象称为BLOB,字符型大对象称为CLOB. 要读取LOB,需要 ...

  8. 菜鸡的Java笔记 java数据库编程(JDBC)

    java数据库编程(JDBC)        介绍 JDBC 的基本功能            content (内容)        现在几乎所有的项目开发过程之中都不可能离开数据库,所以在java ...

  9. 1903021121-刘明伟-java十一周作业-java面向对象编程

    项目 内容 课程班级博客链接 19级信计班(本) 作业要求链接 第十一周作业 博客名称 1903021121-刘明伟-java十一周作业-java面向对象 要求 每道题要有题目,代码(使用插入代码,不 ...

  10. 20155229——实验五《 Java网络编程及安全》

    20155229--实验五 Java网络编程及安全 实验内容 实验一: 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA ...

随机推荐

  1. 3D数字孪生场景编辑器介绍

    1.背景 数字孪生的建设流程涉及建模.美术.程序.仿真等多种人才的协同作业,人力要求高,实施成本高,建设周期长.如何让小型团队甚至一个人就可以完成数字孪生的开发,是数字孪生工具链要解决的重要问题.目前 ...

  2. 【译】.NET 7 中的性能改进(八)

    原文 | Stephen Toub 翻译 | 郑子铭 Mono 到目前为止,我一直提到 "JIT"."GC "和 "运行时",但实际上在.N ...

  3. LeetCode-1001 网格照明

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/grid-illumination 题目描述 在大小为 n x n 的网格 grid 上,每个单元 ...

  4. CGLB动态代理

    CGLB动态代理 一.CGLIB实现接口 public interface ProductInterface { void test(); } /** * 用来测试接口 */ private stat ...

  5. Android ViewModel,LiveData 简要分析

    ViewModel: 负责为关联UI(activity/fragment)进行数据管理,业务逻辑处理.不直接持有view引用,不对UI进行访问调用操作 对外通过暴露Livedata方式响应处理结果 L ...

  6. windows11 安装跳过互联网验证

    按住shift+F10   cmd 输入  OOBE\BYPASSNRO 电脑重启后 出现 跳过得按钮

  7. windows 10 更新代理

    安装 Windows 更新 Windows 更新扫描.下载.安装,每一部分都采用独立的服务. Windows 更新客户端利用 Windows HTTP 服务(WinHTTP)扫描可用更新: Backg ...

  8. No.3.1

    JavaScript是什么? JavaScript是一种运行在客户端(浏览器)的编程语言,实现人机交互效果. 作用:网页特效(监听用户的一些行为让网页作出对应的反馈)     表单验证(针对表单数据的 ...

  9. python spacy [E050] Can't find model 'en_core_web_sm'

    出现问题 [E050] Can't find model 'en_core_web_sm' 使用管理员权限打开shell控制台,输入命令 python -m spacy download en_cor ...

  10. JS 动态获取 Url 参数(封装函数)

    话不多说直接上代码: 封装函数如下: (如果urls固定,可以只写一个name变量) getQueryString(name, urls) { var url = urls; // 获取URL // ...