Birdboot第六天 jar包 数据库

实际应用birdboot框架

1.BirdBoot导包

1.新建maven BirdBoot------pom替换

2.删掉static 和 Springboot里面写的(controller entity)

   rebuild之后把无用的导包都删掉

 

主启动类里面把main方法改为run方法 传参:类名和参数(复制springboot里的)

因为springboot里面点的run方法,我们框架里面要改名为run方法

导包 右侧maven install

2.MyBirdBootProject应用

新建maven MyBirdBootProject

1.pom 加依赖   此步骤相当于建立spring是web打钩自动加依赖

2.resorse里新建目录 static 粘页面

3.main java新建包   com.myweb新建类 主启动类 MyBirdBOOTApplication

       手写框架里面BirdBootApplication点出run方法 传自己的类名和参

 因为成功添加依赖 导包后可以使用BirdBootApplication 可以加载页面 但显示空指针异常

因为请求业务时 DispatcherServlet里面找HandlerMapping去要,第一次调用HandlerMapping会执行他的静态块,执行initMapping会扫描controller类,此时没有会显示空指针

4.com.myweb.新建controllerl里新建UserController

       加方法 加注解

5.难点:controller的包名com.myweb应该可以随便写 但是birdboot需要扫描到controller

                所以springboot约定大于配置 要求controller包要和启动类Application放在同一个包下

启动类可以看见package包名

之前写死的

 下面的子目录

 数据库

密码:wn****

1.数据库软件

如果是第一次进入此界面并且没有驱动,IDEA会在Driver处提示没有下载对应数据库类型的驱动,直接点击,就会自动下载  

下载完成后,填写数据库账户信息,这里我的用户名User为root,由于是本地数据库,所以Host填写为localhost,端口Port为3306,Password填写用户名对应的密码即可,Database可以填写想连接的数据库名,也可以暂时不填,待连接上后再设置。填写以上所有信息后,点击Test Connection按钮,如果显示成功Successful,说明连接成功,点击OK按钮,配置完成

2.

数据库

数据库基本概念

数据库

DataBase(数据库),存储数据的仓库。

之前我们项目中将用户信息写入一个文件,最终用一个目录users保存所有用户信息。这个users目录就可以称为

是一个数据库。利用文件系统进行操作,经常已手动或半自动形式维护数据的操作,缺点:低效。

数据库管理系统

DBMS(数据库管理系统)。可独立运行的软件,用于维护数据的操作。

常见的DBMS有:

  • mysql
  • oracle
  • db2
  • sqlserver

 

数据库与表的概念

以Mysql为例:

我们可以在Mysql中创建若干个数据库,每个数据库用于一个项目。

每个数据库中又可以创建多个表,表是用于保存一组数据的。

示意图:

 

数据表是由行和列构成

其中列被称为字段,就是一组数据中各部分信息。

其中行被称为记录,就是各部分信息组成的一条数据。

注:用面向对象的角度思考:

​ 表相当于是一个java类。比如User类

​ 字段相当于是类中的属性。比如User类中有username,password,nickname,age四个属性

​ 记录相当于是类的一个实例。比如一个User实例就可以表示一个用户信息

 

如何操作DBMS

所有的DBMS都支持通过SQL语句进行操作。我们向数据库发送特定的SQL语句来表达要进行某项操作。

SQL有标准:SQL92

所有的DBMS都支持SQL92标准。

注:Structured Query Language(SQL)结构化查询语言

连接数据库的方式

  1. 命令行形式
  2. 第一方或第三方提供的图形化界面的客户端
  3. 在集成开发环境中(IDEA,Eclipse)
  4. JDBC(java 数据库连接),java程序中若需要使用数据库则这样连接(IDEA,Eclipse都采取这种方式)

SQL语句分类

  • DDL 数据定义语言

    ​ CREATE,DROP,ALTER

    ​ 对数据库对象进行操作的语言。数据库对象有:数据库,表,视图,索引等。

  • DML 数据操作语言

    ​ INSERT,UPDATE,DELETE

    ​ 对表中的数据进行操作的语言。

  • DQL 数据查询语言

    ​ SELECT

    ​ 对表中的数据进行查询的语言。

  • DCL 数据控制语言

    ​ DBA用于管理数据库的语言。

  • TCL 事物控制语言

    ​ COMMIT,ROLLBACK

    ​ 对DML数据操作保证具有原子性,一致性。

DDL 数据定义语言

查看DBMS中已有的数据库

SHOW DATABASES

数据库相关操作

新建一个数据库

基本语法:

CREATE DATABASE 数据库名 [CHARSET=字符集名称]

例如:

新建一个名为mydb的数据库
CREATE DATABASE mydb

创建数据库时可以指定字符集

CREATE DATABASE mydb1 CHARSET=UTF8
CREATE DATABASE mydb2 CHARSET=GBK

查看数据库信息

SHOW CREATE DATABASE 数据库名

例:

SHOW CREATE DATABASE mydb1

删除数据库

DROP DATABASE 数据库名

例:

DROP DATABASE mydb1

使用一个数据库(切换一个数据库)

