1、回想“流与文件”章节,如何将一组对象存储到文件中?主要步骤是什么。
将对象序列化,通过流的方式储存到文件中。例如字节流和字符流,二进制文件存储可以通过字节流读写,文本文件存储可以通过字符流读写。
2、关系数据库中使用表存储数据。查询资料回答:表的设计应该遵循什么基本规范?如果要将Student对象(学号、姓名、年龄、分数、学院)存入数据库,要怎么设计表?设计几个表?
1.表的设计基本规范 遵循三范式:
第一范式:1NF,数据字段设计时必须满足原子性。1NF要求字段数据是不需要拆分就可以直接应用。
第二范式:2NF,字段设计不能存在部分依赖。
第三范式:所有非主键字段和主键字段之间不能产生传递依赖。
2.如果要将Student对象(学号、姓名、年龄、分数、学院)存入数据库,需要设计两个表,一个表是学号、姓名、年龄、学院,另一个表是分数。
3、JDBC编程的一般步骤是哪些?
1、加载数据库驱动。 通常使用Class类的forName()静态方法来加载驱动。
2、通过数据库驱动管理器(DriverManager)获取数据库连接。 使用DriverManager获取数据库连接时,需要传入3个参数:数据库URL、登陆数据库的用户名和密码。
3、通过Connection对象创建Statement对象。
4、使用Statement执行SQL语句。
5、操作结果集。 若执行的SQL语句是查询语句,则执行结果将返回一个ResultSet对象,该对象里保存了SQL查询结果。
6、回收数据库资源。
4、Statement与PreparedStatement有何区别?
联系:
1、PreparedStatement继承自Statement
2、PrerapedStatement和Statement都是接口
3、PreParedStatement和Statement都可以实现对数据表的CRUD操作:增删改查
区别:
1、PreparedStatement在使用时只需要编译一次,就可以运行多次,Statement每运行一次就编译一次,所以PreparedStatement的效率更高。
2、PreparedStatement需要的SQL语句为用?(占位符)来替换值,Statement所需要的SQL语句为字符串拼接。
3、PreparedStatement解决了SQL注入的问题。PreparedStatement有一个预编译的过程,就算传入占位符的数据中有SQL关键字也都被认为是值。而Statement没有解决是因为Statement所需要的是字符串拼接,传入的整个字符串被默认为SQL语句,如果用户手动拼接了字符串,那么会导致语句的改变。
5、怎么将数据库中表的数据组装成一个对象?
在Java中写一个类,类的属性对应相应的数据,使用JDBC查询后,通过Set方法将对应数据的值设置到对应属性中,数据就变成一个对象。