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

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

格式化读写文本文件
Scanner PrintWriter
缓冲流
以Buffered开头的流
直接读写对象(字节流)
ObjectInputStream
ObjectOutputStream

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

命名规范
字段选择规范
主要设计规范
字段长度规范
共设计5个表

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

第一步:注册驱动(告诉Java程序,即将要连接那个品牌的数据库)
第二步:获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完后一定要关闭)
第三步:获取数据库操作对象(专门执行sql语句的对象)
第四步:执行SQL语句(DQL DML …)
第五步:处理查询结果集(只有第四步执行select语句时,才会执行第五步)
第六步:释放资源(使用完资源后一定要关闭资源。Java和数据库属于进程间通信,开启后一定要关闭)

4、Statement与PreparedStatement有何区别?

1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程
2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, preparedstatement支持批处理

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

1、定义一个emp类
2、定义方法 public List findAll() {}查询所有
3、实现方法 select *from emp
表代表类,一条数据代表一个对象
1、定义一个emp类

import java.util.Date;

/*
* 对应封装EMP表数据的JavaBean
*/
public class Emp {
        private int id;
        private String ename;
        private int job_id;
        private int mgr;
        private Date joindate;
        private double salary;
        private double bonus;
        private int dept_id;

        public int getId() {
                return id;
        }

        public void setId(int id) {
                this.id = id;
        }

        public String getEname() {
                return ename;
        }

        public void setEname(String ename) {
                this.ename = ename;
        }

        public int getJob_id() {
                return job_id;
        }

        public void setJob_id(int job_id) {
                this.job_id = job_id;
        }

        public int getMgr() {
                return mgr;
        }

        public void setMgr(int mgr) {
                this.mgr = mgr;
        }

        public Date getJoindate() {
                return joindate;
        }

        public void setJoindate(Date joindate) {
                this.joindate = joindate;
        }

        public double getSalary() {
                return salary;
        }

        public void setSalary(double salary) {
                this.salary = salary;
        }

        public double getBonus() {
                return bonus;
        }

        public void setBonus(double bonus) {
                this.bonus = bonus;
        }

        public int getDept_id() {
                return dept_id;
        }

        public void setDept_id(int dept_id) {
                this.dept_id = dept_id;
        }

        @Override
        public String toString() {
                return "Emp{" +
                        "id=" + id +
                        ", ename='" + ename + '\'' +
                        ", job_id=" + job_id +
                        ", mgr=" + mgr +
                        ", joindate=" + joindate +
                        ", salary=" + salary +
                        ", bonus=" + bonus +
                        ", dept_id=" + dept_id +
                        '}';
        }
}


2、实现

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public static void main(String[] args) {
        List<Emp> list = new JDBCDemo3().findAll();
        //System.out.println(list);
        for (int i=0;i<list.size();i++){
            System.out.println(list.get(i));
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值