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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 哒哒哒~~ 初级黑马   /  2018-5-9 16:24  /  611 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

                                                               学习笔记

function(index, html)   HTML\代码
  • 无参数 描述:
    返回p元素的内容。
    jQuery 代码:
    $('p').html();参数val 描述:
    • 设置所有 p 元素的内容

    jQuery 代码:
    $("p").html("Hello <b>world</b>!");回调函数描述:
    • 使用函数来设置所有匹配元素的内容。

    jQuery 代码:
    $("p").html(function(n){
        return "这个 p 元素的 index 是:" + n;
        });
function(index, text)  HTML\文本无参数 描述:
返回p元素的文本内容。
jQuery 代码:
$('p').text();参数val 描述:
设置所有 p 元素的文本内容
jQuery 代码:
$("p").text("Hello world!");回调函数 描述:
使用函数来设置所有匹配元素的文本内容。
jQuery 代码:
$("p").text(function(n){
    return "这个 p 元素的 index 是:" + n;
    });function(index, value)  HTML\值无参数 描述:
获取文本框中的值
jQuery 代码:
$("input").val();参数val 描述:
设定文本框的值
jQuery 代码:
$("input").val("hello world!");回调函数 描述:
设定文本框的值
jQuery 代码:
$('input:text.items').val(function() {
  return this.value + ' ' + this.className;
});参数array 描述:
设定一个select和一个多选的select的值
HTML 代码:
<select id="single">
  <option>Single</option>
  <option>Single2</option>
</select>
<select id="multiple" multiple="multiple">
  <option selected="selected">Multiple</option>
  <option>Multiple2</option>
  <option selected="selected">Multiple3</option>
</select><br/>
<input type="checkbox" value="check1"/> check1
<input type="checkbox" value="check2"/> check2
<input type="radio" value="radio1"/> radio1
<input type="radio" value="radio2"/> radio2jQuery 代码:
$("#single").val("Single2");
$("#multiple").val(["Multiple2", "Multiple3"]);
$("input").val(["check2", "radio1"]);delegate(selector,[type],[data],fn)事件委派
  • 指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
    使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。

创建数据库
character       kairui kete
collate   keleite
  • create  database数据库名字
  • carate database 名字 character 字符集 collatezi 字符集校队规则

查看数据库查看所有数据库
  • show databases

查看某个数据库
  • show create database 数据库名

修改数据库
  • alter database 数据库名 character set 字符集 collate 校对规则;
  • 删除数据库
    • drop database 数据库名称

  • 切换数据库
    • use 数据库名称

  • 查看正在使用的数据库
    • select database()


SQL对表进行操作
  • 创建表
    • 一个实体对应一个表,实体属性对应表的字段

    create database web_test1;
    use web_test1;
    create table user(
        id int primary key auto_increment,
        username varchar(20) unique,
        password varchar(20) not null,
        age int,
        birthday date
    );
    //  create table 表名称(字段名称 字段类型(长度) 约束,字段名称 字段类型(长度) 约束…);
    byte/short/int/long 对应tinyint/smallint/int/bigint

char/string 对应   char/varchar
  • char 代表固定长度的字符或者字符串
  • varchar 代表可变长度的字符串
  • datetime和timestamp区别
    • datetime  既有日期也有时间 如果字段没有存值 则是null
    • timestamp 也是有日期有时间的类  如果没有存值 则使用当前系统时间

  • 约束
    • 约束作用:保证数据的完整性
    • 单表约束分类:
      • 主键约束:primary key 主键约束默认就是唯一 非空的
      • 唯一约束:unique
      • 非空约束:not null


  • 查看所有表
    • show tables;

  • 查看某个表的信息
    • desc 表名;

  • 删除某个表
    • drop tabale 表明;

  • 修改表 : 添加列
    • alter tabale 表名 add 列名 类型 (长度)  约束;

  • 修改表: 修改列类型, 长度和约束
    • alter table 表名 modify 列名 类型(长度) 约束;

  • 修改表: 删除列;
    • alter tabale 表名 drop 列名;

  • 修改表:修改列名称
    • alter table 表名 change 旧列名 新列名 类型(长度) 约束;

  • 修改表: 修改表名
    • rename table 表名 to 新的表名;

  • 修改表: 修改字符集;
    • alter table 表名 character set 字符集;


SQL 对数据库记录进行操作 [重点]!SQL添加表的记录
  • 语法:  
    • 向表中插入某些列:insert into 表名 (列名1,列名2,列名3…) values (值1,值2,值3…);
    • 向表中插入所有列:insert into 表名 values (值1,值2,值3…);

  • 注意事项
    • 1.值的类型与数据库中表列的类型一致。   
    • 2.值的顺序与数据库中表列的顺序一致。
    • 3.值的最大长度不能超过列设置最大长度。
    • 4.值的类型是字符串或者是日期类型,使用单引号引起来。

  • 添加某几列
    • insert into  user (id,username,password) values (null,'aaa','123');

  • 添加所有列
    • insert into user values (null,'bbb','123',23,'1993-09-01');

  • 添加中文记录会出错 记得改 [查文档 这里没记录]

SQL修改表的记录
  • 语法:
    • update 表名 set 字段名=值,字段名=新的值 [where 条件];

  • 注意事项
    • 1.值的类型与列的类型一致。
    • 2.值的最大长度不能超过列设置的最大长度。
    • 3.字符串类型和日期类型添加单引号。

  • 值修改某一列的所有
    • update user set password = 'abc';

  • 按条件修改数据
    • update user set password = 'xyz' where username ='bbb';

  • 按条件修改多个列
    • update user set password='123',age=34 whereusername='aaa';


