教材学习内容总结

第11章-JDBC与MySQL数据库

要点

  • MySQL数据库管理系统
  • 连接MySQL数据库
  • 查询操作(基础)
  • 更新、添加、删除(基础)
  • 预处理语句(重点)
  • 通用查询(难点)
  • 事务

笔记

1. 查询操作

  • 基本操作:

    • 与数据库取得连接(不同数据库仅在这一句中的链接和代码中的驱动forname不同):
    String uri = "jdbc:mysql://localhost:3306/<所键表格的名字>?useSSL=true";
    • 向已连接的数据库发送SQL语句创建查询对象(置于代码中):
    try{  Statement sql=con.createStatement();
    }
    catch(SQLException e ){}
    • 处理SOL语句返回的结果(两种方式选一即可):
    getString(int columnIndex)
    getString(String columnName)
    • 友好关闭数据库:con.close()
  • 三种查询方式:

    • 顺序查询
    • 控制游标
      • 得到可滚动的结果集:Statement stmt = con.createStatement(int type ,int concurrency);
    • 条件与排序查询
      • where子句:select 字段 from 表名 where 条件
      • 排序:用order by子语句对记录排序

2. 更新、添加、删除

  • 更新:update 表 set 字段 = 新值 where <条件子句>
  • 添加:insert into 表(字段列表) values (对应的具体的记录)insert into 表 values (对应的具体的记录)
  • 删除:delete from 表名 where <条件子句>

3. 使用预处理语句

  • 使用通配符

常用预处理语句设置通配符?的值的方法:

void setData(int parameterIndex,Data x)
void setDouble(int parameterIndex,double x)
void setFloat(int parameterIndex,float x)
void setInt(int parameterIndex,int x)
void setLong(int parameterIndex,long x)
void setString(int parameterIndex,string x)

4. 通用查询

  • 编写一个类,只要用户将数据库名,SQL语句传递给该类对象,那么这个对象就用一个二维数组返回查询的记录(eg. 运行结果是个表格),使用的是返回到程序中的结果集来获取相关信息
  • 具体步骤:
    • 结果集的元数据对象:ResultSetMetaData = rs.getMetaData();
    • 调用getColumnCount()方法返回结果集rs中的列的数目:int columnCount = metaData.getColumnCount()
    • 想要返回第i列的数据就用:string columnCount = metaData.getColumnCount(i)

5. 事务

  • JDBC事务处理步骤

    • 关闭自动提交模式方法:setAutoCommit(booean b)
    • 处理事务方法:commit()
    • 处理事务失败:rollback()

教材学习中的问题和解决过程

  • Q1:在老师的推荐和教程Intellj IDEA 简易教程的指导下,选择直接安装XAMPP,但下载完后运行了setup_xampp.bat显示运行成功了,但打开contral界面却出现如下状况?

经过查询得知,造成这个错误的原因是,XAMPP的设置的常用端口,包含http和https端口都被占用了,参考了网上的经验对Apache的Config文件进行修改后就可以运行了。参考了百度经验,但由于我的82端口也被占用,因此将“80”改为“8080”,将“443”改为“4433”,关掉XAMPP后再次打开就可以运行了。

  • Q2:在phpMyAdmin中导入了安装包world.sql,在IDEA中运行程序还是出现错误?

检查后发现是在配置的时候忘了将zip解压缩,导致选择的是错误的对象,创建出的是空的表。

可以使用快捷方式打开project Structure

解压后再按照教程进行下一步,成功建表后就可以运行了

测试代码运行结果:

在phpAdmin中查询有:

代码调试中的问题和解决过程

  • Q1:运行测试代码时代码可以成功运行,但在运行Example11_1.java时,却出现如下错误?

改正参数后仍有错误(查找失败,不存在表格)

在仔细审查后发现还未建立表格,回到SQL处执行代码:

use demo;
CREATE TABLE students (
number char char(50) AUTO_INCREMENT PRIMARY KEY,
name varchar(100),
birthday data,
height float
) CHARSET=UTF8;

建表如图:

再回到IDEA中运行代码即可成功运行了

思考与感悟

本周主要学习了数据库的安装和操作,在安装XAMPP的时候出现了很多小问题,在同学和教材的帮助下成功一一解决了,安装好了数据库,今后的学习应该会更加方便。

错题总结

详见博客:week6测试错题总结

代码托管

