1. 本周学习总结

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

2. 书面作业

1. MySQL数据库基本操作

建立数据库,将自己的姓名、学号作为一条记录插入。(截图,需出现自己的学号、姓名)

在自己建立的数据库上执行常见SQL语句(截图)

-参考:实验任务书-题目1

2. 使用JDBC连接数据库与Statement

2.1 使用Statement操作数据库。(粘贴一段你认为比较有价值的代码,出现学号)

  1. //201521123100
  2. try {
  3. conn = DriverManager.getConnection(URL,userName,password);
  4. Statement statement = conn.createStatement();
  5. ResultSet resultSet = statement.executeQuery(sql);
  6. while(resultSet.next()){
  7. int id = resultSet.getInt("id");
  8. String stuno = resultSet.getString("stuno");
  9. String name =resultSet.getString("name");
  10. int age =resultSet.getInt("age");
  11. Date date = resultSet.getDate("birthdate");
  12. System.out.print("id="+id+" stuno="+stuno+" name="+name+" age="+age+" birthdate="+date);
  13. }
  14. } catch (SQLException e) {
  15. e.printStackTrace();
  16. }finally{
  17. if(conn!=null)
  18. try {
  19. conn.close();
  20. } catch (SQLException e) {
  21. // TODO Auto-generated catch block
  22. e.printStackTrace();
  23. }
  24. conn = null;
  25. }

2.2 你认为使用JDBC操作数据库的套路是什么?有那几点需要注意。

-参考:实验任务书-题目2

1.转载驱动

2.连接到数据源

3.通过连接创建语句

4.通过语句获得结果集

5.释放资源

6.处理结果集

3. PreparedStatement与参数化查询

3.1 使用PreparedStatement根据用户指定的查询条件进行查询。(粘贴一段你认为比较有价值的代码,出现学号)

  1. try {
  2. Class.forName(driverName); //加载MySql的驱动程序,jdbc4.0不再需要
  3. } catch (ClassNotFoundException e) {
  4. System.out.println("无法找到驱动类");
  5. }
  6. con = DriverManager
  7. .getConnection(url,userName,password);
  8. String strSql = "insert into students(stuno,name,age,birthdate) values(?,?,?,?);";
  9. statement = con.createStatement();
  10. resultNum = statement.executeUpdate(strSql);
  11. System.out.println(resultNum+"条记录已经插入");
  12. strSql = "delete from students where id='2'";//删除id=2的数据
  13. resultNum = statement.executeUpdate(strSql);
  14. System.out.println(resultNum+"条记录删除完毕");
  15. strSql = "update students set major='中文' where id='1'";//更新id=2的数据
  16. resultNum = statement.executeUpdate(strSql);
  17. System.out.println(resultNum+"条记录更新完毕");

3.2 批量更新-批量插入1000个学生,统计整个操作所消耗的时间。对比普通方法插入与使用executeBatch方法所消耗的时间。(使用JUint4测试,需要出现时间对比截图)

普通方法:

  1. //201521123100
  2. for(int i=0;i<1000;i++){
  3. String strSql = "insert into students(stuno,name,age,birthdate) values(?,?,?,?)";
  4. pStatement = con.prepareStatement(strSql);
  5. pStatement.setString(1, "201521123100");
  6. pStatement.setString(2, "c");
  7. pStatement.setInt(3, 18);
  8. pStatement.setString(4, "1996-11-15");
  9. }

executeBatch方法:

  1. //201521123100
  2. for(int i=0;i<1000;i++){
  3. String strSql = "insert into students(stuno,name,age,birthdate) values(?,?,?,?)";
  4. pStatement = con.prepareStatement(strSql);
  5. pStatement.setString(1, "201521123100");
  6. pStatement.setString(2, "c");
  7. pStatement.setInt(3, 18);
  8. pStatement.setString(4, "1996-11-15");
  9. pStatement.addBatch();//添加到同一个批处理中
  10. }
  11. pStatement.executeUpdate();
  12. pStatement.close();//立即释放资源

参考:实验任务书-题目3

4. JDBCUtil与DAO

4.1 粘贴一段你认为比较有价值的代码,并说明为什么要摘取这段代码。出现学号

  1. //201521123100
  2. @Override
  3. public List<Student> findAll() {
  4. // TODO Auto-generated method stub
  5. Connection conn = null;
  6. Statement stat = null;
  7. ResultSet rs = null;
  8. Student stu=null;
  9. List<Student> students=new ArrayList<Student>();
  10. String sql = "select * from student";
  11. try {
  12. conn = JDBCUtil.getConnection();
  13. stat = conn.createStatement();
  14. rs = stat.executeQuery(sql);
  15. while(rs.next()){
  16. stu=new Student(rs.getInt("id"),rs.getString("name"));
  17. students.add(stu);
  18. }
  19. }catch (SQLException sqle) {
  20. sqle.printStackTrace();
  21. }catch(Exception e){
  22. e.printStackTrace();
  23. }finally{
  24. JDBCUtil.realeaseAll(rs,stat, conn);
  25. }
  26. return students;
  27. }