SQL删除表的记录
  • 语法:
    • delete from 表名 [where 条件];

  • 注意事项
    • 1.删除表的记录,指的是删除表中的一行记录。
    • 2.删除如果没有条件,默认是删除表中的所有记录。

  • 删除某一条记录[ID=2的]
    • delete from user where id = 2;

  • 删除表中的所有记录
    • delete from user;



   删除表中的记录有两种做法:
   delete from user;
   删除所有记录,属于DML语句,一条记录一条记录删除。事务可以作用在DML语句上的
   truncate table user;
   删除所有记录,属于DDL语句,将表删除,然后重新创建一个结构一样的表。事务不能控制DDL的
查看表的记录(重点)!
  • 基本查询
    • 语法 select 字段名 from 表名 [条件]



准备的表
create table exam(
    id int primary key auto_increment,
    name varchar(20),
    english int,
    chinese int,
    math    int
);

insert into exam values (null,'张三',85,74,91);
insert into exam values (null,'李四',95,90,83);
insert into exam values (null,'王五',85,84,59);
insert into exam values (null,'赵六',75,79,76);
insert into exam values (null,'田七',69,63,98);
insert into exam values (null,'李老八',89,90,83);
  • 查询所有学生考试成绩信息
    • select * from exam;

  • 查询所有学生的姓名和英语成绩
    • select name,english from exam;

  • 查询英语成绩信息(不显示重复的值)
    • select distinct english from exam;

  • 查看学生姓名和学生的总成绩
    • select name,english+chinese+math from exam;

  • 更改名字查询
    • select name,english+chinese+math as sum from exam;

  • 条件查询
    • 使用where  子句
    • > , < , >= ,<= , <> ,=
    • like:      模糊查询
    • in:      范围查询
    • 条件关联:   and , or,not

  • 排序查询
  • where   的子句后面不能跟着聚合函数。如果现在使用带有聚合函数的条件过滤(分组后条件过滤)需要使用一个关键字having

select product,sum(price) from orderitem  group by product having sum(price) > 5000;
聚合函数
  • 查文档吧  sum count ........

多表连接
````外键约束:
        alter table employee add foreign key (dno) references dept(did);
````外键非空:
        alter table employee modify dno int not null;
```多表设计表关系:
        一对一
        一对多
        多对多多表查询
    多表查询分为:
        连接查询
            交叉连接:cross join  查询到的是两个表的笛卡尔积 (不常用)
                select * from classes cross join student;
                SELECT * FROM classes,student;   (省略cross join 关键字)
            内连接:inner join(inner是可以省略的)
                显示: select * from classes c inner join student s on c.cid = s.cno;
                隐式: SELECT * FROM classes c,student s WHERE c.cid = s.cno; (常用)
             外连接outer join(outer可以省略的)
                 左外连接:SELECT * FROM classes c LEFT OUTER JOIN student s ON c.cid = s.cno;
                 右外连接:select * from classes c right outer join student s on c.cid = s.cno;
        子查询
            带 in     的子查询 ---->包含的
            带 exist  的子查询 ---->存在的
            带 any    的子查询 ---->包含任意的
            带 all    的子查询 ---->所有的
事物
事务:指的是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么全都成功,要么全都失败。
事物特性
    1. 原子性
    2. 一致性
    3. 隔离性
    4. 持久性jdbc先抽取工具类设置配置文件  .properties 文件
//格式为:
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://自己的主机名(可以不写)/数据库名
......在工具类中解析属性文件
  • 获取到的具体内容为常量赋值

//代码实现 静态代码块
static{
    //获取文件的啥内容 输入流读取出来
    Properties properties = new Properties();
    try{
        properties.load(new FileInputStream("路径"));
    }catch(FileNotFoundExcption e){
        e.printStackTrace();
    }catch(IOException e){
        e.prinStackTrace();
    }
    driverClassName = properties.getProperty("driverClassName");
    url=properties.getProperty(url);
    //......为工具类中的常量赋值 赋值成配置文件中的值
}没有调用工具类的执行步骤//驱动管理类:
DriverManager加载驱动:
Classs.farName("com.mysql.jdbc.Driver");
//获得连接
Connection conn=DriverManager.getConnection("jdbc:mysql:///web_test3", "root", "abc");


//编写sql语句:
String sql = "sql语句 ?";//变量是用占位符 ? 号
//预编译
PreparedStatement pstmt = conn.prepareStatement(sql);
pstam = setString(前面是第几个问号,后面是为其赋值);
//执行sql
ResultSet rs= pstmt.executeQuery();
/*
如果是查询用 Query
增 删 改 就是update()
返回的是int类型 影响的行数 就不用ResultSet了
*/
//遍历查询的的结果集
while(rs.Next()){
    //如果表里面是 getxxx  varchar 就是string int还是int
    syso(rs.getInt("表里面的各列名字"));
}
标准的关流操作// 资源释放:
        if(rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            
            rs = null;
        }
        if(stmt != null){
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            
            stmt = null;
        }
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            conn = null;
        }
批量处理
PreparedStatement pstmt = conn.prepareStatement(sql);
//添加到批处理
pstmt.addBatch();
//执行批处理
pstmt.executeBatch();
//清空批处理
pstmt.clearBatch();

0 个回复

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