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根据用户指定的查询条件进行查询。(粘贴一段你认为比较有价值的代码,出现学号)

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

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

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

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

4. JDBCUtil与DAO

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

//201521123025
public StudentDaoArrayImpl(int size) {
		this.size = size;
		students = new Student[size];//指定数组大小
	}

	@Override
	public Student readStudent(String name) {
		Student temp = null;
		for(int i=0; i<students.length;i++){
			if(students[i]!= null){
				if (students[i].getName().equals(name)){//写入学生
					temp = students[i];
					break;
				}
			}
		}
		return temp;
		
	}

	@Override
	public boolean writeStudent(Student student) {
		boolean success = false;
		for(int i=0; i<students.length;i++){//输出要查找学生
			if(students[i]==null){
				students[i] = student;
				success = true;
				break;
			}
		}
		return success;
	}
	
	@Override
	public void diplayAllStudent(){
		for(Student e:students){//输出所有学生
			if (e != null)
				System.out.println(e);
		}
	}

	@Override
	public List<Student> getAllStudents() {
		return null;
	}

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

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

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

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

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

String strSql = "select * from prouct where name = ? ";//按名称查询商品
			pStatement = con.prepareStatement(strSql);
			pStatement.setString(1, name);
			rs = pStatement.executeQuery();			
			System.out.println("商品名\t库存数\t单价");
			while(rs.next()){				
				System.out.print(rs.getString("name")+"\t");				
				System.out.print(rs.getInt("num")+"\t");
				System.out.print(rs.getDouble("price")+"\t");		
			}
			pStatement.close();

try {//201521123025
		Class.forName(driverName);
		conn = DriverManager.getConnection(URL,userName,password);
		Statement statement = conn.createStatement();
		ResultSet resultSet = statement.executeQuery(sql);
		while(resultSet.next()){
			String name = resultSet.getString("name");
			Int num = resultSet.getInt("num");
			Double price =  resultSet.getDouble("price");
			System.out.print("name="+name+" num="+num+" price="+price);
				}
				
			} 

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

1.查看数据库的数据需要有用户名和密码的输入,而文件是任何人都可以查看,另外数据库一般有备份数据的功能,所以数据库更安全些。
2.用数据库访问修改数据比较方便,所有关系型数据库都可以用sql操作数据库;而使用文件操作数据时,需要打开文件来存储然后关闭文件。

3. 码云