1. 本周学习总结

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

2. 书面作业

1. MySQL数据库基本操作

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

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

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

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

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

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

2.1装载驱动,与数据库建立连接(Connection),向数据库发送SQL语句(Statement),获得和处理查询或更新语句返回的结果,关闭连接,释放资源。

3. PreparedStatement与参数化查询

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

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

3.1



3.2



运行:



统计整个操作所消耗的时间174微秒,pStatement.executeBatch()输出1表示指示成功处理了命令,给出执行命令所影响数据库中行数的更新计数。

4. JDBCUtil与DAO

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

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

//201521123115

class StudentDao

{

public Connection conn = null;

public Statement statement = null;

public PreparedStatement pst=null;

public ResultSet rs=null;

private static String querySql ="select * from lin";

public StudentDao() {

try {

Driver driver = new com.mysql.cj.jdbc.Driver();

DriverManager.registerDriver(driver);

String url = "jdbc:mysql://localhost:3306/student?serverTimezone=UTC&useSSL=false";

String user = "root";

String password = "123456";

conn = DriverManager.getConnection(url, user, password);

} catch (Exception e) {

e.printStackTrace();

}

}

public boolean add(Student stu)

{

boolean flag=true;

String sql= "insert into lin (Name,ID) values(?,?)";

try{

pst=conn.prepareStatement(sql);

pst.setString(1,stu.name);

pst.setInt(2,stu.id);

int i=pst.executeUpdate();

if(i==0){

flag=false;

}

}catch (Exception e)
{
e.printStackTrace();
}
finally {
try {
pst.close();
}catch(SQLException e) {}
} return flag;

}

public boolean delete(Student stu)

{

boolean flag=true;

String sql="delete from user where id=?";

try{

pst=conn.prepareStatement(sql);

pst.setInt(1,stu.id);

int i=pst.executeUpdate();

if(i==0){

flag=false;

}

}catch(Exception e)

{

e.printStackTrace();

}

finally {

try {

pst.close();

}catch(SQLException e) {}

}

return flag;

}

public boolean update(Student stu)

{

boolean flag=true;

String sql="update lin set Name=? where ID=?";

try{

pst=conn.prepareStatement(sql);

pst.setString(1,stu.name);

pst.setInt(2,stu.id);

int i=pst.executeUpdate();

if(i==0){

flag=false;

}

}catch (Exception e)

{

e.printStackTrace();

}

finally {

try {

pst.close();

}catch(SQLException e) {}

}

return flag;

}

public List findAll()

{

List students=new ArrayList();

try{

pst=conn.prepareStatement(querySql);

rs=pst.executeQuery();

while(rs.next())

{

students.add(new Student(rs.getString("Name"),rs.getInt("ID")));

}

}catch (Exception e)

{

e.printStackTrace();

}

finally {

try {

rs.close();

pst.close();

}catch(SQLException e) {}

}

return students;

}

public Student findById(int id)

{

Student stu=new Student();

String sql="SELECT * FROM lin where id=?";

try{
pst=conn.prepareStatement(sql);
pst.setInt(1,id);
rs=pst.executeQuery();
stu.name=rs.getString("Name");
stu.id=rs.getInt("ID");
}catch(Exception e)
{
e.printStackTrace();
}
finally{
try {
rs.close();
pst.close();
}catch(SQLException e) {}
} return stu;

}

public List findByName(String name)

{

String sql="SELECT * FROM lin where Name like "?%"";

List students=new ArrayList();

try{

pst=conn.prepareStatement(sql);

pst.setString(1,name);

rs=pst.executeQuery();

while(rs.next())

{

students.add(new Student(rs.getString("Name"),rs.getInt("ID")));

}

}catch (Exception e)

{

e.printStackTrace();

}

finally {

try{

rs.close();

pst.close();

}catch (SQLException e){}

}

return students;

}

DAO(Data Access Object):数据存取对象,位于业务逻辑和持久化数据之间,能够实现对持久化数据的访问

分工比较细,为了方便后期维护,使程序更加健壮。

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

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

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

5.2答:数据库可以存储大量的信息;数据库管理方便,可以用sql操作,对大量数据易于增,删,改,查,极大减少了工作量;数据库比普通的存储方式安全,一般的数据库都有备份数据的功能和相应的命令可以实现它。

3. 码云

3.1. 码云代码提交记录

在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

4.课外阅读

4.1 JDBC(TM) Database Access

4.2 代码结构中Dao,Service,Controller,Util,Model是什么意思,为什么划分

4.3 mysq数据库管理工具navicat基本使用方法

201521123115《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. HTML中直接写js 函数

    1.在HTML中直接写JS函数: <body onload="javascript:{window.location.href='http://www.baidu.com/'}&quo ...

  2. ionic3 app 退出应用程序

    在ionic3 打包的app,如果要实现代码来控制应用程序的推出. 在android以下代码是可以的,但是在ios是不支持的.因为这不适用于ios app,因为苹果apple 不允许应用程序以编程的方 ...

  3. 设计模式之Iterator模式

    STL里的iterator就是应用了iterator模式. 一.什么是迭代模式 Iterator模式也叫迭代模式,是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator按顺 ...

  4. Ngnix+tomcat负载均衡

    系统环境 Centos6.5 nginx1.4.7  https://nginx.org/download/nginx-1.4.7.tar.gz tomcat7.0.79 http://apache. ...

  5. iOS app 的 ASLR

    这两天逆向一个程序,发现每次image list -o -f 之后,它的基地址都是0x00000,也就是偏移地址是0.  想到这个应该是载入内存时有没有启用偏移有关,于是找了下答案:aslr 百度百科 ...

  6. shell 多进程

    shell 多进程来模拟多线程 (1){ } 建立代码块 (2)使用 & 将进程放入后台 [zheng@localhost ~]$ cat threads.sh #!/bin/bash ;i& ...

  7. shell的简单批量curl接口脚本

    shell脚本可以说作用非常大,在服务器领域,用shell操作事务可比手动点击要方便快捷得多了.虽然只是文字界面,但是其强大的处理功能,会让各种操作超乎想象.而且,也可以将这些习惯移植到日常的工作当中 ...

  8. Notification弹出实现

    Notification的几种基本使用方法,大家肯定都已经烂熟于心,我也不必多说.给一个链接:https://zhuanlan.zhihu.com/p/25841482 接下来我想说的是android ...

  9. My Favorite Color

    我喜欢的颜色收藏.. <H4>标签的颜色: Html中行内样式的设置.. Html中行内样式的设置.. Html中行内样式的设置.. Html中行内样式的设置.. <html> ...

  10. SpringMVC详解(六)------与json交互

    Json(JavaScript Object Notation),它是一种轻量级数据交换格式,格式简单,易于读写,目前使用特别广泛.那么这篇博客我们主要谈谈在 SpringMVC 中,如何对 json ...