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 ...
随机推荐
- Python集合(set)类型的操作
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...
- linux下访问windows的共享
linux下,要访问windows的共享,有好几种情况,下面进行总结. 外面的文章,有点介绍需要使用samba,有点说什么都不需要,只需要mount加上参数, 功能是实现,不过原理,还是不太明白,我发 ...
- 如何输入EOF
很多线上笔试的编程题要求能循环处理多个case,需使用while(scanf("%s",tmp)!=EOF)语句.EOF表示文件结束符,但是在本机的编译环境中,如何在控制台输入EO ...
- Python 对象引用、可变性和垃圾回收
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 25.0px Helvetica } 变量不是盒子 在示例所示的交互式控制台中,无法使用"变量是盒 ...
- oracle内存优化
一直都想总结一下oracle内存调整方面的知识,最近正好优化一个数据库内存参数,查找一些资料并且google很多下.现在记录下来,做下备份. 一.概述: ...
- 【Centos】修改系统字符集
centos7: vim /etc/locale.conf LANG=zh_CN.gb2312 其他版本linux: vim /etc/sysconfig/i18n
- Windows10-安装笔记
Windows10-安装笔记... ------------------------------ ---------------------------------------- 加载镜像.加载完后. ...
- PHP 字符串替换
这是2017上半年的第一篇学习笔记,也是最后一篇,捂脸- 在前几天的工作中,关于"银行卡"页面原型如下,其中,不同银行卡的卡号只保留了最后四位数字可以显示,其他数字均用*字符隐藏了 ...
- 基于pytorch的CNN、LSTM神经网络模型调参小结
(Demo) 这是最近两个月来的一个小总结,实现的demo已经上传github,里面包含了CNN.LSTM.BiLSTM.GRU以及CNN与LSTM.BiLSTM的结合还有多层多通道CNN.LSTM. ...
- 题目1522:包含min函数的栈
#include <iostream> #include <cstdio> #include <stack> using namespace std; int ma ...