09 2020 档案
摘要:悲观锁案例: package com.java.JDBC; import util.DBUtil; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import jav
阅读全文
摘要:JDBC工具类 package util; import java.sql.*; /** * JDBC工具类,简化JDBC编程 */ public class DBUtil { /** * 工具类中的构造方法都是私有的。 * 因为工具类当中的方法都是静态的,不需要new独享,直接采用类名调用。 */
阅读全文
摘要:案例10:JDBC事务机制: package com.java.JDBC; import java.sql.*; /* JDBC事务机制: 1 JDBC中的事务是自动提交的,什么是自动提交? 只要执行任意一条DML语句,则自动提交一次。这是JDBC默认的事务行为。 但是在实际的业务当中,通常都是N条
阅读全文
摘要:案例9:preparedStatement增删改: package com.java.JDBC; import java.sql.*; public class JDBCTest09 { public static void main(String[] args) { Connection conn
阅读全文
摘要:根据JDBC模拟用户功能的实现: loginUser.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/mydatabase user=root password=333 package com.java.
阅读全文
摘要:遍历结果集: 案例5:JDBC如何获取查询返回结果集: package com.java.JDBC; import java.sql.*; public class JDBCTest05 { public static void main(String[] args) { Connection co
阅读全文
摘要:第一步: 第二步: 第三步: 第四步 第五步: 第六步: 保存: 保存sql语句:
阅读全文
摘要:在IDEA中如何引入jar包 第一步: 在项目名称上右键 找到Open Module Settings 第二步:找到Libraries 点击中间的+号找到jar包所在位置。点击OK
阅读全文
摘要:1 JDBC是什么? Java DataBase Connertivity(Java语言连接数据库) 2 JDBC的本质是什么? JDBC是SUN公司制定的一套接口(Interface) java.sql.*;(这个软件包下有很多接口) 接口都有调用者和实现者。 面相接口调用、面相接口写实现类,这都
阅读全文
摘要:37 数据库设计三范式(重点内容:面试经常问) 什么是设计范式? 设计表的依据,按照这个三范式设计的表不会出现数据冗余。 三范式都是哪些? 第一范式:任何一张表都应该有主键。并且每一个字段原子性不可再分。 第二范式:建立在第一范式的基础之上,所有非主键字段完全依赖主键,不能产生部分依赖。 *****
阅读全文
摘要:36 DBA命令 将数据库当中的数据导出 在windows的dos命令窗口中执行:(导出整个库) mysqldump mydatabase>C:\Users\xlWu\Desktop\学习\数据库\xxx.sql -uroot -p333 // 这里不要加分号 在windows的dos命令窗口中执行
阅读全文
摘要:35 视图(view) 什么是视图? 站在不同的角度去看到数据。(同一张表的数据,通过不同的角度去看待)。 怎么创建视图?怎么删除视图? create view myview as select empno,ename from emp; drop view myview; 注意:只有DQL语句才能
阅读全文
摘要:34 索引 索引的实现原理图 什么是索引?有什么用? 索引就行当于一本书的目录,通过目录可以快速的找到对应的资源。 在数据库方面,查询一张表的时候有两种检索方式: 第一种方式:全表扫描 第二种方式:根据索引检索(效率很高) 索引为什么可以提高检索效率呢? 其实最根本的原理是缩小了扫描的范围。 索引虽
阅读全文
摘要:33 事务 什么是事务? 一个事务是一个完整的业务逻辑单元。不可再分。 比如:银行账户转账,从A账户向B账户转账10000。需要执行两条update语句。 update t_act set balance = balance - 10000 where actno = 'act-001'; upda
阅读全文
摘要:32 存储引擎? 完整的建表语句 create table `t_x`( `id` int(11) default null ) enging=innodb default charset=utf-8; 注意:在mysql当中,凡是标识符是可以使用飘号括起来的。最好别用,不通用。 建表的时候可以指定
阅读全文
摘要:31 外键约束 * 关于外键约束的相关术语: 外键约束:foreign key 外键字段:添加有外键约束的字段。 外键值 :外键字段中的每一个值。 * 业务背景: 请设计数据库表,用来维护学生和班级的信息? 第一种方案:一张表存储所有数据 t_calss 班级表 no(pk) name classn
阅读全文
摘要:30 约束(Constraint) 什么是约束?常见的约束有哪些呢? 在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。 表格 id username(唯一性约束) password(非空约束) 常见的约束有哪些呢? 非空约束(not null)
阅读全文
摘要:29 对于表结构的修改,这里不讲了,大家使用工具完成即可,因为在实际开发中表一旦设计好之后,对表结构的修改也是很少的, 修改表结构就是对之前的设计进行了否定,即使需要修改表结构,我们也可以直接使用工具操作。修改表结构的语句不会出现在java代码当中。 出现在java代码当中的sql包括:insert
阅读全文
摘要:28 删除数据? 语法格式: delete from 表名 where 条件; 注意:没有条件全部删除。 删除10部门数据? delete from dept1 where deptno = 10; 删除所有记录? delete from dept1; 怎么删除大表中的数据?(重点) truncat
阅读全文
摘要:27 修改数据:update 语法格式: update 表名 set 字段名1=值,字段名2=值2... where条件; 注意:没有条件整张表数据全部更新。 案例:将部门10的LOC修改为shanghai,将部门名称修改为renshibu。 update dept1 set loc = 'shan
阅读全文
摘要:26 将查询结果插入到一张表中? insert into dept1 select * from dept; select * from dept1; + + + + | DEPTNO | DNAME | LOC | + + + + | 10 | ACCOUNTING | NEW YORK | |
阅读全文
摘要:25 表的复制 语法: create table 表名 as select语句; 将查询结果当做表创建出来。
阅读全文
摘要:24 insert 语句插入数据 语法格式: insert into 表名(字段名1,字段名2,字段名3,...) values(值1,值2,值3,...) 要求:字段的数量和值的数量相同,并且数据类型要对应相同。 insert into t_student(no,name,sex,classno,
阅读全文
摘要:23 创建表 建表语句的语法格式: create table 表名( 字段名1 数据类型, 字段名2 数据类型, 字段名3 数据类型, ... ); 关于MySQL当中字段的数据类型?以下只说常见的 int 整数(java中的int) bigint 长整形(java中的long) float 浮点型
阅读全文
摘要:22 limit(重点中的重点,以后分页查询全靠它了。) limit是mysql特有的,其他数据中没有,不通用。(orcale中有一个相同的机制,叫做rownum) limit取结果集中的部分数据,这是他的作用。 语法机制: limit startIndex,length startIndex表示起
阅读全文
摘要:21 union(可以将查询结果集相加)第一种:找出工作岗位是salesman和manager的员工? select ename,sal from emp union select dname from dept; ERROR 1222 (21000): The used SELECT statem
阅读全文
摘要:20 子查询 什么是子查询?子查询都可以出现在哪里? select语句当中嵌套select语句,被嵌套的select语句是子查询。 子查询可以出现在哪里? select ..(select). from ..(select). where ..(select). where子句中使用子查询 案例:找
阅读全文
摘要:19 连接查询 什么是连接查询? 在实际开发中,大部分的情况下都不是从但表中查询数据,一般都是多张表联合查询取出最终的结果。 在实际开发中,一般一个业务都会对应多张表,比如:学生和班级,起码两张表。 stuno stuname classno calssname 1 zs 1 哈哈哈哈 2 ls 1
阅读全文
摘要:18 关于查询结果集的去重? select distinct job from emp; // distinct 关键字 去除重复记录。 + + | job | + + | CLERK | | SALESMAN | | MANAGER | | ANALYST | | PRESIDENT | + +
阅读全文
摘要:17 总结一个完整的DQL语句怎么写? select ... 5 from ... 1 where ... 2 group by ... 3 having ... 4 order by ... 6
阅读全文
摘要:16 group by 和 having group by:按照某个字段或者某些字段进行分组。 having:having是对分组之后的数据进行再次过滤。 案例:找出每个岗位的最高薪资。 select max(empno) as '员工编号',max(ename) as '员工薪资',max(sal
阅读全文
摘要:15 单行处理函数 什么是单行处理函数? 输入一行,输出一行。 计算每个员工的年薪? select ename,(sal + comm) * 12 as yearsal from emp; 重点:所有数据库都是这样规定的,只要有null参与的运算结果一定是null。 使用ifnull函数 selec
阅读全文
摘要:14 分组函数? count 计数 sum 求和 avg 平均值 max 最大值 min 最小值 记住:所有的分组函数都是对“某一组”数据进行操作的。 找出工资总和? select sum(sal) from emp; + + | sum(sal) | + + | 29025.00 | + + 找出
阅读全文
摘要:13 排序(升序、降序) 按照工资升序,找出员工名和薪资 select empno,ename,sal,job,comm from emp order by sal asc; // 默认升序排列 asc可以不写 desc降序 + + + + + + | empno | ename | sal | j
阅读全文
摘要:12 条件查询。 语法格式: select 字段,字段... from 表名 where 条件; 执行顺序:先from,然后where,最后select 查询工资等于5000的员工姓名? select ename from emp where sal = 5000; + + | ename | +
阅读全文
摘要:11 简单的查询语句(DQL) 语法格式: select 字段名1,字段名2,字段名3,... from 表名; 提示: 1 任何一条sql语句以";"结尾。 2 sql语句不区分大小写。 查询员工的年薪?(字段可以参与数学运算。) select ename,sal * 12 from emp; +
阅读全文
摘要:10 查看创建表的语句:show create table emp;
阅读全文
摘要:9 常用命令? mysql> select database(); 查看当前使用的是哪个数据库。 + + | database() | + + | mydatabase | + + mysql> select version();查看mysql的版本号。 + + | version() | + +
阅读全文
摘要:8 如何查看表中的数据? select * from emp; + + + + + + + + + | EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO | + + + + + + + + + | 7369 | SMITH | CL
阅读全文
摘要:7 查看表结构: show tables; + + | Tables_in_mydatabase | + + | dept | (部门表) | emp | (员工表) | salgrade | (工资等级表) + + desc dept; + + + + + + + | Field | Type |
阅读全文
摘要:6 删除数据库:drop database mydatabase;
阅读全文
摘要:5 bjpowernode.sql,这个文件以sql结尾,这样的文件被称为“sql脚本”。什么是sql脚本呢? 当一个文件的扩展名是.sql,并且该文件中编写了大量的sql语句,我们称这样的文件为sql脚本。 注意:直接使用source命令可以执行sql脚本。 sql脚本中的数据量太大的时候,无法打
阅读全文
摘要:4 导入数据(后期大家练习的时候使用这个演示的数据) 第一步:登陆mysql数据库管理系统 dos命令窗口: mysql -uroot -p333 第二步:查看有哪些数据库 show databases;(这个不是SQL语句,属于MySQL的命令。) show databases; + + | Da
阅读全文
摘要:3 学习MySQL主要还是学习通用的SQL语句,那么SQL语句包括增删改查,SQL语句怎么分类呢? DQL:(数据查询语言)查询语句,凡是select语句都是DQL。 DML:(数据操作语言)insert delete update,对表当中的数据进行增删改。 DDL:(数据定义语言)create
阅读全文
摘要:2 什么是表? 表:table 表:table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强。 一个表包括行和列: 行:被称为数据/记录(data) 列:被称为字段(column) 学号(int) 姓名(varchar2) 年龄(int) 110 张三 20 120 李四 21
阅读全文
摘要:1 sql、DB、DBMS分别是什么,他们之间的关系? DB: DataBase(数据库,数据库实际上在硬盘上以文件的形式存在) DBMS: DataBase Management System(数据库管理系统,常见的有:MySQL Oracle DB2 Sybase SqlServer...) S
阅读全文
摘要:3 注解 3.1 注解,或者叫做注释类型,英文单词是:Annotation 疑问:注解是干什么的? 3.2 注解Annotation是一种引用数据类型。编译之后也是生成xxx.class文件。 3.3 怎么自定义注解呢?语法格式? [修饰符列表]@interface 注解类型名{ } 3.4 注解怎
阅读全文
摘要:package com.javaSe.reflect; /* 重点:给你一个类,怎么获取这个类的父类,已经实现了哪些接口? */ public class ReflectTest13 { public static void main(String[] args) throws Exception{
阅读全文
摘要:Vip业务类: package com.javaSe.bean; public class Vip { int no; String name; String birth; boolean sex; public Vip() { } public Vip(int no, String name) {
阅读全文
摘要:用户业务类: package com.javaSe.Service; /* 用户业务类 */ public class UserService { /** * 登陆方法 * @param name 用户名 * @param password 密码 * @return true表示登陆成功,false
阅读全文
摘要:可变长度参数案例: package com.javaSe.reflect; /* 可变长参数 int... args 这就是可变长参数 语法是:类型... (注意:一定是3个点。) 1 可变长度参数要求的参数个数是0~n个。 2 可变长度参数在参数列表中必须在最后一个位置上,而且可变长度参数只能有1
阅读全文
摘要:Student类: package com.javaSe.bean; // 反射属性Field public class Student { // Field翻译为字段,其实就是属性/成员 // 4个Field,分别采用了不同的访问控制权限修饰符。 private String name; // F
阅读全文
摘要:package com.javaSe.reflect; import java.io.FileReader; import java.io.InputStream; import java.util.Properties; public class IoPropertiesTest { public
阅读全文