书城小项目
(一)需求
使用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{ |