201521123025《java程序设计》第14周学习总结
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. 码云

201521123025《java程序设计》第14周学习总结的更多相关文章
- 201521123025<java程序设计>第五周学习总结
		
1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...
 - 201521123025<<java程序设计>>第4周学习总结
		
Q1. 本周学习总结 Q2.书面作业 1.注释的应用 使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) 2.面向对象设计(大作业1,非常重要) 2.1 将在网上 ...
 - 201521123025 <<java程序设计>>第3周学习总结
		
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
 - 201521123025<<java程序设计>>第9周学习总结
		
1. 本周学习总结 2.书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 经常出现Array ...
 - 2018面向对象程序设计(Java)第14周学习指导及要求
		
2018面向对象程序设计(Java)第14周学习指导及要求(2018.11.29-2018.12.2) 学习目标 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及 ...
 - 面向对象程序设计(JAVA) 第14周学习指导及要求
		
2019面向对象程序设计(Java)第14周学习指导及要求 (2019.11.29-2019.12.2) 学习目标 (1)掌握GUI布局管理器用法: (2)掌握Java Swing文本输入组件用途 ...
 - 20145213《Java程序设计》第二周学习总结
		
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
 - 21045308刘昊阳 《Java程序设计》第九周学习总结
		
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
 - 201521123038 《Java程序设计》 第九周学习总结
		
201521123038 <Java程序设计> 第九周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 ...
 - 20155303 2016-2017-2 《Java程序设计》第二周学习总结
		
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
 
随机推荐
- Ubuntu下OpenCV不能被某个python版本识别
			
Ubuntu下OpenCV不能被某个python版本识别 Solution: 可以进入相应版本的python,查看该python的path: python import sys print(sys.p ...
 - python基础笔记(一)
			
python解释器执行python程序的过程:python3 C:\test.py 1.启动python解释器(内存中) 2.将C:\test.py 内容从硬盘读入内存(这一步与文本编辑器是一样的) ...
 - QtWebEngine加载资料缓慢
			
最近由于项目需要(另外Qt后续版本也将不再支持QtWebKit),把Qt工程涉及QtWebKit的移植为QtWebEngine,用的Qt版本为5.5.0,结果出现QWebEngineView加载网页是 ...
 - C/C++ 知识点---字符串函数
			
1.strcpy字符串拷贝2.strcmp字符串比较3.strstr字符串查找4.strDelChar字符串删除字符5.strrev字符串反序6.memmove拷贝内存块7.strlen字符串长度 - ...
 - Linux下C程序的存储空间布局
			
一个程序本质上都是由 BSS 段.data段.text段三个组成的.可以看到一个可执行程序在存储(没有调入内存)时分为代码段.数据区和未初始化数据区三部分. BSS段(未初始化数据区):在采用段式内存 ...
 - SQL连接、合并、子查询
			
连接:连接分为内连接.外连接.交叉连接 内连接和外连接都是在笛卡尔积的基础做一些修改. 合并查询:把两个相似的结果可以用union联合起来. mysql> select id,time from ...
 - a标签链接到当前页内指定位置
			
<a name="me">hello</a><br/><br/><br/><br/><br/>& ...
 - 新版TP-Link无线路由器怎么设置
			
TP-Link路由器的设置和无线WIFI的设置.. -------------- 一.准备工作: 1.首先是路由器的安装,将路由器电源接上,并通电,然后网线的连接.如果是拨号上网用户,请将猫引出的网线 ...
 - 线性代数-矩阵-【1】矩阵汇总  C和C++的实现
			
矩阵的知识点之多足以写成一本线性代数. 在C++中,我们把矩阵封装成类.. 程序清单: Matrix.h//未完待续 #ifndef _MATRIX_H #define _MATRIX_H #incl ...
 - Volatile和Synchronized对可见性和原子性的支持
			
在学习并发编程的时候,遇见了volatile和synchronized关键字问题,volatile是可以保证可见性,但无法保证原子性,synchronized关键字由于其是加锁机制,肯定是可以保证原子 ...
 
			
		