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;

}

  1. }catch (Exception e)
  2. {
  3. e.printStackTrace();
  4. }
  5. finally {
  6. try {
  7. pst.close();
  8. }catch(SQLException e) {}
  9. }
  10. 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) {}

}

  1. 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) {}

}

  1. 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) {}

}

  1. return students;

}

public Student findById(int id)

{

Student stu=new Student();

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

  1. try{
  2. pst=conn.prepareStatement(sql);
  3. pst.setInt(1,id);
  4. rs=pst.executeQuery();
  5. stu.name=rs.getString("Name");
  6. stu.id=rs.getInt("ID");
  7. }catch(Exception e)
  8. {
  9. e.printStackTrace();
  10. }
  11. finally{
  12. try {
  13. rs.close();
  14. pst.close();
  15. }catch(SQLException e) {}
  16. }
  17. 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){}

}

  1. 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. 剑指OFFER——调整数组顺序使奇数位于偶数前面

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 剑指offer书里的版本, ...

  2. 实现Echarts折线图的虚实转换

    需求:医院的体温单,在统计体温时,对于正常情况下统计的体温数据,需要显示实线:对于进行物理降温后统计的体温数据,需要显示虚线. 现有的体温单是运用 Echarts 折线图,统一用实线显示.因此在这基础 ...

  3. Linux中mysql乱码问题

    注意: 关于utf8和gbk的区别详细见:linux中文乱码问题解决办法 http://www.linuxidc.com/Linux/2010-04/25757.htm ,下面的配置中根据自己要求选择 ...

  4. android studio多渠道多包名多apk打包

    转自  利用 Android Studio 和 Gradle 打包多版本APK 搬砖的道路上,经常会有各种不同的需求,比如今天就碰到过一个打包版本的apk的要求, 比如一个apk给多个客户使用,如张三 ...

  5. win10 安装 mysql解压版安装步骤

    参考资料:win 10 安装 mysql 5.7 网址:http://blog.sina.com.cn/s/blog_5f39af320102wbk0.html 本文参考上面的网址的教程,感谢作者分享 ...

  6. MYSQL创建数据库时候直接指定编码和排序规则

    安装我 在网上搜索的结果执行 代码: sudo gedit /etc/mysql/my.cnf 设置了默认编码为 UTF8 代码: [client]port            = 3306sock ...

  7. 电脑每次开机都出现check file system on:C 的解决办法

    电脑每次开机都出现check file system on:C 的解决办法... ----------------------------------------- ----------------- ...

  8. sphinx随笔记了一下

    sphinx笔记 一:下载中文版coreseek包1:解压后,将etc下的mysql.conf文件复制一份放到上级目录下,改名为sphinx.conf2:配置文件: 2.1:source配置数据源so ...

  9. 虚拟机下安装VMware Tools

    使用虚拟机安装第二操作系统,是我们经常使用到的一种方法,但是为了能够在虚拟机与本地操作系统间进行文件共享,我们可以借助一款非常实用的工具VMware Tools.下面我们就来说一下怎样安装VMware ...

  10. 一个还算简单的微信消息SDK(基于.Net Standard 2.0)

    虽然微信公众号出现了好久,不过在SDK这件事情上感觉并没有多少人把它当成一个有技术含量的事情来做,很多SDK做的事情就是一个代码的堆叠,当然也可能写的好的并没有开源出来.所以在某个翻遍Github而无 ...