前五天知识总结

                                                          第一天

HTML
1、html的简介
(1)超文本标记型语言,是网页的语言。
(2)html程序遵循一定的规范
第一个:html程序以开始,同时结束
第二个:html程序包含两部分内容:head和body
*
设置页面信息
显示到页面上的内容

第三个:html的标签有开始标签,同时也要结束标签
第四个:html的代码不区分大小写的
第五个:有些标签没有结束标签,需要在标签内结束

* 实现换行的操作,使用标签实现的
, 没有

(3)html的操作思想
* 在网页中可能有很多的数据,不同的数据可能需要不同的显示效果,这个时候需要使用标签把要操作的数据包起来
(封装),通过修改标签的属性值来实现标签内数据样式的变化。标签相当于一个容器,通过修改容器的属性值,
实现容器内数据样式的变化。

2、字体标签
(1)文字标签

* <font color="设置文字颜色" size="文字的大小">要操作的文字的内容</font>
(2)标题标签 <h1></h1> <h2></h2>.......<h6></h6>
** 标题标签可以自动换行,从h1到h6字体的大小依次变小的
(3)水平线标签  <hr/>
(4)注释标签 在html中注释 <!-- 注释的内容  -->
(5)特殊字符 &nbsp;
* 实现空格的操作

3、列表标签
(1)想要实现:
传智播客
java学院
人事部
学工部
* 首先需要使用

