1. 本周学习总结

1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容。

2. 使用数据库技术改造你的系统

2.1 简述如何使用数据库技术改造你的系统。要建立什么表?截图你的表设计。


两个dao接口

  • 管理用户模块,建立一个用户表users 用于存放用户,每个用户要拥有一个借阅表,表名以用户ID前加一个字母a (表名不能全为数字)命名。
  • 管理图书模块,建立一个图书表books用于存放书籍
    books表

users表

借阅表

2.2 系统中使用到了JDBC中什么关键类?

  • DriverManager类:用于管理数据库中的所有驱动程序
  • Connection接口:用于与特定数据库进行连接
  • PreparedStatement接口:用于动态执行SQL语句
  • ResultSet接口:用于暂时存放数据库查询操作所获得的结果集

2.3 截图数据库相关模块的关键代码。关键行需要加注释。

图书dao接口

public interface BookDao {public void add(Book book,int num); //添加书籍public void remove(Book book);  //移除书籍public void lendOrBack(Book book,LendOrBack action); //更改书籍变动public Book peekBook(long ID);  //查询书籍}

用户dao接口

public interface UserDao {public void add( User user );   //添加用户public void remove( User user );    //删除用户public User peekUser( long ID );    //查找用户public void updateUser(User user,String name,String password);  //修改用户信息}

判断数据库中是否存在指定表

