第14周 预习、实验与作业:Java数据库编程

第14周 预习、实验与作业:Java数据库编程

课前问题列表

一.回想“流与文件”章节,如何将一组对象存储到文件中?主要步骤是什么。
二.关系数据库中使用表存储数据。查询资料回答:表的设计应该遵循什么基本规范?如果要将Student对象(学号、姓名、年龄、分数、学院)存入数据库,要怎么设计表?设计几个表?
三.JDBC编程的一般步骤是哪些?
四.Statement与PreparedStatement有何区别?
五.怎么将数据库中表的数据组装成一个对象?

answer:
一.先确定目标文件的路径,然后打开目标文件的流,最后通过某种方式写入对应的值

二.表的设计应该遵循以下规范:
1.保证每一列的信息准确且唯一
2.每一列字段的长度应当留有扩大的空间,方便后续就行修改
3.不设计null值,尽量使每个字段有一个默认值
4.预留一个字段,留下后续增加表的字段的空间
可以设计一个表,表的字段分别包括学号、姓名、年龄、分数、学院以及设计一个主键值,可以使用默认的Auto_increment;

三.找到目标数据库驱动->建立连接->使用符合条件的SQL语句->对数据集指向对应操作,包括读取数据,修改数据等->释放资源(包括标准的静态释放方法和JDK7以后出现的try-with-resources语法)

四.后者有预编译功能,可以将要使用的操作预编译并放在PrepareStatement中,在后续调用的时候速度更快,适合一些需要多次重复调用某一条语句的情况。此外,后者可以进行参数化查询,使我们可以灵活替换方法中的参数,减少冗余的代码。

五.可以用土方法,也就是以前常见的反复读如一行数据并根据其创造对象添加到我们存储数据的地方。
大致代码如下所示
下面展示一些 内联代码片

// 
     stu属性:
    private int id;
    private String name;
//
      try {
          Class.forName("com.mysql.jdbc.Driver");
          connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "queshi6");
          String sql="select * from stu";
          statement = connection.createStatement();
          resultSet = statement.executeQuery(sql);
          stus = new ArrayList<>();
          while(resultSet.next()){
              int id = resultSet.getInt("id");
              String name = resultSet.getString("name");
              stu stu = new stu();
              stu.setId(id);
              stu.setName(name);
              stus.add(stu);
          }
      } catch (ClassNotFoundException e) {
          e.printStackTrace();
      }
      catch (SQLException e) {
          e.printStackTrace();
      }
      finally 
      {
      .....//释放资源
      }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值