4.2 使用DAO模式访问数据库有什么好处?

A:Dao模式将获得连接与释放连接的操作封装起来,提供访问数据库的统一入口;通过数据库连接类可以简化开发,调用其中的方法就可以,不用因为某些细节而编写大量的重复代码

参考:实验任务书-题目5

5. 使用数据库改造购物车系统

5.1 使用数据库改造以前的购物车系统(应有图形界面)。如果以前为完成购物车系统,可编写基于数据库的学生管理系统。包括对学生的增删改查,要求使用。

5.2 相比较使用文件,使用数据库存储与管理数据有何不一样?

A:数据库采用一定的数据模型实现数据结构化,方便储存,有较高的安全性,与程序独立,共享性高

3. 码云

3.1. 码云代码提交记录

在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

201521123100《Java程序设计》第14周学习总结的更多相关文章

  1. 2018面向对象程序设计(Java)第14周学习指导及要求

    2018面向对象程序设计(Java)第14周学习指导及要求(2018.11.29-2018.12.2)   学习目标 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及 ...

  2. 面向对象程序设计(JAVA) 第14周学习指导及要求

    2019面向对象程序设计(Java)第14周学习指导及要求 (2019.11.29-2019.12.2)   学习目标 (1)掌握GUI布局管理器用法: (2)掌握Java Swing文本输入组件用途 ...

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  5. 201521123038 《Java程序设计》 第九周学习总结

    201521123038 <Java程序设计> 第九周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 ...

  6. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  7. 20175221 2018-2019-2 《Java程序设计》第一周学习总结

    20175221 2018-2019-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周通过观看书本配套视频,学到了如解释器,编译器等一些简单概念. 还懂得了java的一些简单 ...

  8. 20175314 《Java程序设计》第九周学习总结

    20175314 <Java程序设计>第九周学习总结 教材学习内容总结 根据课本的介绍下载了MySQL和Navicat for MySQL并成功对后者进行破解 MySQL客户端管理工具(如 ...

  9. 20175314 《Java程序设计》第二周学习总结

    20175314 <Java程序设计>第二周学习总结 教材学习内容总结 我在APPstore上发现了一个可以支持我们在IOS系统上学习实践Java程序的开发环境,只需要购买专业版就可以使用 ...

  10. 20155312 2016-2017-2 《Java程序设计》第九周学习总结

    20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...

随机推荐

  1. dll的两种加载方式(pend)+ delayload

    看过关于动态库的调用例子,于是决定动手做一做:dll的对外接口声明头文件,Mydll.h: //Mydll.h #include <stdio.h> #include <stdlib ...

  2. iOS绘图框架CoreGraphics分析

    由于CoreGraphics框架有太多的API,对于初次接触或者对该框架不是十分了解的人,在绘图时,对API的选择会感到有些迷茫,甚至会觉得iOS的图形绘制有些繁琐.因此,本文主要介绍一下iOS的绘图 ...

  3. BYS推荐MS前端PhoneCall面试问题整理-1

    1. SQL: 查出产品对应的销售数量,会用到2个表之间的连接: select Products.ProductName, Sales.SalesAmount from Product left ou ...

  4. 谈谈Golang中goroutine的调度问题

    goroutine的调度问题,同样也是我之前面试的问题,不过这个问题我当时并不是很清楚,回来以后立马查阅资料,现整理出来备忘. 有一些预备知识需要说明,就是操作系统中的线程.操作系统中的线程分为两种: ...

  5. 【Ubuntu 16】安装nginx

    近年来,nginx服务器程序由于负载均衡.反向代理.适于高并发的特性,获得越来越多互联网企业的青睐.在此为大家奉上nginx的安装过程,以供参考. 一.安装nginx 1.安装gcc\g++库 sud ...

  6. JavaScript基本语法2

    javaScript中要显示> .<必须使用&gt .&lt,如果是不显示但是要作为条件可以直接使用>.<. 接下来是JavaScirpt函数: 要使用func ...

  7. [2014-12-29]使用Enum位模式进行多重状态(或权限)管理

    前言 对于Enum在AspNet Mvc中的应用,我之前提到一种扩展,如何在 Asp.net Mvc 开发过程中更好的使用Enum.这里将介绍另一种更好的使用Enum的方法. Enum定义 以一个代表 ...

  8. python 三级联动

       china_map ={  "华南":{   "广东":["广州市","佛山市","深圳市", ...

  9. Android检查更新下载安装

    检查更新是任何app都会用到功能,任何一个app都不可能第一个版本就能把所有的需求都能实现,通过不断的挖掘需求迭代才能使app变的越来越好.检查更新自动下载安装分以下几个步骤: 请求服务器判断是否有最 ...

  10. jenkins 每个月1号到7号 一天执行一次

    在线Crontab表达式执行时间验证 / crontab执行时间计算 - aTool在线工具验证 http://www.atool.org/crontab.php 1.Build periodic a ...