    public static boolean HasTable(String name){//用于判断数据库中是否存在指定表Connection con = null;DatabaseMetaData meta;ResultSet rs = null;try{con = getConnection();meta = con.getMetaData();rs = meta.getTables(null, null, name, null);while(rs.next()){realeaseAll(rs,null,con);return true;}}catch(Exception e){}realeaseAll(rs,null,con);return false;}

创建book表并写入数据

    private static void initializeBookStore() throws IOException, ClassNotFoundException{Map<Book,Integer> books=new TreeMap<Book,Integer>();try {if(JdbcUtil.HasTable("books")==false){con = JdbcUtil.getConnection(); strSql = "create table books(bookname char(20) not null,id long not null,category char(10),num int);";pStatement = con.prepareStatement(strSql);//当数据库中不存在book表时创建该表并写入数据books.put(new Book("红",111,"文学类"), 30);books.put(new Book("蓝",112,"文学类"), 50);books.put(new Book("绿",113,"文学类"), 40);books.put(new Book("黄",114,"经济类"), 10);pStatement.executeUpdate(strSql);   //预编译strSql = "insert into books(bookname,id,category,num) values(?,?,?,?)";pStatement = con.prepareStatement(strSql);con.setAutoCommit(false);Iterator<Map.Entry<Book, Integer>> m = books.entrySet().iterator(); //将books中的数据写入数据库while(m.hasNext()){Map.Entry<Book, Integer> e = m.next();if(e.getValue()>0)pStatement.setString(1,e.getKey().getName());pStatement.setLong(2,e.getKey().getID());pStatement.setString(3,e.getKey().getCategory());pStatement.setInt(4,e.getValue());pStatement.addBatch();}pStatement.executeBatch();con.commit();}}catch(SQLException e){}finally{}}

添加书籍

    public void add(Book book,int num){ //添加书籍strSql = "select * from books";try {pStatement = con.prepareStatement(strSql);rs = pStatement.executeQuery(strSql);while (rs.next()) {//当数据库中存在所要添加的书籍时,在原有书籍数量上加上要添加的数量if(rs.getString("bookname").equals(book.getName())){strSql = " update books set num=num+"+num+" where name="+book.getName()+";";rs = pStatement.executeQuery(strSql);return;}}//当数据库中不存在书籍时,插入一条新的书籍信息到数据库strSql = "insert into books(bookname,id,category,num) values(?,?,?,?)";pStatement = con.prepareStatement(strSql);pStatement.setString(1,book.getName());pStatement.setLong(2,book.getID());pStatement.setString(3,book.getCategory());pStatement.setInt(4,num);pStatement.addBatch();pStatement.executeUpdate();}catch(SQLException e){}
}

移除书籍

    public void remove(Book book){//移除书籍strSql = "select * from books";try {pStatement = con.prepareStatement(strSql);rs = pStatement.executeQuery(strSql);while (rs.next()) {if(rs.getString("bookname").equals(book.getName())){strSql = "delete from books where bookname='"+book.getName()+"';";rs = pStatement.executeQuery(strSql);return;}}return;}catch(SQLException e){}
}

根据ID查询书籍

    public Book peekBook(long ID) {//根据ID查询书籍try {con = JdbcUtil.getConnection();} catch (SQLException e1) {e1.printStackTrace();}try {strSql = "select * from books";pStatement = con.prepareStatement(strSql);rs = pStatement.executeQuery(strSql);while (rs.next()) {if(rs.getLong("id")==ID){return new Book(rs.getString("bookname"),rs.getLong("id"),rs.getString("category"));}}} catch (SQLException e) {e.printStackTrace();}finally{   }return null;}

3. 代码量统计

3.1 统计本周完成的代码量

需要将每周的代码统计情况融合到一张表中。

周次 总行数 新增行数 总文件数 新增文件数
1 115 115 17 17
2 421 306 24 7
3 698 277 30 6
5 1085 387 38 8
6 1497 412 48 10
7 2033 536 57 9
8 2265 232 60 3
9 2728 522 65 5
10 3360 632 73 8
11 3958 598 83 10
12 4435 477 90 7
13 4802 367 96 6
14 5244 442 101 5
15 5876 632 108 7

转载于:https://www.cnblogs.com/yellower/p/8094243.html

java第14次作业相关推荐

  1. java第六次作业 计科1501班 张鹏

    java 第六次作业 计科1501 张鹏 1.用思维导图对本周的学习内容进行总结. 2.当程序中出现异常时,JVM会依据方法调用顺序依次查找有关的错误处理程序.可使用printStackTrace和g ...

  2. 2018北语c语言程序2答案,北语21春《JAVA语言程序设计》作业2题目【标准答案】...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 加VX513274704 21春<JAVA语言程序设计>作业2 试卷总分:100 得分:100 一.单选题 (共 20 道试题,共 100 分 ...

  3. java计算机毕业设计网络作业提交与批改系统源代码+数据库+系统+lw文档

    java计算机毕业设计网络作业提交与批改系统源代码+数据库+系统+lw文档 java计算机毕业设计网络作业提交与批改系统源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  4. 奥鹏教育微学吧JAVA答案_西交20秋《Java语言》在线作业【标准答案】

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 西交<Java语言>在线作业 试卷总分:100 得分:100 一.单选题 (共 30 道试题,共 60 分) 1.给出下面代码,关于该程序以下 ...

  5. java计算机毕业设计在线作业提交系统源码+系统+mysql数据库+lw文档

    java计算机毕业设计在线作业提交系统源码+系统+mysql数据库+lw文档 java计算机毕业设计在线作业提交系统源码+系统+mysql数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语 ...

  6. java计算机毕业设计在线作业管理系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计在线作业管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计在线作业管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S ...

  7. Java学习-14 CSS与CSS3美化页面及网页布局

    Java学习-14 CSS与CSS3美化页面及网页布局 1. CSS简介 什么是CSS? CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示控制 HTML 元素, ...

  8. 吉大java考试题_吉大20春学期《JAVA程序设计》在线作业二-1(答案)

    答案来源:奥学网(www.aoxuewang.net)-[吉林大学]吉大20春学期<JAVA程序设计>在线作业二 试卷总分:100    得分:100 第1题,在 Java 中,所有类的根 ...

  9. Java第三次作业——面向对象基础(封装)

    Java第三次作业--面向对象基础(封装) (一)学习总结 1.什么是面向对象的封装性,Java中是如何实现封装性的?试举例说明. 封装性就是指对外部不可见,用对象直接访问类中的属性,在面向对象法则中 ...

  10. Java第四次作业——面向对象高级特性(继承和多态)

    Java第四次作业--面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能, ...

最新文章

  1. 在ASP.NET中跟踪和恢复大文件下载
  2. html javascript 字符串和数组互转 字符串拼接 数组拼接
  3. 【css】常用的几种水平垂直居中方式与盒子模型,面试经常问到!
  4. vue中子组件向父组件传递数据(实现加减的实例)
  5. 变频器服务器电路板维修,变频器线路板常见维修方法
  6. css禁用选中文本_使用CSS禁用文本选择突出显示
  7. 实践总结 - 不可错过的Angular应用技巧
  8. pdf怎么转换成ppt
  9. SAI 串行音频接口学习
  10. java中日期转换_java中日期格式的转换
  11. 配置cfree 5 支持C++11
  12. oss上传判断_React实现阿里云OSS上传文件的示例
  13. 牛客假日团队赛31 A Mowing the Lawn (单调队列维护dp)
  14. 【存储】SDS软件定义存储,看这一篇就够了
  15. 西科大 软件体系结构内容总结
  16. OPPOX9007_官方线刷包_救砖包_解账户锁
  17. 正在检测单片机..... 玄学解决方法
  18. 计算机报声音怎么弄,excel表格输入数据报语音-excel的语音报数怎么弄出来?
  19. FMEA软件——你们的FMEA还“活着”吗?
  20. HRSC2016 数据集 L2 L3 task

热门文章

  1. 磁珠 符号_如何理解电子元件磁珠?
  2. 求合体电脑版_网红界宋祖儿找了个年轻版言承旭当男友,一张合照就收割百万cp粉...
  3. golang 判断map的键key是否存在
  4. Consul添加配置详解
  5. mysql 标记_mysql-徽章/标记内容自用户上次看到以来已...
  6. 略谈永中OFFICE的语言国际化
  7. OpenJDK8 JAVA应用窗口在不同缩放比例下的表现(Linux)
  8. VC通过函数名调用DLL的标准范例
  9. 文字处理技术:形状绕排的难点
  10. CSDN博文分类全部删除了?