序列化: 把对象保存到文件中或网络中 成为序列化 IO 实质是将对象的信息写入到文件中
会将对象的完整类名(包名+类名)信息,对象的实例属性信息写到文件中
对象是一块内存空间
反序列化:从文件中或网络中读取对象称为反序列化 实质是从文件中读取对象的信息,然后根据这些信息重新创建了一个新的对象也就是克隆了一份
所有的集合类汇总:
通过文件形式来保存数据的缺点: 文件无法被共享 文件的安全没有保障
数据库 专门用来保存数据的 在数据库中上面的两个问题都被很好的解决了
1数据库是可以被共享的 2 安全有权限控制 可以保障数据的安全
and or 运行条件
and 要满足所有条件 or满足其中一个条件相当于java中的或
and和or是有优先级的 先执行and 再执行or and优先级高于or
in作为查询条件 表示在特定的范围之内
in的功能也可以使用or来执行
not作为查询条件 取反的意思
模糊查询 专门用来查询字符型数据的 在查询条件不是很明确的时候使用
使用like 两个通配符 % 表示0个或多个任意的字符 和_ 表示一个任意的字符
例如 : _a% 就是第二个是a的信息 %a_ 倒数第二个是a的信息
特殊情况 查询的数据本身包含%和_ 怎么办了
/%转意符 escape“/”指转义符
对查询结果进行排序,需要使用 order by 子句 asc升序 desc降序
数据库中的函数类似于java中的方法 函数可以接受一个或多个参数,在函数中完成运算 并最终返回运算结果
public int add(int num1, int num2) {
int sum= num1 +num2
return sum;
}
数据库中的函数是把查询结果当做参数输入给函数 函数执行之后并不会影响数据库中原来的数
注意:每种数据库的函数都是不同的 也就是有些函数在mysql上可以运行但是在其他数据库中不能运行
数据库函数的分类 在java中是没有的
1.单行函数 每次把单条记录当做参数输入给函数 得到单条记录对应的单行结果
lower (要转换字段名称)把字符型的数据转换为小写的字符
使用 binary来区分大小写 在这种情况下 用lower转换为小写
upper 转换为大写
substr 截取字符数据
SUBSTR(被截取字段名称,起始下标,截取长度)
length 字段长度
length(字段长度)
trim 作用 去除字符数据中首尾的空格 但不会去除中间的空格
round 四舍五入
用法:round(要四舍五入的数字,四舍五入到哪一位) 默认保留整数位
double (7,2) 表示带小数的数值 总长度是7 小数点后是两位
数据库中的函数可以嵌套使用 先执行里面的 把里面的函数执行结果当做外面函数的输入参数
处理null的ifnull函数
ifnull(处理的值,0)
2.多行函数 例如 查询所有学生中的最高成就 把所有的参数都传给函数 拿到最高的