若希望保存数据,则数据必须保存在某张表上。而表必须保存在某个数据库上,因此后期为了对某个数据库的表进行操作,要先切换到该数据库上,才能进行操作。

USE 数据库名

例:切换到mydb数据库

USE mydb

练习:

1. 创建 mydb1和mydb2 数据库 字符集分别为utf8和gbk
   CREATE DATABASE mydb1 CHARSET=utf8
   CREATE DATABASE mydb2 CHARSET=gbk
2. 查询所有数据库检查是否创建成功
   SHOW DATABASES
3. 检查两个数据库的字符集是否正确
   SHOW CREATE DATABASE mydb1
   SHOW CREATE DATABASE mydb2
4. 先使用mydb2 再使用 mydb1
   USE mydb2
   USE mydb1
5. 删除两个数据库
   DROP DATABASE mydb1
   DROP DATABASE mydb2

表相关操作

创建表

语法:

CREATE TABLE 表名(
	字段名 类型,
    字段名 类型,
    ...
)

例:

CREATE TABLE user(
	id INT,							INT在mysql中为整数类型。
	username VARCHAR(30),			VARCHAR在mysql中为字符串类型,长度为字节,
	password VARCHAR(30),			VARCHAR(30)则字符转换的字节最多30个,
	nickname VARCHAR(30),			若UTF-8编码则中文最多10个字(每个中文3字节)。
	age INT(3)						INT指定长度为位数。这里INT(3)为最多3位整数。
)

查看已创建的表的表结构

语法:

DESC 表名

例:

查看user表的表结构
DESC user

查看已创建表的详细信息

SHOW CREATE TABLE 表名

例如:

SHOW CREATE TABLE user

删除表

语法:

DROP TABLE 表名

例:

删除user表
DROP TABLE user

查看数据库中所有的表

SHOW TABLES

修改表

  • 修改表名

    语法:

    RENAME TABLE 原表名 TO 新表名
    

    例如:

    将表user改名为userinfo
    RENAME TABLE user TO userinfo
    
  • 修改表结构

    准备一张表测试:
    CREATE TABLE hero(
      	name VARCHAR(30),
        age INT(3)
    ) 
    

     

    • 添加字段

      • 向表末尾追加新的字段

        ALTER TABLE 表名 ADD 字段名 类型
        

        例:

        ALTER TABLE hero ADD gender VARCHAR(10)
        

         

      • 将字段添加到表的第一个字段位置上

        ALTER TABLE 表名 ADD 字段名 类型 FIRST
        

        例:

        在hero表第一个字段上添加id
        ALTER TABLE hero ADD id INT FIRST
        

         

      • 将字段插入到表中某个位置

        将字段插入到表中某字段的后面
        ALTER TABLE 表名 ADD 字段名 类型 AFTER 表中某字段
        

        例:

        将密码(pwd)字段插入到name和age之间
        ALTER TABLE hero ADD pwd VARCHAR(30) AFTER name
        

         

    • 删除字段

      ALTER TABLE 表名 DROP 字段名
      

      例:

      将pwd字段从hero表中删除
      ALTER TABLE hero DROP pwd
      
  • 修改现有字段

    ALTER TABLE 表名 CHANGE 原字段名 新字段名 类型
    

    例:

    • 将hero表中age字段的长度改为5
      ALTER TABLE hero CHANGE age age INT(5)
      

- ```sql
  将hero表中age字段的类型改为VARCHAR(10)
  ALTER TABLE hero CHANGE age age VHARCHAR(10)
  ```

  ![image-20221118172246180](assets/image-20221118172246180.png)

  

- ```sql
  将hero表中gender字段名改为pwd
  ALTER TABLE hero CHANGE gender pwd VARCHAR(10)
  ```

  ![image-20221118172557510](assets/image-20221118172557510.png)

- 注意事项:

  修改表字段应当在表中没有数据时进行。如果表中已经存在数据,则修改字段可能不成功。

  比如:

  hero表中有10条记录,每条记录gender字段已经有值(每个人的性别)

  若此时将表字段gender修改类型为INT。此时字符串转换int("男"怎么转成整数???)

  

  比如:

  hero表中pwd记录了每个人的密码。原长度为10。此时若修改字段长度为5,会导致原密码保存不下则修改失败。

练习:

1.创建数据库mydb3 字符集gbk 并使用
  CREATE DATABASE mydb3 CHARSET=gbk
  USE mydb3
2.创建t_hero英雄表, 有名字和年龄字段
  CREATE TABLE t_hero(
  	name VARCHAR(30),
    age INT(3)
  ) 
3.修改表名为hero
  RENAME TABLE t_hero TO hero
4.查看表hero的信息
  SHOW CREATE TABLE hero
5.查询表hero结构
  DESC hero
6.删除表hero
  DROP TABLE hero
7.删除数据库mydb3
  DROP DATABASE mydb3

作业:

1.创建数据库mydb4 字符集utf8并使用
2.创建teacher表 有名字(name)字段
3.添加表字段: 最后添加age 最前面添加id(int型) , age前面添加salary工资(int型)
4.删除age字段
5.修改表名为t
6.删除表t
7.删除数据库mydb4
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值