day26_SQL语言(十三)使用JDBC技术及DAO模式完成项目

书城小项目

(一)需求

使用JDBC技术及DAO模式完成书城项目的增查操作

项目核心文件组成:

BookDao:为操作书籍增删改查数据库层接口

BookDaoImpl:为操作增删改查接口实现类

BookWeb:用于数据组装以及页面展示(注:现在没有学习前端页面,可以在web层中使用Scanner代替页面录入)

Utils:存放想用到的工具类

Bean:存放项目中用到的bean文件

(一)功能展示:

1、选择不同的编号完成不同的功能

public class BookWeb {
    public static void pageView() throws SQLException {
        Scanner sc = new Scanner(System.in);
        while(true) {
            System.out.println("[A]查询所有书籍   [B]增加书籍   [C]修改书籍   [D]删除书籍");
            System.out.println("请选择器操作:");
            String gn = sc.nextLine();
            if("a".equalsIgnoreCase(gn)) {
                //查询所有书籍
                List<Book> list = findBookList();
                //跳转到解析方法
                bookView(list);
            }else if("b".equalsIgnoreCase(gn)) {
                //增加书籍
                addBook();
            }else if("c".equalsIgnoreCase(gn)) {
                //修改书籍
                updateBookById();
            }else if("d".equalsIgnoreCase(gn)) {
                //删除书籍
                deleteBook();
            }else {
                //输入编号有误  给出提示
                System.out.println("输入编号有误,请重新输入");
            }
        }
    }
}

2、查询书籍

选择A选项后从数据库中查询出所有书籍信息

 3、增加书籍

选择B后填写书籍信息项,完成添加操作

Web层修改书籍核心代码:

public class BookWeb {
    public static void updateBookById() throws SQLException {
        while(true) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入要修改书籍的id");
            String id = sc.nextLine();
            //根据id查询是否存该id
            Book boo = getBookById(id);
            if(boo!=null) {
                while(true) {
                    //更新书籍
                    System.out.println("请选择要更新的字段");
                    System.out.println("[A]编号  [B]书名   [C]作者  [D]出版社   [E]日期   [F]价格   [G]退出");
                    String gn = sc.nextLine();
                    if("a".equalsIgnoreCase(gn)) {
                        System.out.println("请输入新的书籍编号");
                        String booknum = sc.nextLine();
                        boo.setBooknum(booknum);
                    }else if("b".equalsIgnoreCase(gn)) {
                        System.out.println("请输入书名");
                        String bookname = sc.nextLine();
                        boo.setBookname(bookname);
                    }else if("c".equalsIgnoreCase(gn)) {
                        System.out.println("请输入作者");
                        String bookauthor = sc.nextLine();
                        boo.setBookauthor(bookauthor);
                    }else if("d".equalsIgnoreCase(gn)) {
                        System.out.println("请输入出版社");
                        String bookpublish = sc.nextLine();
                        boo.setBookpublish(bookpublish);
                    }else if("e".equalsIgnoreCase(gn)) {
                        System.out.println("请输入日期");
                        String bookdate = sc.nextLine();
                        boo.setBookdate(bookdate);
                    }else if("f".equalsIgnoreCase(gn)) {
                        System.out.println("请输入价格");
                        String bookprice = sc.nextLine();
                        boo.setBookname(bookprice);
                    }else if("G".equalsIgnoreCase(gn)) {
                        pageView();
                    }else {
                        System.out.println("请输入正确的功能编号");
                    }

                    //更新并返回到查询列表
                    updateBookFiled(boo);
                    //查询所有书籍
                    List<Book> list = findBookList();
                    //跳转到解析方法
                    bookView(list);

                }
            }else {
                System.out.println("输入功能编号有误,请重新输入");
            }
        }
    }
}

4.修改书籍

首先查询输入的书籍id是否存在,存在则进行更新详细字段不存在则不让更新。

 输入正确id后可以更新指定字段并且更新成功

 示例代码:

public class BookDaoImpl implements BookDao{
    //更新字段
    public void updateBookFiled(Book bo) throws SQLException {
        //更新到数据库
        QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());

        String sql = "update book set " +
                "booknum=?,bookname=?,bookauthor=?,bookpublish=?,bookdate=?,bookprice=? " +
                "where id=?";

        qr.update(sql, bo.getBooknum(),bo.getBookname(),bo.getBookauthor(),bo.getBookpublish(),bo.getBookdate(),bo.getBookprice(),bo.getId());
    }
}

5.删除书籍

根据id删除书籍,首先查询是否存在书籍id

 存在可以正常删除书籍

示例代码:

public class BookDaoImpl implements BookDao{
   
public void deleteBookById(Book boo) throws SQLException {
       
// TODO Auto-generated method stub
       
QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());

        String sql =
"delete from book where id=?";

        qr.update(sql, boo.getId());
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值