A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 雪落 初级黑马   /  2018-5-9 15:19  /  668 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 雪落 于 2018-5-9 15:50 编辑

web笔记二

# bootstrap(这里主要是具备灵活使用引用的能力)
cv
全局的CSS样式
导航条
轮播图
模态框
标签页
字体
# MYSQL
## sql的分类(面试)

DDL数据定义语言:create,alter,drop,truncate
DML数据操纵语言:insert ,update,delete
DCL数据控制语言: if ,grant
DQL数据查询语言:select
## sql对表的crud
1.创建表:
```sql
create table 表名(
    字段名  字段类型(长度)约束,
    字段名  字段类型(长度)约束,
    字段名  字段类型(长度)约束
);
字段类型:
        char/String       char/varchar
        date               date/time/datetime/timestamp
约束:
        主键约束   primary key
        唯一约束   unique
        非空约束   not null
char和varchar的区别:
        * char代表是固定长度的字符或字符串。
                * 定义类型char(8),向这个字段存入字符串hello,那么数据库使用三个空格将其补全。
        * varchar代表的是可变长度的字符串。
                * 定义类型varchar(8), 向这个字段存入字符串hello,那么存入到数据库的就是hello。
datetime和timestamp区别
        * datetime就是既有日期又有时间的日期类型,如果没有向这个字段中存值,数据库使用null存入到数据库中
        * timestamp也是既有日期又有时间的日期类型,如果没有向这个字段中存值,数据库使用当前的系统时间存入到数据库中。
2.修改表结构
```sql
##添加字段
alter table 表名  add 字段名  字段类型(长度)约束;
##修改现有字段的类型或者长度
alter table 表名  modify  字段名 字段的类型(长度) 约束
```
## sql对表记录的crud
1.新增数据
```sql
1.
insert into 表名 (字段1,字段2 ,。。。。。) values (值1,值2,。。。。。);
2.
insert into 表名 values(。。。)  值的顺序要跟表的字段顺序要一致,不能少
```
2.修改数据
```sql
带条件的修改
update 表名 set 字段名=新的值,字段名=新的值 where 条件  如果要修改多个字段,最后一个字段跟where之间是没有逗号的
```

3.删除数据
```sql
带条件的删除
delete from 表名 wherer 条件
删除表中的记录有两种做法:
     *delete from user;
        *删除所有记录,属于DML语句,一条记录一条记录删除。事务可以作用在DML语句上的
     *truncate table user;
        *删除所有记录,属于DDL语句,将表删除,然后重新创建一个结构一样的表。事务不能控制DDL的
4.查询
```sql
整体的规则:
select 字段 from 表名  where 条件  group by 字段 having  order by 字段
模糊查询:like
两个占位符:_,%
x%:以x开头
%x;以x结尾
%x%:只要包含谭就可以了
范围:in
条件的并列:and or not
排序查询:使用order by 字段名称 asc/desc;
分组查询:使用group by 字段名称;
聚合函数:
sum:求和
count:统计个数
select sum(english)+sum(chinese)+sum(math) from exam;
select sum(english+chinese+math) from exam;
两个语句有什么不同?
* 上面的语句是按照列的方式统计,英语成绩总和+语文成绩总和+数学成绩总和。
* 下面的语句先计算英语+数学+语文然后再求和。
注意:
    *where的子句后面不能跟着聚合函数。如果现在使用带有聚合函数的条件过滤(分组后条件过滤)需要使用一个关键字having
    *通常顺序:S(select)… F(from)…W(where)…G(group by)…H(having)…O(order by);
## 多表
### 多表的设计原则

一对多:多的一方设置一个关联字段,跟一这一方的主键相对应,是否设置成真正的外键看业务需求
多对多:建立中间表,中间表中有两个关联字段分别关联两个表的主键字段,是否设置成真正的外键看业务需求
### 多表查询
#### 内连接:隐式的内连接:

```sql
select * from tab1,tab2 where 关联条件
#### 内连接:显式的内连接(不常用):
select * from tab1 inner join tab2 on 关联条件 ;
#### 左外连接
```sql
select * from tab1 left join tab2 on 关联条件
### 子查询`
子查询类型:
   *带in的子查询
   *带exists的子查询
   *带any的子查询
   *带all的子查询
## 事务
事务的概念
事务:指的是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么全都成功,要么全都失败。
   *开启事务:start transaction;
   *提交事务commit;
   *回滚事务:rollback;
事务的特性:
   *原子性
   *一致性
   *隔离性
   *持久性
# JDBC
## JDBC开发流程

```java
step1:注册驱动:Class.forName()
step2:获得连接:Connection conn = DriverManger.getConnection(url,username,password)// Connection java.sql包下的
step3:编写SQL语句,String sql ="",以前的值的地方用占位符代替  ?就是占位符
step4:预编译sql并且获得可执行sql语句的对象PreparedStatement ps = conn.prepareStatemet(String sql)
step5:为sql语句设置值,用值代替sql语句中的?   ps.setXXX(int n,值) n:代表第几个问号的意思,n从1开始
step6:执行sql语句
        如果是查询:ResutSet rs = ps.executeQuery();
                遍历结果集:
        while(rs.next()){
                rs.getXXX(String columnName)/rs.getObject(String columnName) ;
                //columnName默认是表地段名,如果取了别名,用别名
        }
        如果是增删改:int num = ps.executeUpdate() ;// num 代表影响的行数
step7:释放资源
```

## 工具类的抽取:Properties对象的使用
```java
Properties prop = new Properties();
prop.load(new FileInputStream(String path));
prop.getProperty(String key)
   
属性文件:.properties
key=value
aaa=adfadf
bbb=dafda
```
背后的思想:程序的解耦和










0 个回复

您需要登录后才可以回帖 登录 | 加入黑马