1. 本周学习总结

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

MySql数据库简单操作

1.启动与退出(quit或exit )

2. 操作

  • 显示所有数据库: show databases;
  • 创建数据库: create database test;
  • 删除数据库: drop database test;
  • 连接数据库: use test;
  • 使用数据库前,要先连接数据库
  • 查看当前连接的数据库: select database();
  • 当前数据库包含的表: show tables;

    3.表操作:
  • 使用use连接数据库,然后创建一个表比如:create table students()
  • 删除表 drop table students;
  • 插入数据 insert into students(????);
  • 查询表中的数据 select * from students;
  • 删除表中数据 delete from students where id = ?;

JDBC

java.sql.DriverManager:加载驱动、建立连接

作用:载入各种不同的JDBC驱动

java.sql.Connection :数据库连接

java.sql.Statement :处理连接中的SQL语句

java.sql.ResultSet :处理结果集

JDB体系架构和工作原理



Statement和PreparedStatement

  • PreparedStatement接口继承自Statement接口
  • PreparedStatement比普通的Statement对象使用起来更加灵活,更有效率

2. 书面作业

1. MySQL数据库基本操作

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

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


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

连接数据库,创建一个表

插入数据

显示所有数据库

查看当前连接的数据库

当前数据库包含的表

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

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

2.2 使用JDBC操作数据库主要包含哪几个步骤?


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

//201521123011
try {
Class.forName(JDBC驱动类);//jdbc 4.0后无需加载驱动
} catch (ClassNotFoundException e) {
System.out.println("无法找到驱动类");
}
try {
Connection con=DriverManager.getConnection(JDBC URL,数据库用户名,密码); Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
conn.close(); //不好的关闭方式
} catch (SQLException e) {
e.printStackTrace();
}

2.2

1、加载JDBC驱动程序;(jdbc4.0后无需载入驱动)

2、提供JDBC连接的URL

3、创建数据库的连接

4、创建一个Statement

5、执行SQL语句

6、处理结果

两种情况:

a、执行更新返回的是本次操作影响到的记录数。

b、执行查询返回的结果是一个ResultSet对象。

7、关闭JDBC对象

a.关闭记录集

b.关闭声明

c. 关闭连接对象

3. PreparedStatement与参数化查询

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

3.2 批量更新-批量插入1000个学生,统计整个操作所消耗的时间。(使用方法executeBatch)


3.1

String strSql = "insert into students(stuno,name,gender,birthdate,major) values(?,?,?,?,?)";
pStatement = con.prepareStatement(strSql);
pStatement.setString(1, "2015011");//设置参数
PreparedStatement比普通的Statement对象使用起来更加灵活,更有效率,可以使用问号(?)作为参数,用executeQuery(); 执行查询

3.2

con.setAutoCommit(false);//不自动提交
pstmt.addBatch(); //收集参数
pstmt.executeBatch(); //批量送出参数
con.commit(); //提交!真正改变数据

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

4. JDBCUtil与DAO

4.1 粘贴一段你认为比较有价值的代码,出现学号

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

使用JDBCUtil进行id查询

//201521123011
public static void main(String[] args)
{
Student[] students = new Student[3];
students[0] = new Student("Tom");
students[1]= new Student("Jerry");
students[2] = new Student("Sophia");
StudentDao sdm = new StudentDaoArrayImpl(50);//使用数组实现
//StudentDao sdm = new StudenDaoListImpl();//使用列表实现
//StudentDao sdm = new StudentDaoJDBCImpl();
//下面的代码,无需关心后台到底是文件、数据库、数组、List
//因为这里是面向StudentDao接口进行编程,所以不管上面怎么修改,下面代码可以不用改动
System.out.println("===========写入学生========");
for(Student e:students){
if (!sdm.writeStudent(e)){
System.out.println("添加学生失败");
}else{
System.out.println("插入成功!!");
}
}

4.2

Dao接口将接口与实现相分离,可以使用数组或者来进行学生的添加。将每种功能分开实现,然后再建一个class连接数据库,这样代码简介明了,修改时也可以局部修改,方便调用。

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

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

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

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

5.1

以学生管理系统为例:

原本标准含有的学生信息

增加学生信息

修改学生信息

删除学生信息

5.2

数据库存储方便管理,而且读取速度快效率高,容量大。而文件存储使用文件存储与管理,硬盘空间浪费严重,容易造成数据的不一致;把数据组织成相互独立的数据文件,整体无结构;

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

3. 码云

3.1. 码云代码提交记录

201521123011《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. 写java代码遇到的一些问题

    记录一些做论文实验写代码时遇到的问题. 数据库SQL语句方面: 1.java通过JDBC连接MySql数据库方法 参见:http://hzy3774.iteye.com/blog/1689525 2. ...

  2. spotlight 索引重建

    从Mac的App Store 上 自动更新微信之后,发现不能在SpotLight上搜索到了. 想着应该是索引出现了问题. 方法一. 采用如下命令重建索引: sudo mdutil -i off /该命 ...

  3. java微信公众平台开发

    微信公众平台的开发,总体说来也是简单的,就是先大概看下微信公众平台接口文档. 请先大概浏览一下API手册,我们会发现,推送给微信服务器的数据有两种:xml的形式,和json的形式. 那么什么时候是XM ...

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

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

  5. cycript

    cycript是大神saurik开发的一个非常强大的工具,可以让开发者在命令行下和应用交互,在运行时查看和修改应用.它确实可以帮助你破解一些应用,但我觉得这个工具主要还是用来学习其他应用的设计(主要是 ...

  6. iOS app 逆向过程(持续更新完善)

    一.获取待逆向的app 1.用cyder2直接从源里下载,适合逆向越狱开发的软件. 2.从pp助手中下载,pp助手中有越狱应用和正版应用.越狱应用直接是已经脱壳的,未越狱应用还需要执行砸壳 二.获取待 ...

  7. 去除ios反调试

    在逆向过程中经常会遇到反调试,如下段代码: 0008bd8e movs r1, #0xa ; argument #2 for method imp___symbolstub1__dlopen 0008 ...

  8. 【Hadoop】 2.7.3版本 hdfs 命令行使用

    1.查看HDFS下目录结构及文件 dream361@ubuntu:~$ hdfs dfs -ls -R / 2.创建文件目录/tmp dream361@ubuntu:~$ hdfs dfs -mkdi ...

  9. 部分iphone手机上的div的点击事件无效

    最近在做一个手机移动端的项目,Andrio手机和部分iphone手机上点击事件都是好的,只有在老的型号上的iphone手机上点击事件无效果. 后来在网上查了很多资料,发现有加样式cursor:poin ...

  10. httpclient 学习

    Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基 ...