1. 本周学习总结

2. 书面作业

1. MySQL数据库基本操作

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

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

  • 更新表中数据:

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

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

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

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

1.装载驱动 //jdbc 4.0不再需要手动加载

2.与数据库建立连接(Connection)

3.向数据库发送SQL语句(statement)

4.获得和处理查询或更新语句返回的结果

5.关闭连接,释放资源

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

3. PreparedStatement与参数化查询

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

  1. //201521123025
  2. String strSql = "select * from students where age = ? ";//查询年龄=22的学生
  3. pStatement = con.prepareStatement(strSql);
  4. pStatement.setInt(1, 22);
  5. rs = pStatement.executeQuery();
  6. System.out.println("id\t编号 \t \t姓名\t年龄\t出生日期");
  7. while(rs.next()){
  8. System.out.print(rs.getInt("id")+"\t");
  9. System.out.print(rs.getString("stuno")+"\t");
  10. System.out.print(rs.getString("name")+"\t");
  11. System.out.print(rs.getInt("age")+"\t");
  12. System.out.println(rs.getDate("birthdate"));
  13. }
  14. pStatement.close();//立即释放资源

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

  1. try {//201521123025
  2. con = DriverManager.getConnection(url,userName, password);
  3. long time1=System.currentTimeMillis();
  4. //根据参数的插入数据
  5. for(int i=0;i<1000;i++)
  6. {String strSql = "insert into students(stuno,name,age,birthdate) values(?,?,?,?)";
  7. pStatement = con.prepareStatement(strSql);
  8. pStatement.setString(1, "2015200");
  9. pStatement.setString(2, "lin");
  10. pStatement.setInt(3, 18);
  11. pStatement.setString(4, hmFromat.format(new Date()));
  12. pStatement.addBatch();
  13. }
  14. long time2=System.currentTimeMillis();
  15. Calendar ca=Calendar.getInstance();
  16. ca.setTimeInMillis(time2-time1);
  17. System.out.println("耗时:"+ca.get(Calendar.MINUTE) + "分 " + ca.get(Calendar.SECOND) + "秒 " + ca.get(Calendar.MILLISECOND) + " 微秒");
  18. int[] arr=pStatement.executeBatch();
  19. pStatement.close();
  20. System.out.println(Arrays.toString(arr));

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

4. JDBCUtil与DAO

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

  1. //201521123025
  2. public StudentDaoArrayImpl(int size) {
  3. this.size = size;
  4. students = new Student[size];//指定数组大小
  5. }
  6. @Override
  7. public Student readStudent(String name) {
  8. Student temp = null;
  9. for(int i=0; i<students.length;i++){
  10. if(students[i]!= null){
  11. if (students[i].getName().equals(name)){//写入学生
  12. temp = students[i];
  13. break;
  14. }
  15. }
  16. }
  17. return temp;
  18. }
  19. @Override
  20. public boolean writeStudent(Student student) {
  21. boolean success = false;
  22. for(int i=0; i<students.length;i++){//输出要查找学生
  23. if(students[i]==null){
  24. students[i] = student;
  25. success = true;
  26. break;
  27. }
  28. }
  29. return success;
  30. }
  31. @Override
  32. public void diplayAllStudent(){
  33. for(Student e:students){//输出所有学生
  34. if (e != null)
  35. System.out.println(e);
  36. }
  37. }
  38. @Override
  39. public List<Student> getAllStudents() {
  40. return null;
  41. }

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

DAO模式的使用相当于建立一个接口,接口中定义了方法。在程序中,当需要和数据进行交互的时候则使用这个接口,并且编写一个实现类来实现这个接口上的方法,代码之间的板块分配很清晰,而且在后期对程序的修改,只需对DAO模式中的某个方法修改即可,不需要整个项目都进行修改。

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

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

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

  1. String strSql = "select * from prouct where name = ? ";//按名称查询商品
  2. pStatement = con.prepareStatement(strSql);
  3. pStatement.setString(1, name);
  4. rs = pStatement.executeQuery();
  5. System.out.println("商品名\t库存数\t单价");
  6. while(rs.next()){
  7. System.out.print(rs.getString("name")+"\t");
  8. System.out.print(rs.getInt("num")+"\t");
  9. System.out.print(rs.getDouble("price")+"\t");
  10. }
  11. pStatement.close();
  1. try {//201521123025
  2. Class.forName(driverName);
  3. conn = DriverManager.getConnection(URL,userName,password);
  4. Statement statement = conn.createStatement();
  5. ResultSet resultSet = statement.executeQuery(sql);
  6. while(resultSet.next()){
  7. String name = resultSet.getString("name");
  8. Int num = resultSet.getInt("num");
  9. Double price = resultSet.getDouble("price");
  10. System.out.print("name="+name+" num="+num+" price="+price);
  11. }
  12. }

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

1.查看数据库的数据需要有用户名和密码的输入,而文件是任何人都可以查看,另外数据库一般有备份数据的功能,所以数据库更安全些。

2.用数据库访问修改数据比较方便,所有关系型数据库都可以用sql操作数据库;而使用文件操作数据时,需要打开文件来存储然后关闭文件。

3. 码云

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

  1. 201521123025<java程序设计>第五周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...

  2. 201521123025<<java程序设计>>第4周学习总结

    Q1. 本周学习总结 Q2.书面作业 1.注释的应用 使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) 2.面向对象设计(大作业1,非常重要) 2.1 将在网上 ...

  3. 201521123025 <<java程序设计>>第3周学习总结

    1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  4. 201521123025<<java程序设计>>第9周学习总结

    1. 本周学习总结 2.书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 经常出现Array ...

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 开源社交系统ThinkSNS+ V0.8.0 正式发布(一期功能版本)

    智士软件旗下开源sns社交系统ThinkSNS即将进入10周年,推出并行两代系统ThinkSNSV4和ThinkSNS+,以专业易用的技术源码输出,驱动互联网社交软件建设及创业,使用ThinkSNS改 ...

  2. 模拟controfile丢失与重建

    --模拟controlfile丢失与重建 ----------------------------------------------------------------2013/09/21 1. 关 ...

  3. 熟悉JS中的常用选择器及属性、方法的调用

    选择器.属性及方法调用的配合使用: <style>            #a{                width: 200px;                height: 1 ...

  4. Jmeter+badboy环境搭建

    [JMeter安装] 1. 访问官网 下载jmeter包 http://jmeter.apache.org/ 2. 解压到安装目录 D:\Program Files (x86)\apache-jmet ...

  5. sublime代码格式化插件HTML/CSS/JS prettify

    1. 进入下载链接,安装node.js (根据自己使用版本) https://nodejs.org/en/download/ 注意: 记住node.js的 安装路径 2.sublime HTML/CS ...

  6. 记一次VS Code崩溃的解决(Win10扫描自动回复系统文件)

    早上修改Vue.js框架搭建的项目,正高兴着,突然电脑崩溃,重启后VS code打不开,报错如下: DWrite.dll丢失 然后查看了一下 C:\windows\system32\下  DWrite ...

  7. 7.31.2 this关键字

    this用在所有方法中:    用来区分局部变量和成员变量的名字二义性! 如:在set方法中这样写:name = name; 则java会遵循"谁近谁优先"的规则,会给局部变量赋值 ...

  8. 7.21.01 if语句

    if语句 一个if语句包含一个布尔表达式和一条或多条语句. 语法 if语句的用语法如下: if(布尔表达式) { //如果布尔表达式为true将执行的语句 } 如果布尔表达式的值为true,则执行if ...

  9. 2_http协议详解

    当客户端与服务器进行交互时,就存在web请求,这种请求都基于统一的应用层协议(http协议)交互数据.它允许将HTML文档从web服务器传送到web浏览器. http协议是无状态的协议.无状态是指we ...

  10. 永久关闭selinux | 防火墙

    关闭SELinux的两种方法 1 永久方法 – 需要重启服务器 修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器. 2 临时方法 – 设置系统参数 ...