Birdboot第六天 jar包 数据库

news2025/7/12 7:33:17

实际应用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/18125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

动力节点索引优化解决方案学习笔记——索引介绍

1.索引介绍 1.1什么是MySQL的索引 MySQL官方对于索引的定义:索引是帮助MySQL高效获取数据的数据结构。 MySQL在存储数据之外,数据库系统中还维护着满足特定查找算法的数据结构,这些数据结构以某种引用(指向)表中的数据,这样我们…

决策树算法

目录 ​分类算法 决策树算法 外卖订餐决策树 分支处理 分类算法 分类算法是利用训练样本集获得分类函数即分类模型(分类器),从而实现将数据集中的样本划分到各个类中。分类模型通过学习训练样本中属性集与类别之间的潜在关系,并以此为依据对新样本属…

测试基础——数据库及数据库表的SQL操作(了解即可)

目录 1.数据库基础概念 2.SQL介绍 3.MySQL介绍 4.数据库连接工具Navicat 5.数据类型 6.约束 7.对数据库操作的SQL语句 7.1创建数据库 7.2使用/打开/切换数据库 7.3修改数据库 7.4删除数据库 7.5查看所有数据库 7.6数据库备份 8.数据库表操作的SQL语句 8.1创建数据…

VisualSFM的配置与使用 MeshLab的网格生成与纹理添加

前言 本实验环境如下: VisualSFM版本V0.5.26 MeshLab版本2022.02 操作系统Windows10,64bit 0 VisualSFM配置 0.1 下载 VisualSFM下载链接:VisualSFM : A Visual Structure from Motion System Cmvs-Pmvs下载链接:GitHub -…

[附源码]SSM计算机毕业设计郑工校园二手交易平台网站JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

有限自动机字符串匹配

上一篇文章正则表达式,提到正则表达式是一种用来表示有限自动机所接受单词组合的语言,那么什么是有限自动机呢,以及它是如何进行字符串匹配的,下面来做详细介绍 什么是有限自动机 目前程序上利用不同的编程语言通过正则表达式进…

泰勒公式理解

文章目录1:一元泰勒展开公式2:二元泰勒展开公式3:二元函数的黑塞矩阵4:多元函数的黑塞矩阵其他链接1:一元泰勒展开公式 举例:f(x) 3x 2x 5 在x0或x1处的泰勒展开 当x0时: 当x1时&#xff…

cadence orcad capture tcl/tk脚本开发

Orcad是一个很优秀的原理图工具,orcad支持tcl/tk开发,介绍一下当前本人开发的脚本工具,可用于提高硬件工程师的画图效率。 环境准备 将压缩包解压到C盘(注意一定要C盘根目录下),C:\Tcltk。如下图所示将上图…

Selector的使用

文章目录Selector 的使用1.直接使用2. Scrapy Shell3.XPath 选择器4.CSS选择器5.正则匹配Selector 的使用 我们之前介绍了利用Beautiful Soup、pyquery 以及正则表达式来提取网页数据的方法,确实非常方便。不过Scrapy提供了自己的数据提取方法,即内置的…

[附源码]java毕业设计社区志愿者服务系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

传输中的差错检验技术

差错检验 在网络传输过程数据难免会产生错误,需要使用差错检验技术进行纠错,可靠传输技术避免错误的发生 1 术语 比特差错 误码率BER 差错检验码 2 奇偶校验(不会采用) 在待发送的数据后面添加1位奇偶校验位,使整…

MyBatis基于XML的详细使用-参数、返回结果 处理

1、参数的取值方式 在xml文件中编写sql语句的时候有两种取值的方式,分别是#{}和${}。 注意:这里推荐使用#{}的方式,可以有效的防止sql注入问题。 2、select的参数传递 1.单个参数: 不管多少个参数最好在参数前加上param注解,为其取一个别名 2.多个参数…

[网络工程师]-传输层协议-TCP拥塞控制

TCP拥塞控制的概念是:每个源端判断当前网络中有多少可用容量,从而知道它可以安全完成传送的分组数。拥塞控制解释防止过多的数据注入网络,避免网络中间设备(路由器、交换机等)过载而发生拥塞。拥塞控制是一个全局性的过…

数据结构系列学习(九) - 循环队列(Circular_Queue)

目录 引言: 学习: 循环队列设计背景: 利用顺序表的思维对队列进行探讨: 解决方案的思考: 循环队列中循环的体现: 循环队列的要点: 第一个难点: 第二个难点: 第三…

Verilog 显示任务($display, $write, $strobe, $monitor)

Verilog 中主要用以下 4 种系统任务来显示(打印)调试信息:$display, $write, $strobe, $monitor。 $display $display 使用方法和 C 语言中的 printf 函数非常类似,可以直接打印字符串,也可以在字符串中指定变量的格…

7. 微服务之Docker自动化部署

7.1 Docker 介绍 Docker 是一个快速交付应用、运行应用的技术: 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统运行时利用沙箱机制形成隔离容器,各个应用互不干扰启动、移除都可以通过一行命令完成&#xff…

华清远见:驱动点灯第N回目

1.在串口工具进行输入: echo 1 > /dev/myled0 ---->led1灯点亮 echo 0 > /dev/myled0 ---->led1灯熄灭 echo 1 > /dev/myled1 ---->led1灯点亮 echo 0 > /dev/myled1 ---->led1灯熄灭 echo 1 > /dev/myled2 ---->led1灯点亮 ec…

力扣刷题day52|84. 柱状图中最大的矩形

文章目录84. 柱状图中最大的矩形思路动态规划单调栈84. 柱状图中最大的矩形 力扣题目链接 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: …

空间域图像增强处理-含Labview程序

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、领域图像增强实例分析✳️ 2.1 线性滤波实例分析✳️ 2.2 非线性滤波实例分析✳️ 2.3 Canny边缘检测✳️ 三、Labview程序获取✳️ 一、引言 图像在其采集或传递过程中常会受到各种噪声的影响,这会导致其中包含的重要信息很…

忘机工尺谱 - 快速打谱软件

引言 为了实现高效快速打谱,我实现了一种词谱分离的输入方案,解决了当前工尺谱平台打谱过程频繁切换输入法和频繁点击鼠标等问题,大大提高了打谱效率。同时借鉴了Markdown编辑器”所见即所得“的思想,输入的同时可以见到排版后的…