Dao接口实现基本的数据库操作。增删改查

新建web项目的博文和项目目录结构,请参考 上一篇

基本的目录结构和必要的.java文件已经创建成功,如图
这里写图片描述

上一节已经在dao层里写了一个 查询所有记录的方法。本节写的方法有 唯一查询、删除、插入、更新方法,并依次在Test类里面测试相应的方法

打开demo下的com.dao下的UserDao.java

1.UserDao.java 中的唯一查询、删除、插入、更新 方法

/**
     * 唯一查询
     * @param id 通过id唯一查询数据库中的数据 [注:唯一查询的时候是
     * 根据id查询的,所以要把数据库中的表的id字段设置为primary key]
     * @return Users的一个实例化对象,如果查找到了就返回的是数据库中
     * 的一条记录
     * 否则就是 null;
     */
    public Users selectById(int id) {
        Users user = new Users();
        //1.连接到数据库
        Connection connection = db.getConnection();
        //2.拼接sql语句
        String  sql = "select * from users where id="+id;
        try {
            System.out.println("准备查询....");

            //3.执行发送到数据库的sql语句
            Statement st = connection.createStatement();//创建一个Statement对象,用于向数据库发送数据
            ResultSet rs = st.executeQuery(sql);//执行给定的sql语句,返回结果集对象
            while (rs.next()) {
                user = new Users(rs.getInt(1), rs.getString(2), rs.getString(3));
                //执行SQL语句查找到了数据,就把数据和实体类的一个对象映射起来。
            }

            System.out.println("已查询!!!!");
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //4.关闭连接,释放资源
            db.closeConnection(connection);
        }
        return user;
    }

    /**
     * 删除
     * @param id
     * @return 删除的记录数--如果删除一条记录就返回1,若是没有删除成功则返回0
     */
    public int delete(int id) {
        int count = 0;
        //1.连接到数据库
        Connection connection = db.getConnection();
        //2.拼接sql语句
        String sql = "delete from users where id="+id;
        try {
            System.out.println("准备删除id为:"+id+" 的记录...");

            //3.执行发送到数据库的sql语句
            Statement st = connection.createStatement();
            count = st.executeUpdate(sql);//count接收方法的返回值,为0 表示删除失败

            if (count != 0) {
                System.out.print("删除成功!!! ");
            } else {
                System.out.print("delete error!!! ");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //4.关闭数据库连接,释放资源
            db.closeConnection(connection);
        }
        return count;
    }

    /**
     * 插入
     * @param user Users类的对象,插入数据库的是该条记录
     * @return 插入到数据库的记录数--如果插入了一条记录就返回1,若是没有插入成功则返回0
     */
    public int insert(Users user) {
        int count = 0;
        Connection connection = db.getConnection();
        String sql = "insert into users(id, username, password) values("+user.getId()+", '"+user.getUsername()+"', '"+user.getPasswards()+"')";

        try {
            System.out.println("准备插入记录==="+user.getId()+":"+user.getUsername()+":"+user.getPasswards()+"...");

            Statement st = connection.createStatement();
            count = st.executeUpdate(sql);

            if (count != 0) {
                System.out.print("插入成功!!! ");
            } else {
                System.out.print("insert error!!! ");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            db.closeConnection(connection);
        }
        return count;
    }

    /**
     * 更新
     * @param user Users类的对象,从数据库更新的是该条记录
     * @return 从数据库更新的记录数--如果更新了一条记录就返回1,若是没有更新成功则返回0
     */
    public int update(Users user) {
        int count = 0;
        Connection connection = db.getConnection();
        String sql = "update users set username='"+user.getUsername()+"' where id="+user.getId();

        try {
            System.out.println("准备更新 id 为 "+user.getId()+"的记录...");

            Statement st = connection.createStatement();
            count = st.executeUpdate(sql);

            if (count != 0) {
                System.out.print("更新成功!!! ");
            } else {
                System.out.print("update error!!! ");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            db.closeConnection(connection);
        }
        return count;
    }

2.Test.java中依次对 唯一查询、删除、插入、更新 进行测试

UsersDao usersDao = new UsersDao();//引入dao层的UserDao.java文件

        //测试唯一查询
        Users u = usersDao.selectById(1001);
        System.out.println("查询信息为==id:"+u.getId()+" ,username:"+u.getUsername()+" ,password:"+u.getPasswards()+"\n");

        int count;
        //测试删除
        count = usersDao.delete(1004);//count用来接收返回值,若为0,则说明删除不成功
        System.out.println("  删除count="+count+"\n");

        //测试插入
        Users user = new Users(1005, "lenovo", "444444");//初始化一个Users对象
        count = usersDao.insert(user);
        System.out.println("  插入count="+count+"\n");

        //测试更新
        Users us = new Users(1001, "小米", "");
        count = usersDao.update(us);
        System.out.println("  更新count="+count+"\n");

测试结果
这里写图片描述


学习过程中,欢迎指出错误,很开心与大家共同进步!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值