• 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=字符集名称]
    

    例如:

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

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

    1. CREATE DATABASE mydb1 CHARSET=UTF8
    2. CREATE DATABASE mydb2 CHARSET=GBK

    查看数据库信息

    SHOW CREATE DATABASE 数据库名
    

    例:

    SHOW CREATE DATABASE mydb1
    

    删除数据库

    DROP DATABASE 数据库名
    

    例:

    DROP DATABASE mydb1
    

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

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

    USE 数据库名
    

    例:切换到mydb数据库

    USE mydb
    

    练习:

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

    表相关操作

    创建表

    语法:

    1. CREATE TABLE 表名(
    2. 字段名 类型,
    3. 字段名 类型,
    4. ...
    5. )

    例:

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

    查看已创建的表的表结构

    语法:

    DESC 表名
    

    例:

    1. 查看user表的表结构
    2. DESC user

    查看已创建表的详细信息

    SHOW CREATE TABLE 表名
    

    例如:

    SHOW CREATE TABLE user
    

    删除表

    语法:

    DROP TABLE 表名
    

    例:

    1. 删除user
    2. DROP TABLE user

    查看数据库中所有的表

    SHOW TABLES
    

    修改表

    • 修改表名

      语法:

      RENAME TABLE 原表名 TO 新表名
      

      例如:

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

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

       

      • 添加字段

        • 向表末尾追加新的字段

          ALTER TABLE 表名 ADD 字段名 类型
          

          例:

          ALTER TABLE hero ADD gender VARCHAR(10)
          

           

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

          ALTER TABLE 表名 ADD 字段名 类型 FIRST
          

          例:

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

           

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

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

          例:

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

           

      • 删除字段

        ALTER TABLE 表名 DROP 字段名
        

        例:

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

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

      例:

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

    1. - ```sql
    2. 将hero表中age字段的类型改为VARCHAR(10)
    3. ALTER TABLE hero CHANGE age age VHARCHAR(10)
    4. ```
    5. ![image-20221118172246180](assets/image-20221118172246180.png)
    6. - ```sql
    7. 将hero表中gender字段名改为pwd
    8. ALTER TABLE hero CHANGE gender pwd VARCHAR(10)
    9. ```
    10. ![image-20221118172557510](assets/image-20221118172557510.png)
    11. - 注意事项:
    12. 修改表字段应当在表中没有数据时进行。如果表中已经存在数据,则修改字段可能不成功。
    13. 比如:
    14. hero表中有10条记录,每条记录gender字段已经有值(每个人的性别)
    15. 若此时将表字段gender修改类型为INT。此时字符串转换int("男"怎么转成整数???)
    16. 比如:
    17. hero表中pwd记录了每个人的密码。原长度为10。此时若修改字段长度为5,会导致原密码保存不下则修改失败。

    练习:

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

    作业:

    1. 1.创建数据库mydb4 字符集utf8并使用
    2. 2.创建teacher表 有名字(name)字段
    3. 3.添加表字段: 最后添加age 最前面添加id(int型) , age前面添加salary工资(int型)
    4. 4.删除age字段
    5. 5.修改表名为t
    6. 6.删除表t
    7. 7.删除数据库mydb4
  • 相关阅读:
    PDF转图片各种技术方案对接,寻找最优解
    Swifit学习第一天
    [原创]JVM知识点盘点
    MySQL视图&导入导出&索引&执行计划
    一款超美观强大的 Nginx 可视化管理界面 nginx-proxy-manager
    FCOS网络详解
    算法系列七:十大经典排序算法之——希尔排序
    [一篇读懂]C语言九讲:线性表应用
    Python中什么是多态,Python多态及用法详解
    前端成神之路-HTML
  • 原文地址:https://blog.csdn.net/m0_61332438/article/details/127917851