定义一个方法,查询数据库中emp表的数据将其封装为对象,然后装载集合

读取数据库

(定义一个方法,查询数据库中emp表的数据将其封装为对象,然后装载集合,返回)

1、首先定义一个Emp(数据库中的emp表)(包含数据库中的查询字段)

package cn.itcast.domain;

import java.sql.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、定义一个类(里面包含一个循环查询的findAll()方法,并返回一个集合)

package cn.itcast.jdbc;

import cn.itcast.domain.Emp;

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

/**
 * 定义一个方法,查询数据库中emp表的数据将其封装为对象,然后装载集合,返回
 */
public class JdbcDemo05 {
    public static void main(String[] args) {
        JdbcDemo05 j = new JdbcDemo05();
        List<Emp> li = j.findAll();
        //打印list的结果
        System.out.println(li);
        System.out.println("共有" + li.size() + "条数据");
        System.out.println("----------------------------------");
        //加强for遍历集合
        for (Emp e : li) {
            System.out.println(e);
            System.out.println("----------------------------------------------------------" +
                    "--------------------------------------------------------");
        }
    }

    /**
     * 查询数据库的函数
     * @return 返回一个集合
     */
    public List<Emp> findAll() {
        //定义变量
        Connection con = null;
        Statement st = null;
        ResultSet re = null;
        Emp emp = null;
        List<Emp> list = null;

        try {
            //1、加载jar包,并且注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2、定义一个查询SQL语句
            String sql = "select * from emp";
            //3、获取连接数据库对象
            con = DriverManager.getConnection("jdbc:mysql:///gh_test2", "root", "root");
            //4、获取执行SQL语句的对象
            st = con.createStatement();
            //5、执行SQL语句
            re = st.executeQuery(sql);
            //6、处理结果

            list = new ArrayList<Emp>();
            while (re.next()) {
                int id = re.getInt("id");
                String ename = re.getString("ename");
                int job_id = re.getInt("job_id");
                int mgr = re.getInt("mgr");
                Date joindate = re.getDate("joindate");
                double salary = re.getDouble("salary");
                double bonus = re.getDouble("bonus");
                int dept_id = re.getInt("dept_id");
                //将数据写入emp对象中
                emp = new Emp();
                emp.setId(id);
                emp.setEname(ename);
                emp.setJob_id(job_id);
                emp.setMgr(mgr);
                emp.setJoindate(joindate);
                emp.setSalary(salary);
                emp.setBonus(bonus);
                emp.setDept_id(dept_id);

                //写入数据进入集合
                list.add(emp);

            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            //7、释放资源
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }

            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }


            try {
                re.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return list;
    }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是代码实现: ``` # 定义一个空的员工列 listemp = [] # 定义一个函数用于添加员工信息到列 def add_emp(): emp = {} # 从键盘输入员工信息 emp['id'] = input('输入员工编号:') emp['name'] = input('输入员工姓名:') emp['sex'] = input('输入员工性别:') emp['address'] = input('输入员工地址:') emp['sal'] = input('输入员工薪资:') # 将员工信息添加到列 listemp.append(emp) print('员工信息已成功添加到列!') # 定义一个函数用于循环输出员工信息 def show_emp(): print('='*60) print('编号\t\t姓名\t\t性别\t\t地址\t\t薪资') print('='*60) for emp in listemp: print(emp['id'],'\t',emp['name'],'\t',emp['sex'],'\t',emp['address'],'\t',emp['sal']) print('='*60) # 定义一个函数用于查找员工信息 def find_emp(): name = input('请输入员工姓名:') for emp in listemp: if emp['name'] == name: print('员工编号:', emp['id']) print('员工姓名:', emp['name']) print('员工性别:', emp['sex']) print('员工地址:', emp['address']) print('员工薪资:', emp['sal']) break else: print('列不存在该员工的信息!') # 定义一个函数用于删除员工信息 def del_emp(): id = input('请输入员工编号:') for emp in listemp: if emp['id'] == id: listemp.remove(emp) print('员工信息已成功删除!') break else: print('列不存在该员工的信息!') # 定义一个函数用于修改员工信息 def modify_emp(): id = input('请输入要修改的员工编号:') for emp in listemp: if emp['id'] == id: emp['address'] = input('请输入新的员工地址:') emp['sal'] = input('请输入新的员工薪资:') print('员工信息已成功修改!') break else: print('列不存在该员工的信息!') # 主程序入口 while True: print('员工信息管理系统') print('1. 添加员工信息') print('2. 查看员工信息') print('3. 查找员工信息') print('4. 删除员工信息') print('5. 修改员工信息') print('0. 退出程序') choice = input('请输入您的选择:') if choice == '1': add_emp() elif choice == '2': show_emp() elif choice == '3': find_emp() elif choice == '4': del_emp() show_emp() elif choice == '5': modify_emp() show_emp() elif choice == '0': break else: print('您输入的选择有误,请重新输入!') ``` 注意,这里只是一个简单的示例,实际应用可能需要更多的错误处理和数据验证。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值