详见码云:码云作业

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3000行 30篇 400小时
第七周 1324/200 2/11 20/20 深入

参考资料

  1. 教学视频
  2. 程序开发与信息安全工具箱
  3. Intellj IDEA 简易教程

20165223《Java程序设计》第七周Java学习总结的更多相关文章

  1. 20145203 盖泽双《Java程序设计》第一周的学习总结

    20145203 盖泽双<Java程序设计>第一周学习总结 教材学习内容总结 第一章 1.Java是一门完全面向对象,安全可靠,与平台无关的编程语言. 2.Java现由Java SE.Ja ...

  2. 20165223《Java程序设计》第九周Java学习总结

    教材学习内容总结 第13章- URL类 InetAddress类 套接字 UDP数据报 广播数据报 Java远程调用(RMI) 教材学习中的问题和解决过程 1. URL类 URL类构造方法: 使用字符 ...

  3. 201521123027 <java程序设计>第七周学习总结

    1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...

  4. 20165203《Java程序设计》第二周Java学习总结

    教材学习内容总结 第二章 (一)标识符 注意: 标识符由字母.下画线.美元符号和数字组成,长度不受限制. 标识符第一个字符不能是数学字符. 标识符不能是关键字. 标识符不能是true.false和nu ...

  5. 20165223《JAVA程序设计》第二周学习总结

    20165223 <JAVA程序设计>第二周学习总结 教材学习内容总结 第二章要点 标识符与关键字 基本数据类型 类型转换运算 输入输出数据 数组 第三章要点 运算符与表达式 语句概述 i ...

  6. 20165223《JAVA程序设计》第一周学习总结

    20165223 <JAVA程序设计>第一周学习总结 教材学习内容总结 通过网站JAVA第一章视频教程.教材.老师所给的教程及网上查询进行学习 第一章要点 JAVA地位和特点 地位:网络. ...

  7. 20165203《Java程序设计》第七周Java学习总结

    20165203<Java程序设计>第七周Java学习总结 教材学习内容总结 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系统,简称MySQL,是世 ...

  8. 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

  9. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  10. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

随机推荐

  1. react-redux异步数据操作

    import React, { Component } from 'react'; import './App.css'; import {connect} from 'react-redux'; i ...

  2. laravel 关联中的预加载

    预加载 当作为属性访问 Eloquent 关联时,关联数据是「懒加载」的.意味着在你第一次访问该属性时,才会加载关联数据.不过,是当你查询父模型时,Eloquent 可以「预加载」关联数据.预加载避免 ...

  3. Oracle Profile 配置文件

    Profile是用户的配置文件,它是密码限制,资源限制的命名集合.利用profile 可以对数据库用户进行基本的资源管理,密码管理. 1 创建profile 的语法 create profile pr ...

  4. mybatis源码分析(一)------------入门

    在进行源码分析前,先写一个使用mybatis进行开发的demo,方便我们后面进行分析. 一 关于mybatis的demo  pom.xml文件 <project xmlns="http ...

  5. 运行pip报错:Fatal error in launcher: Unable to create process using '"'

    参考: https://blog.csdn.net/cjeric/article/details/73518782

  6. Django--CRM

    一 . 什么是CRM CRM就是客户关系管理系统(customer relationship management) 二 . 用户登录 # models.py文件 class UserProfile( ...

  7. windows 安装tensorflow

    原文知乎:https://zhuanlan.zhihu.com/p/25778703 前言 看到Rstudio中开始支持Tensorflow,本人是欣喜若狂的,同时TensorFlow官网从16年9月 ...

  8. Http请求笔记

    1 HTTP请求报文组成: 请求行:请求方法 url 协议版本 请求头:报文头-属性名:属性值 Accept属性告诉服务端-客户端接受什么类型的响应,可为一个或多个mime类型值 Cookie:服务端 ...

  9. 使用proxychains 代理终端

    最近在国外的vps上搭建了一个ss服务器,在浏览器里面设置socks5代理上网很方便, 但是终端里面却只支持http方式的代理配置,网上有socks转http代理的方式,但是最近发现一个更为简单的方式 ...

  10. hdu-3294(最长回文子串)

    题意:给你一个字符和一个字符串让你求出最长回文子串并且输出来,答案需要根据给出的字符转换一下,就是将给出的字符认定为a,然后依次向后推: 解题思路:manacher模板+一些处理 代码: #inclu ...