201521123011《Java程序设计》第14周学习总结

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. 码云代码提交记录

posted @ 2017-05-27 20:46  叫我小天才  阅读(302)  评论(0编辑  收藏  举报