: 定义列表的范围
* 之后在dl标签里面, : 定义上层内容
* 在dl标签里面,
: 定义下层内容
(2)有序列表标签
* 使用
    : 定义有序列表的范围
    ** ol标签上面有属性 type:排序的方式
    ** type属性里面的值 1 a i
    * 之后在ol标签里面:
    • : 封装具体的内容
      (3)无序列表标签
      * 首先使用标签
        : 定义无序列表的范围
        ** ul标签上面有属性 type:设置特殊符号
        ** type属性里面的值 disc circle square

        * 之后在ul标签里面: <li></li>: 封装具体的内容
        

        4、图形标签
        (1)在html中显示图片
        (2)标签:
        (3)属性:
        * src:图片的路径名称
        * width:图片宽度
        * height:图片的高度
        * border:图片的边框的粗细
        * alt: 显示在图片上面的内容
        ** 鼠标移动到图片上面,稍等片刻出现文字
        ** 如果图片找不到,显示alt的内容
        * 这个属性在某些浏览器不能显示的

        5、超链接标签
        (1)什么是超链接:点击打开新的内容
        (2)标签:显示在页面上的内容
        (3)属性
        * href:链接到地址
        * target:超链接的打开方式
        ** 在默认的情况下,打开方式在当前的页面打开
        ** target里面的值:_self,当前页面打开; _blank,在新标签页打开

        6、表格标签

        (1)什么是表格:对数据进行格式化,使数据显示更加清晰,结构分明 (2)标签 * 首先定义表格的范围:

        属性
        border:设置表格线
        bordercolor:设置表格线的颜色
        cellspacing: 设置单元格之间的距离
        cellpadding: 设置文字和单元格之间的距离
        width: 设置表格的宽度
        height:设置表格的高度

        * 在table标签里面表示行: <tr></tr>属性  align:设置对齐方式,值 left   center   right
        * 在tr标签里面表示列: <td></td> 属性:align:设置某个单元格对齐方式
          在tr标签里面也可以表示单元格:<th></th>实现居中和加粗的效果
        (3)合并单元格
        * 是在td标签上面进行的操作,使用两个属性
        ** rowspan:跨行   colspan:跨列
        (4)标题标签:<caption>标题内容</caption>
        

        7、表单标签
        (1)什么是表单?把输入的数据提交到服务器上(存到服务器),这个过程称为表单
        (2)使用表单标签实现数据提交到服务器上这个过程
        (3)form 标签:如果写表单,首先定义表单的范围
        * 属性
        ** action:提交的服务器的地址
        ** method:表单的提交方式(有很多种,常见的有两种 get和post)
        ** get和post提交,在默认情况下,提交方式是get提交
        * get提交方式会在地址栏携带数据,安全性很差
        * post提交方式地址栏不会携带数据,安全性比较高,数据在请求体里面
        (4)输入项:可以输入内容或者选择内容的地方
        ** 要求1:输入项里面必须要有name属性
        ** 要求2:在单选输入项和复选输入项以及下拉选择输入项里面 都需要有属性value,设置的值
        * 输入项需要写到form标签里面
        * 大部分输入项是通过标签input进行封装操作的
        **
        第一个:普通输入项
        第二个:密码输入项
        第三个:单选输入项
        ** 要求:单选输入项里面必须有name属性,同时name的属性值必须要相同
        ** 设置默认选中,使用属性 checked=”checked”
        第四个:复选输入项
        ** 要求:单选输入项里面必须有name属性,同时name的属性值必须要相同,设置默认选中,使用属性 checked=”checked”
        第五个:文件输入项,上传文件的。
        第六个:隐藏项,这个值不会显示在页面上,但是提交表单也可以提交到服务器上
        第七个:普通按钮 可以写value属性,设置输入项的默认值

        (5)下面的两个输入项不是使用input标签进行封装的
        第八个:下拉选择输入项
        * <select>
            <option>AAAA</option>
            <option>BBBB</option>
            <option>CCCC</option>
        </select>
        * 使用属性 selected="selected" 默认选中
        第九个:文本域<textarea cols="10" rows="5"></textarea>
        (6)提交按钮和其他的按钮
        * 提交按钮: <input type="submit"/>属性 value:设置提交按钮显示的内容
        * 重置按钮:<input type="reset"/> 属性 value:设置重置按钮显示的内容  不是做清空表单输入项的操作,使表单输入项回到初始状态
        * 使用图片进行提交:<input type="image" src="图片路径"/>
        

        8、其他的标签的使用
        (1)pre:原样输出 p:段落标签 s:删除线 u: 下划线 b:加粗 i:斜体
        (2)div : 自动换行 span:在一行进行显示

        9、案例:注册页面
        (1)如果单元格里面没有内容,使用占位符替代(使用空格 )
        (2)想要一个超链接没有效果,在href属性值写成#

        CSS

        1、css的简介
        (1)什么是css?层叠样式表
        * 使用css目的是:把网页的内容和样式进行分离,利用代码的维护。
        不能单独使用,要和html结合使用
        2、css和html的结合方式
        (1)css和html有四种结合方式
        第一种:使用html标签里面的属性 style=”css的代码”
        第二种:使用html的标签
        第三种:使用html标签实现 link,写在head里面
        * 首先创建css文件,在css文件里面写css代码
        * 在html中使用link标签引入css文件
        第四种:使用html的style标签,在标签里面使用语句样式操作
        * 首先创建css文件,在css文件里面写css代码
        * 写style标签,在标签里面 @import url(css路径);
        3、css的选择器
        * css有三个基本选择
        第一个:标签选择器
        ** 使用标签名称作为选择器
        第二个:class选择器
        ** 每个html标签上面都有一个属性class,通过设置class属性的值
        第三个:id选择器
        ** 每个html标签都有一个属性id,通过设置id的属性值
        (4)选择器的优先级
        * style > id选择器 > class选择器 > 标签选择器
        4、css的扩展选择器
        (1)关联选择器
        * 设置嵌套标签的样式
        (2)组合选择器
        * 设置不同的标签具有相同的样式
        (3)伪元素选择器
        * 比如超链接为例,
        * 状态:原始状态、鼠标放上去的状态、点击状态、点击之后的状态
        :link :hover :active :visited

        第二天

        JavaScript

        1、JavaScript的简介
        (1)什么是JavaScript:是基于对象和事件驱动的语言,应用于客户端。

        (2)JavaScript的特点(三个)
        第一个:交互性
        第二个:安全性
            ** JavaScript不能访问本地硬盘里面的文件
        第三个:跨平台性
            ** 在java里面跨平台,通过虚拟机实现的
            ** JavaScript跨平台,只要在系统里面安装了支持JavaScript的浏览器,可以运行JavaScript
        
        (3)Java和JavaScript区别(雷锋和雷峰塔)
        第一,java是sun公司,现在是oracle;JavaScript是网景公司
        第二,java是面向对象的语言,javas是基于对象的语言
        第三,java跨平台需要依靠虚拟机实现,JavaScript只需要浏览器可以运行
        第四,JavaScript弱类型语言,java是强类型的语言
            ** 比如在java里面定义一个变量 int a = 10;   int b = "10";不正确
            ** 在JavaScript里面定义变量都是使用一个关键字 var a = 10;  var b = "10"; var c = true;
        第五,java运行先编译通过虚拟机运行,JavaScript直接使用浏览器运行
        
        (4)JavaScript由三部分组成
        第一部分:ECMAScript
            ** 又ECMA组织制定语句,语法
        第二部分:BOM
            ** broswer object  model:浏览器对象模型
        第三部分:DOM
            ** document object model:文档对象模型
        

        2、js和html的结合方式
        * 有两种结合方式
        第一种:使用html中的标签

        第二种:使用html的标签,引入外部的js文件【项目开发常用方式】
            <script type="text/javascript" src="js文件的路径"></script>
            * 使用第二种方式的时候有两点注意
            注意一:不要在script标签里面写js代码了,不会执行
            注意二:结束script标签 </script>,不要在标签内结束
        

        3、js的变量声明和数据类型
        (1)在js里面如何声明变量,都是使用一个关键字var
        (2)js的原始类型
        * 在java里面有基本的数据类型?八个
        * js的原始类型有五个
        第一,string:字符串类型
        第二,number:数字类型
        第三,boolean:布尔类型 true false
        第四,null
        * null是特殊的引用类型
        * 表示对象引用为空
        第五,undefined
        * 表示定义了一个变量,但是没有赋值

        (3)typeof(变量的名称): 查看当前变量的类型
        

        4、js的引用类型和类型转换
        * 引用对象
        ** Object 对象:所有对象都由这个对象继承而来
        ** Boolean 对象:Boolean 原始类型的引用类型
        ** Number 对象: Number 原始类型的引用类型

        * 类型转换
        ** 转换成字符串
        ** 转换成数字:parseInt() 和 parseFloat()
        ** 强制类型转换
        Boolean(value) - 把给定的值转换成 Boolean 型;
        Number(value) - 把给定的值转换成数字(可以是整数或浮点数);
        String(value) - 把给定的值转换成字符串;
        

        5、js的语句
        * 在java里面语句:if 、 switch 、while do-while for
        * java里面的switch语句,数据类型要求:是否支持string类型?在jdk1.7开始支持的

        *使用document.write()向页面输出内容
        * 可以向页面输出变量        
        * 可以向页面直接输出html代码
        

        6、js的运算符
        (1)算术运算符
        + - * /….

        (2)赋值运算符
        +=含义: x+=y 相当于 x=x+y
        
        (3)比较运算符
        ==:表示条件的判断,如果是=,表示赋值
        
        (4)逻辑运算符
        &&  ||  !
        
        (5)js的运算符和java不同的内容
        第一个:js里面不区分整数和小数
        
        第二个:字符串的相加和相减操作
        * 字符串相加是字符串的拼接操作,字符串相减是真正的相减运算,如果字符串不是数字提示NaN
        
        第三个:boolean类型相加和相减的操作
        * 如果布尔类型值是true,把类型当成1运算;如果布尔类型值是false,把类型当成0运算
        
        第四个:==和===区别
        * ==比较的是值
        * === 比较的是值和类型
        

        7、js的数组
        * 什么是数组:定义一个变量只能存一个值,想要存多个值,可以使用数组进行存储
        * js里面定义数组的方式
        第一个:var arr1 = [];
        第二个:var arr2 = [“10”,10,true]; //可以写任意的类型
        第三种:var arr3 = new Array(3);
        ** 表示定义数组名称是arr3,数组的长度是3
        第四种:var arr4 = new Array(4,5,6);
        ** 表示定义数组名称是arr4,数组里面的值4 5 6
        * 数组里面的属性:查看数组的长度 length
        * 数组的长度:在js里面数组的长度可变的
        ** 数组的长度是最大的下标+1,之间如果没有赋值直接默认是空字符串

        8、js的string对象
        (1)字符串对象
        * 创建字符串:var a = “abc”; var b = new String(“bb”);
        (2)属性 length 字符串的长度
        (3)方法
        第一类:与html相关的方法(设置字符串的样式的方法)
        = bold() 使用粗体显示字符串。
        = fontcolor() 使用指定的颜色来显示字符串。
        = fontsize() 使用指定的尺寸来显示字符串。
        = link() 将字符串显示为链接

        第二类:与java相似的方法(在java里面也有类似的方法)
        = charAt() 返回在指定位置的字符。 如果位置不存在字符,返回空字符串
        = concat() 连接字符串
        = indexOf() 检索字符串,得到检索的字符的位置,如果没有找到返回-1
        = split() 把字符串分割为字符串数组
        = substr() 从起始索引号提取字符串中指定数目的字符。
        = substring() 提取字符串中两个指定的索引号之间的字符
        

        9、js的Array对象
        (1)创建数组
        (2)属性
        * length 设置或返回数组中元素的数目
        (3)方法
        = concat():连接数组
        = join():把数组根据指定字符进行分割
        = pop() 删除并返回数组的最后一个元素
        = push() 向数组的末尾添加元素,并返回新的长度
        = reverse() 颠倒数组中元素的顺序

        10、js的Math对象
        (1)进行数学运算,在Math对象里面的方法,直接使用Math.方法名称进行调用
        (2)方法
        = ceil(x) 对一个数进行上舍入。
        = floor(x) 对一个数进行下舍入。
        = round(x) 把一个数四舍五入为最接近的整数
        = random() 返回 0 ~ 1 之间的随机数

        11、js的Date对象
        (1)进行日期操作的对象
        (2)使用Date对象,new Date();
        (3)方法
        = toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
        = 得到当前的年 getFullYear() 从 Date 对象以四位数字返回年份
        = 得到当前的月 getMonth() 从 Date 对象返回月份 (0 ~ 11)
        = 得到当前的星期 getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)
        ** 如果当前的星期是星期日,返回的是0
        = 得到当前的日 getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)
        = 得到当前的小时 getHours()
        = 得到当前的分 getMinutes()
        = 得到当前的秒 getSeconds()
        = 得到毫秒数 getTime() 返回 1970 年 1 月 1 日至今的毫秒数

        12、js的RegRxp对象
        (1)RegExp 对象表示正则表达式
        (2)正则表达式:规定字符串出现的规范
        (3)使用:new RegExp(“正则表达式”)
        (4)方法:
        * test() 检索字符串中指定的值。如果存在匹配的字符返回 true,如果不存在匹配的字符返回 false。
        13、js的bom对象
        (1)script标签放置位置
        * 建议放到后面
        * html的解析是从上到下进行解析的,如果在head里面就获取输入项里面的值,因为还没有解析到输入项,所以肯定得不到值。

         (2)什么是bom:浏览器对象模型
         第一个:navigator
            * 浏览器的信息
         第二个:screen
            * 屏幕的信息
         第三个: history
            * 访问地址的历史信息
         第四个: location
            * 设置url
            * href 设置或返回完整的 URL
         第五个: window(***)
         * window对象是窗口对象,是顶层对象
         * 方法
         setInterval("执行的js代码",毫秒数) 在指定的时间内,重复执行js代码
         setTimeout("执行的js代码",毫秒数) 在指定的时间之后,执行js代码,执行一次
        

        14、js的全局变量和局部变量
        (1)全局变量
        * 在js里面,如果在一个script标签里面定义变量,在页面中的其他script标签里面都可以使用。(要注意上下顺序)
        (2)局部变量
        * 在js的方法里面定义一个变量,这个变量只能在方法里面使用。

        15、js的全局函数
        (1)不属于任何对象,可以使函数
        (2)主要的函数
        eval(): 把字符串当成js代码执行
        isNaN() 检查某个值是否是数字
        ** 如果是数字返回 false,如果不是一个数字返回 true。
        parseInt() 解析一个字符串并返回一个整数
        encodeURI() 把字符串编码为 URI
        decodeURI() 解码某个编码的 URI

        第三天

        JavaScript高级

        1、js的函数
        (1)在java里面定义方法
        public void/int 方法名称(参数列表) {
        方法体和返回值;
        }

        (2)在js里面定义函数有三种方式
        第一种:使用关键字 function 方法名称(参数列表) { 方法体和返回值 }
        * 注意一:参数列表,不需要写类型(var),直接写参数名称
        * 注意二:返回值,根据实际需要可以有也可以没有
        第二种:匿名函数,使用关键字function(参数列表) { 方法体和返回值; }
        第三种:动态函数(方法体和返回值,包含参数列表都是通过参数传递进来的)
        * 使用js里面的内置对象 new Function("参数列表","方法体和返回值")
        

        2、js的函数的重载
        (1)在java里面存在重载,方法名称相同,参数列表不同
        (2)js里面是否存在函数的重载?
        第一,在js不存在重载
        第二,可以使用js函数里面arguments数组模拟重载的效果
        (3)模拟重载的效果
        * 在js里面有一个数组arguments,保存传递进来的参数,使用这个数组模拟重载的效果

        3、js的事件
        (1)什么是事件:在html的元素里面可以触发事件调用js里面的函数
        (2)在html的标签上面如何使用事件
        * 有三种方式
        * 第一种:使用事件属性调用js方法
        * 第二种:首先得到要绑定的标签,在使用事件的属性
        * 第三种:首先得到要绑定的标签,写js的代码

        4、js的常用的事件
        (1)onload事件和onclick事件
        * onload:html页面在加载时候触发事件,调用响应的js方法
        * onclick:鼠标点击事件
        (2)onfocus事件和onblur事件
        * onfocus:获取焦点
        * onblur:失去焦点
        (3)onmouseover 鼠标被移到某元素之上
        (4)onmouseout 鼠标从某元素移开
        (5)onkeypress:点击键盘上面的某个键,调用方法

        5、js的dom对象
        (1)什么dom:document object model:文档对象模型
        ** 使用dom里面提供的对象里面的属性和方法,对标记型文档进行操作

        * 要想使用dom对象标记型文档进行操作,首先需要解析标记型文档(html为例)
        ** html中包含 标签、属性、文本内容
        
        (2)使用dom解析html
        * 解析过程:根据html的层级结构在内存中分配一个树形结构
        * document对象,代表整个文档
        * element对象,代表标签
        * attribute属性对象
        * text文本对象
        * Node节点对象,是这些对象的父对象,在找不到想要使用的方法,到Node里面找
        
        (3)DHTML的简介
        * 不是一种技术,是很多技术的简称。
        * 包含的技术:
        ** html:封装数据
        ** css:使用属性和属性值修改数据的样式
        ** ECMAScript:语句和语法
        ** DOM:对标记型文档进行操作
        

        6、document对象
        (1)document对象代表整个文档
        (2)方法
        第一个:write(),向页面输出内容,可以输出html代码
        第二个:getElementById(): 获取标签对象,通过标签的id值进行获取
        第三个:getElementsByName(): 根据标签里面name属性的值得到标签对象,返回数组
        * 如果只有一个标签,使用getElementsByName返回的也是一个数组,不需要遍历,直接使用数组的下标获取值
        第四个:getElementsByTagName():根据标签的名称获取标签对象,返回数组
        * 如果只有一个标签,使用getElementsByTagName返回的也是一个数组,不需要遍历,直接使用数组的下标获取值

        7、innerHTML属性
        (1)innerHTML属性不是dom里面属性
        (2)实现什么功能
        第一,获取标签里面的文本内容
        第二,向标签里面设置内容(可以写html代码)

        8、表单的提交
        (1)在html中写form标签,提交方式
        提交表单有三种方式
        第一种方式:在form标签里面,写提交按钮
        第二种方式:在form标签里面,写普通按钮
        第三种方式:使用超链接提交数据
        * 超链接

        9、表单校验
        (1)规范数据的输入的格式
        (2)如何进行表单的校验
        第一,使用submit进行表单提交,进行表单校验
        * 使用事件 onsubmit事件,写在form标签里面

        * 如果return返回的值true可以提交表单,如果返回false不会提交表单

        第二,使用button进行表单校验
        

        10、json的简介
        (1)JavaScript Object Notation,JavaScript 对象表示法。json是数据的交换格式,比xml更加轻巧。
        json是js的原生的格式,通过js操作json不需要依赖其他东西,直接对json格式进行操作。
        (2)json数据格式
        * json有两种数据格式
        第一种:json的对象的格式
        * 写法 {json数据的名称1:json数据的值1,json数据的名称2:json数据的值2…..}
        ** 类似于key-value形式
        ** 名称和值之间使用冒号隔开,多个值之间使用逗号隔开
        ** json数据的名称是字符串的类型,json数据的值 string, number, object, array, true, false, null
        ** 具体数据的格式 {“name”:”zhangsan”,”age”:20,”addr”:”nanjing”}

        第二种:json的数组的格式
            * 写法 [json对象1,json对象2........]
            ** 在数组里面有多个json对象,多个json对象之间使用逗号进行隔开
            ** 具体数据的格式 [{"name":"lucy","age":20},{"name":"mary","age":30}]
        
        (3)可以使用json的这两种格式组成更加复杂json的格式
        * 复杂的格式 {"name":[{"name":"zhangsan","addr":"beijing"},{"name":"lisi","addr":"tianjin"}]}
        

        11、js解析json
        (1)js解析json的对象的数据格式
        * 通过json对象数据格式里面的name的名称得到name对应的值
        (2)js解析json的数组的数据格式
        * 根据数组的下标得到json对象,解析json对象,根据数据的名称得到值
        * 遍历json数组,得到json数组里面每个json对象,解析每个json对象,根据json对象的数据的名称得到值

        第四天
        mysql数据库

        1、数据库的简介
        (1)什么是数据库,就是一个文件系统,使用标准sql对数据库进行操作(crud)

        (2)常见的数据库
        * oracle:是oracle公司产品,是大型的收费的数据库
        * db2:是ibm公司的产品,是大型的收费的数据库
        * SQLServer:是微软公司产品,是中型的数据库
        * MySQL : 在oracle收购之后6.x版本开始收费,之前的版本是免费的。
        * SQLite:是小型的嵌入式数据库,应用在客户端开发中,比如安卓
        
        (3)关系数据库:存储的是实体之间的关系
        * 比如有购物网站,有用户,订单,商品,称为实体
        * 用户、订单和商品之间的关系称为实体之间的关系
        * 使用er图表示实体之间的关系
        ** 实体使用矩形、在实体上面属性使用椭圆,之间的关系使用菱形
        

        2、sql语言简介
        (1)数据库是文件系统,使用标准sql对数据库进行操作
        * 标准sql,在mysql里面使用语句,在oracle、db2都可以使用这个语句

        (2)什么是sql
        * Structured Query Language, 结构化查询语言,对数据库进行操作
        * sql非过程性语言,不需要依赖于其他的条件就可以运行
        ** 比如 在java里面
        *** if(a > 5) {
            System.out.....
            }
        
        (3)sql的分类
        第一类:DDL (数据定义语言)
            * 创建数据库,创建数据库表
            * 常用的语句 create
        第二类:DML  (数据操纵语言)
            * 对表中的记录进行增加 修改 删除操作
            * 常用的语句 insert  update  delete
        第三类:DCL (数据控制语言)
            * 数据库的编程的语言
        第四类:DQL (数据查询语言)
            * 对表中的进行查询的操作
            * 常用的语句 select
        
        * 学习的主要内容:使用sql语言对数据库、数据库表、表中的记录进行增删改查(crud)操作
        

        3、使用sql对数据库操作
        (1)连接数据库
        * 打开cmd窗口,使用命令,连接mysql数据库
        * 命令: mysql -u root -p 密码

        (2)创建数据库
        * 语句: create database 数据库的名称;
        
        (3)查看所有的数据库
        * 语句:show databases;
        
        (4)删除数据库
        * 语句:drop database 要删除的数据库的名称;
        
        (5)切换数据库
        * 如果想要创建一个数据库表,这个表要在一个数据库里面,所以需要切换到数据库
        * 语句:use 要切换的数据库的名称;
        

        4、使用sql对数据库表操作
        (1)创建数据库表
        * 语句 create table 表名称 (
        字段 类型,
        字段 类型
        )

        (2)mysql的数据类型
        字符串型
        VARCHAR、CHAR
        * 当创建表时候,使用字符串类型,name varchar(40),指定数据的长度
        * varchar和char的区别
        ** varchar的长度是可变的,比如 name varchar(5),存值 a ,直接把a存进去
        ** char的长度是固定的,比如 name char(5),存值 b,把b存进去,后面加很多空格
        
        大数据类型
        BLOB、TEXT
        * 使用这个类型可以存储文件,一般开发,不会直接把文件存到数据库里面,存文件的路径
        
        数值型
        TINYINT 、SMALLINT、INT、BIGINT、FLOAT、DOUBLE
        * 对应java里面
        byte       short    int  long    float  double
        
        逻辑性
        BIT
        * 类似java里面的boolean
        
        日期型
        DATE:用于表示日期 1945-08-15
        TIME:用于表示时间 19:10:40
        
        下面的两个类型可以表示日期和时间
        DATETIME:手动添加时间到数据表里面
        TIMESTAMP:自动把时间添加到表里面
        
        (3)查看表结构
        * 语句 desc 表名称;
        +----------+-------------+------+-----+---------+-------+
        | Field    | Type        | Null | Key | Default | Extra |
        +----------+-------------+------+-----+---------+-------+
        | id       | int(11)     | YES  |     | NULL    |       |
        | username | varchar(40) | YES  |     | NULL    |       |
        | password | varchar(40) | YES  |     | NULL    |       |
        | sex      | varchar(30) | YES  |     | NULL    |       |
        +----------+-------------+------+-----+---------+-------+
        
        (4)mysql的约束有三种
        第一种,非空约束 not null
            * 表示数据不能为空
        
        第二种,唯一性约束 unique
            * 表中的记录不能重复的
        
        第三种,主键约束 primary key
            * 表示非空,唯一性
            * 自动增长 auto_increment
        

        5、使用sql对表中的记录进行操作(增删改查操作)
        (1)向表里面添加记录 insert
        * 语句 insert into 要添加的表名称 values(要添加的值);
        * 注意:当添加的字段的数据类型是int类型,直接写值
        如果添加的字段的类型是varchar类型和日期类型,使用单引号把值包起来

        (2)修改表里面的记录 update
        * 语句 update 表名称 set 要修改的字段的名称1=修改的值1,要修改的字段的名称2=修改的值2 where 条件
        
        (3)删除表里面的记录 delete
        * 语句 delete from 表名称 where 条件
        
        (4)查询表中的记录 select
        * 语句 select 要查询的字段的名称 (*) from 表名称 where 条件
        
        (5)别名
        * as 别名
        select username as u1,chinese as c1 from user;
        
        (6)distinct,去除表里面重复记录
        * 语句 select distinct * from 表名;
        
        (6)where子句
        第一,运算符 < > >= <=
        第二,in:在范围内
        第三,and:在where里面如果有多个条件,表示多个条件同时满足
        第四,得到区间范围的值
        第五,like:模糊查询
        (7)查看当前的运行的数据库 select database();
        (8)对表中查询的记录排序 order by
        * order by写在select语句的最后
        第一,升序 order by 要排序字段 asc(asc可以省略,默认的情况下就是升序)
        
        第二,降序 order by 要排序字段 desc
        

        6、聚集函数
        (1)使用提供一些函数,直接实现某些功能
        (2)常用的聚集函数
        第一,count()函数
        * 根据查询的结果,统计记录数
        * 写法 select count(*) from …where….

        第二,sum()函数
        * 求和的函数
        * 写法 select sum(要进行求和字段) from ...where....
        
        第三,avg()函数
        * 计算的平均数的函数
        * 写法 select avg(要计算平均数的字段名称) from ...
        
        * 练习:得到user表里面语文成绩的平均分
        select avg(chinese) from user;
        
        第四,max()函数:计算最大值
        * 写法 select max(字段) from...
        
        第五,min()函数:计算最小值
        * 写法 select min(字段) from...
        

        7、分组操作
        分组使用 group by 根据分组的字段
        在分组的基础之上再进行条件的判断 having,后面可以写聚集函数

        8、mysql的关键字limit
        (1)limit关键字查询表中的某几条记录
        (2)limit关键字不是标准sql的关键字,只能在mysql数据库里面使用,实现分页的功能
        * 在oracle里面特有关键字 rownum
        * 在sqlserver里面特有关键字 top
        (3)使用limit查询前几条记录
        * 写法: limit 前几条记录 limit 3
        (4)使用limit查询第几条到第几条记录
        * 写法: limit 第一个参数,第二个参数
        ** 第一个参数开始的记录数的位置,从0开始的
        ** 第二个参数从开始的位置向后获取几条记录

                                                          第五天
        

        1、JDBC的简介
        1.1 jdbc:Java DataBase Connectivity,java数据库的连接
        1.2 导入jar到项目中(使用到开发工具 myeclipse10.x版本)
        首先创建一个文件夹 lib,把jar包复制到lib里面,选中jar包右键点击build path – add to build path,
        jar包前面的图标变成了“奶瓶”图标,表示导入jar成功

        2、JDBC的入门案例
        2.1 使用jdbc对数据库进行操作步骤是固定的
        2.1.1 使用到类和接口
        DriverManager
        Connection
        Statement
        ResultSet

        2.2 jdbc的操作步骤
        第一步,加载驱动
        DriverManager.registerDriver(Driver driver)
        
        第二步,创建连接
        DriverManager.getConnection(String url, String user, String password)
        
        第三步,编写sql
        第四步,执行sql
        Statement.executeQuery(String sql)
        
        第五步,释放资源(关闭连接)
        

        3、jdbc的DriverManager对象
        3.1 在java.sql包里面
        3.2 加载数据库的驱动
        registerDriver(Driver driver) :参数是数据库的驱动,这个驱动是由数据库提供的
        (1)这个方法在实际开发中,一般不使用,因为这个方法会加载驱动两次
        (2)一般在开发中使用反射的方式加载数据库的驱动
        Class.forName(“com.mysql.jdbc.Driver”);

        3.3 得到数据库的连接
        getConnection(String url, String user, String password),返回Connection
        (1)有三个参数
        第一个参数:表示要连接的数据库
        写法:jdbc:mysql://数据库的ip:数据库的端口号/连接的数据库的名称
        jdbc:mysql://localhost:3306/testdb2
        简写的方式:jdbc:mysql:///testdb2(使用范围:连接的数据库是本机,端口是3306)
        
        第二个参数:表示连接数据库的用户名
        第三个参数:表示连接数据库用户密码
        

        4、jdbc的Connection对象
        4.1 代表数据库的连接,是接口,在java.sql包里面

        4.2 创建statement对象
        Statement createStatement()
        
        4.3 创建预编译对象 PreparedStatement
        PreparedStatement prepareStatement(String sql)
        

        5、jdbc的Statement对象
        5.1 执行sql的对象,接口,在java.sql包里面

        5.2 执行查询操作方法
        ResultSet executeQuery(String sql) ,返回查询的结果集
        
        5.3 执行增加 修改 删除的方法
        int executeUpdate(String sql) ,返回成功的记录数
        
        5.4 执行sql语句的方法
        boolean execute(String sql) ,返回是布尔类型,如果执行的是查询的操作返回true,否则返回的false
        
        5.5 执行批处理的方法
        addBatch(String sql):把多个sql语句放到批处理里面
        int[] executeBatch():执行批处理里面的所有的sql
        

        6、jdbc的ResultSet对象
        6.1 代表查询之后返回的结果,接口,在java.sql包里面
        类似于使用select语句查询出来的表格
        +——+———-+———+———+
        | id | username | chinese | english |
        +——+———-+———+———+
        | 1 | lucy | 100 | 30 |
        | 2 | mary | 60 | 80 |
        | 3 | jack | 70 | 40 |
        | 4 | zhangsan | 40 | 70 |
        | 5 | lisi | 40 | 70 |
        | 6 | wangwu | 40 | 70 |
        +——+———-+———+———+

        6.2 遍历结果集
        next()
        
        6.3 得到数据的具体值
        getXXX
        (1)比如数据是string类型,使用getString("字段的名称")
             比如数据是int类型,使用getInt("字段的名称")
             比如不知道数据的类型,使用getObject("字段的名称")
        
        6.4 结果集的遍历方式
        在最开始的时候在第一行之前,当执行了next方法之后,一行一行的向下进行遍历
        ,在默认的情况下,只能向下,不能向上,在遍历出来的结果也是不能修改的
        

        7、jdbc的释放资源
        关闭的原则:谁最先打开,谁最后关闭
        8、使用jdbc进行crud操作
        (1)实现对数据库表记录进行查询的操作executeQuery(sql)
        (2)实现对数据库表记录进行增加的操作executeUpdate(sql)
        (3)实现对数据库表记录进行修改的操作executeUpdate(sql)
        (4)实现对数据库表记录进行删除的操作executeUpdate(sql)
        9、jdbc工具类的封装
        9.1 当在很多的类里面有相同的代码,可以把相同的代码提取到一个工具类里面, 在类里面直接调用工具类里面的方法实现
        9.2 在jdbc实现crud操作的代码里面,首先得到数据库连接,和释放资源的代码是重复的,所以进行封装
        9.3 可以把数据库的一些信息,写到配置文件里面,在工具类读取配置文件得到内容
        一般使用properties格式文件作为存储数据库信息的文件
        有两种方式读取配置文件
        第一种,使用properties类
        第二种,使用ResourceBundle类
        * 使用范围:首先读取的文件的格式需要时properties,文件需要放到src下面
        10、使用jdbc的工具类实现crud操作
        11、sql的注入和防止
        11.1 sql的注入
        (1)在登录时候,用户名里面输入 bbb’ or ‘1=1,因为在表里面有一个用户是bbb,可以登录成功
        因为输入的内容,被作为sql语句的一个条件,而不是作为整个用户名。
        select * from user where username=’bbb’ or ‘1=1’ and password=’rrr’
        11.2防止sql的注入
        (1)使用PreparedStatement预编译对象防止sql注入
        (2)创建PreparedStatement对象 prepareStatement(String sql)
        (3)PreparedStatement接口的父接口Statement
        (4)什么是预编译
        (5)步骤:
        第一步,加载驱动,创建数据库的连接
        第二步,编写sql
        第三步,需要对sql进行预编译
        第四步,向sql里面设置参数
        第五步,执行sql
        第六步,释放资源

      1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值