springboot入门教程和mysql数据库,jvm优化面试题

8:@MapperScan

主要作用于启动类上,用于生成DAO接口的实现类,如果DAO接口比较多,推荐使用@MapperScan注解,写法如@MapperScan(“com.example.demo.dao”).

9:@Controller

主要作用于控制层类上,用于处理http请求等。

10:@PathVariable

主要是用于取url中的变量的值,比如 @RequestMapping("/student/{studentName}"),那么在对应的方法入参中可以写成:(@PathVariable  String  studentName).

11:@RequestParam

将请求参数绑定到Controller的方法上面,@RequestParam(value=”参数名”)。

(5) 如何使用mybaits-plus(用法可以到官网查询 https://baomidou.com/ )

引入 Spring Boot Starter 父工程:

org.springframework.boot

spring-boot-starter-parent

undefined

引入 spring-boot-starter、spring-boot-starter-test、mybatis-plus-boot-starter、h2 依赖:

在 application.yml 配置文件中添加 H2 数据库的相关配置:

# DataSource Config

spring:

datasource:

driver-class-name: org.h2.Driver

schema: classpath:db/schema-h2.sql

data: classpath:db/data-h2.sql

url: jdbc:h2:mem:test

username: root

password: test

在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:

@SpringBootApplication

@MapperScan(“com.baomidou.mybatisplus.samples.quickstart.mapper”)

public class Application {

public static void main(String[] args) {

SpringApplication.run(QuickStartApplication.class, args);

}

}

编写实体类 User.java(此处使用了 Lombok (opens new window)简化代码)

@Data

public class User {

private Long id;

private String name;

private Integer age;

private String email;

}

编写Mapper类 UserMapper.java

public interface UserMapper extends BaseMapper {

}

添加测试类,进行功能测试:

@SpringBootTest

public class SampleTest {

@Autowired

private UserMapper userMapper;

@Test

public void testSelect() {

System.out.println(("----- selectAll method test ------"));

List userList = userMapper.selectList(null);

Assert.assertEquals(5, userList.size());

userList.forEach(System.out::println);

}

}

(6) mybaits常用注解以及作用

1、sql – 可被其他语句引用的可重用语句块

where valid = 1

select * from user

2、insert – 映射插入语句

insert into User (id,name,sex) values (#{id},#{name},#{sex})

3、update – 映射更新语句

update User set

name = #{name},

sex= #{sex}

where id = #{id}

4、delete – 映射删除语句

delete from User where id = #{id}

(7) 编写一个简单的登陆注册功能

@Api(tags = {“管理员接口”})

@RequestMapping("/admin")

@Controller

@ResponseBody

public class AdminController {

@Autowired

private AdminMapper adminMapper;

@ApiOperation(“管理员登录”)

@RequestMapping("/login")

public ResponseMessage login(@RequestBody LoginVo loginVo){

QueryWrapper queryWrapper=new QueryWrapper<>();

queryWrapper.eq(“account”,loginVo.getAccount());

queryWrapper.eq(“pwd”,loginVo.getPwd());

Admin admin=adminMapper.selectOne(queryWrapper);

if (admin==null){

return ResponseMessage.error(“请登录”);

}else {

admin.setToken(UUID.randomUUID().toString());

adminMapper.updateById(admin);

return ResponseMessage.success(admin);

}

}

@ApiOperation(“管理员注册”)

@RequestMapping("/register")

public ResponseMessage register(@RequestBody Admin admin){

adminMapper.insert(admin);

return ResponseMessage.success(1);

}

}

2. mysql数据库

(1) 数据库的安装

参考博客:https://www.cnblogs.com/Eva-J/articles/9664401.html

(2) 数据库常用字段

字符型

VARCHAR VS CHAR

文本型

TEXT

数值型

SQL支持许多种不同的数值型数据。你可以存储整数 INT 、小数 NUMERIC、和钱数 MONEY。

INT VS SMALLINT VS TINYINT

逻辑型

BIT

日期型

DATETIME VS SMALLDATETIME

Unsigned

无符号的整数

声明了该列不能声明为负值,否则变为0

zerofill

0填充的

不足位数,使用0来填充

自增

自动增加,必须是整数

可以自定义自增的起始值和步长

非空 Not Null

假设设置为not null,如果不给它赋值,就会报错

Null,如果不填值,就是默认Null

(3) 数据库与表的创建

mysql> CREATE DATABASE 库名;

mysql> CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;

mysql> USE 库名;

mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));

(4) 增删查改的SQL格式

mysql> INSERT INTO 表名 VALUES (“hyq”,“M”);

mysql> DELETE FROM 表名;

mysql> SELECT * FROM 表名;

mysql-> UPDATE 表名 SET 字段名1=‘a’,字段名2=‘b’ WHERE 字段名3=‘c’;

(5) IN 、BETWEEN 、LIKE 用法

//in条件的用法

select *

from MyClass

where Age=11 or Age =12 or Age =15

order by Age

//两条SQL语句结果一样

select *

from MyClass

where Age  in(11,12,15)

order by Age

select *

from dbo.MyClass

where Age >10 and Age <20

order by Age

//两个结果完成一样

select *

from MyClass

where Age between 10 and 20

order by Age

//字符串匹配   //模糊查寻时用到

//两个匹配通配符 %任意多个任意字符,_任意一个任意字符

select *

from MyClass

where Name  like ‘罗%’

(6) 关联查询

Mysql中的关联查询(内连接,外连接,自连接)

(7) INNER JOIN 、 LEFT JOIN 、RIGHT JOIN 、FULL JOIN  用法

INNER JOIN 连接两个数据表的用法:

SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号

inner join(等值连接) 只返回两个表中联结字段相等的行

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录

right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录

(8) 数据库常用函数

常用函数 聚合函数

函数名              作用

AVG()              返回某字段的平均值

COUNT()         返回某字段的行数

MAX()              返回某字段的最大值

MIN()              返回某字段的最小值

SUM()              返回字段的和

用法:SELECT AVG(字段名) FROM 表名;

SELECT COUNT(字段名) FROM 表名;

SELECT MAX(字段名) FROM 表名;

SELECT MIN(字段名) FROM 表名;

SELECT SUM(字段名) FROM 表名;

这些函数可以计算一些数值,用起来会非常方便

最后

小编精心为大家准备了一手资料

以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

【附】架构书籍

  1. BAT面试的20道高频数据库问题解析
  2. Java面试宝典
  3. Netty实战
  4. 算法

BATJ面试要点及Java架构师进阶资料

一些数值,用起来会非常方便

最后

小编精心为大家准备了一手资料

[外链图片转存中…(img-DhIrFjbJ-1630914789215)]

[外链图片转存中…(img-kMy3qGv9-1630914789217)]

以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

【附】架构书籍

  1. BAT面试的20道高频数据库问题解析
  2. Java面试宝典
  3. Netty实战
  4. 算法

[外链图片转存中…(img-G65knWMB-1630914789218)]

BATJ面试要点及Java架构师进阶资料

[外链图片转存中…(img-QmhE830A-1630914789219)]

热门文章

暂无图片
编程学习 ·

Java输出数组的内容

Java输出数组的内容_一万个小时-CSDN博客_java打印数组内容1. 输出内容最常见的方式// List<String>类型的列表List<String> list new ArrayList<String>();list.add("First");list.add("Second");list.add("Third");list.ad…
暂无图片
编程学习 ·

母螳螂的“魅惑之术”

在它们对大蝗虫发起进攻的时候&#xff0c;我认认真真地观察了一次&#xff0c;因为它们突然像触电一样浑身痉挛起来&#xff0c;警觉地面对限前这个大家伙&#xff0c;然后放下自己优雅的身段和祈祷的双手&#xff0c;摆出了一个可怕的姿势。我被眼前的一幕吓到了&#xff0c;…
暂无图片
编程学习 ·

疯狂填词 mad_libs 第9章9.9.2

#win7 python3.7.0 import os,reos.chdir(d:\documents\program_language) file1open(.\疯狂填词_d9z9d2_r.txt) file2open(.\疯狂填词_d9z9d2_w.txt,w) words[ADJECTIVE,NOUN,VERB,NOUN] str1file1.read()#方法1 for word in words :word_replaceinput(fEnter a {word} :)str1…
暂无图片
编程学习 ·

HBASE 高可用

为了保证HBASE是高可用的,所依赖的HDFS和zookeeper也要是高可用的. 通过参数hbase.rootdir指定了连接到Hadoop的地址,mycluster表示为Hadoop的集群. HBASE本身的高可用很简单,只要在一个健康的集群其他节点通过命令 hbase-daemon.sh start master启动一个Hmaster进程,这个Hmast…
暂无图片
编程学习 ·

js事件操作语法

一、事件的绑定语法 语法形式1 事件监听 标签对象.addEventListener(click,function(){}); 语法形式2 on语法绑定 标签对象.onclick function(){} on语法是通过 等于赋值绑定的事件处理函数 , 等于赋值本质上执行的是覆盖赋值,后赋值的数据会覆盖之前存储的数据,也就是on…
暂无图片
编程学习 ·

Photoshop插件--晕影动态--选区--脚本开发--PS插件

文章目录1.插件界面2.关键代码2.1 选区2.2 动态晕影3.作者寄语PS是一款栅格图像编辑软件&#xff0c;具有许多强大的功能&#xff0c;本文演示如何通过脚本实现晕影动态和选区相关功能&#xff0c;展示从互联网收集而来的一个小插件&#xff0c;供大家学习交流&#xff0c;请勿…
暂无图片
编程学习 ·

vs LNK1104 无法打开文件“xxx.obj”

写在前面&#xff1a; 向大家推荐两本新书&#xff0c;《深度学习计算机视觉实战》和《学习OpenCV4&#xff1a;基于Python的算法实战》。 《深度学习计算机视觉实战》讲了计算机视觉理论基础&#xff0c;讲了案例项目&#xff0c;讲了模型部署&#xff0c;这些项目学会之后可以…
暂无图片
编程学习 ·

工业元宇宙的定义与实施路线图

工业元宇宙的定义与实施路线图 李正海 1 工业元宇宙 给大家做一个关于工业元宇宙的定义。对于工业&#xff0c;从设计的角度来讲&#xff0c;现在的设计人员已经做到了普遍的三维设计&#xff0c;但是进入元宇宙时代&#xff0c;就不仅仅只是三维设计了&#xff0c;我们的目…
暂无图片
编程学习 ·

【leectode 2022.1.15】完成一半题目

有 N 位扣友参加了微软与力扣举办了「以扣会友」线下活动。主办方提供了 2*N 道题目&#xff0c;整型数组 questions 中每个数字对应了每道题目所涉及的知识点类型。 若每位扣友选择不同的一题&#xff0c;请返回被选的 N 道题目至少包含多少种知识点类型。 示例 1&#xff1a…
暂无图片
编程学习 ·

js 面试题总结

一、js原型与原型链 1. prototype 每个函数都有一个prototype属性&#xff0c;被称为显示原型 2._ _proto_ _ 每个实例对象都会有_ _proto_ _属性,其被称为隐式原型 每一个实例对象的隐式原型_ _proto_ _属性指向自身构造函数的显式原型prototype 3. constructor 每个prot…
暂无图片
编程学习 ·

java练习代码

打印自定义行数的空心菱形练习代码如下 import java.util.Scanner; public class daYinLengXing{public static void main(String[] args) {System.out.println("请输入行数");Scanner myScanner new Scanner(System.in);int g myScanner.nextInt();int num g%2;//…
暂无图片
编程学习 ·

RocketMQ-什么是死信队列?怎么解决

目录 什么是死信队列 死信队列的特征 死信消息的处理 什么是死信队列 当一条消息初次消费失败&#xff0c;消息队列会自动进行消费重试&#xff1b;达到最大重试次数后&#xff0c;若消费依然失败&#xff0c;则表明消费者在正常情况下无法正确地消费该消息&#xff0c;此时…
暂无图片
编程学习 ·

项目 cg day04

第4章 lua、Canal实现广告缓存 学习目标 Lua介绍 Lua语法 输出、变量定义、数据类型、流程控制(if..)、循环操作、函数、表(数组)、模块OpenResty介绍(理解配置) 封装了Nginx&#xff0c;并且提供了Lua扩展&#xff0c;大大提升了Nginx对并发处理的能&#xff0c;10K-1000K Lu…
暂无图片
编程学习 ·

输出三角形

#include <stdio.h> int main() { int i,j; for(i0;i<5;i) { for(j0;j<i;j) { printf("*"); } printf("\n"); } }
暂无图片
编程学习 ·

stm32的BOOTLOADER学习1

序言 最近计划学习stm32的BOOTLOADER学习,把学习过程记录下来 因为现在网上STM32C8T6还是比较贵的,根据我的需求flash空间小一些也可以,所以我决定使用stm32c6t6.这个芯片的空间是32kb的。 #熟悉芯片内部的空间地址 1、flash ROM&#xff1a; 大小32KB&#xff0c;范围&#xf…
暂无图片
编程学习 ·

通过awk和shell来限制IP多次访问之学不会你打死我

学不会你打死我 今天我们用shell脚本&#xff0c;awk工具来分析日志来判断是否存在扫描器来进行破解网站密码——限制访问次数过多的IP地址&#xff0c;通过Iptables来进行限制。代码在末尾 首先我们要先查看日志的格式&#xff0c;分析出我们需要筛选的内容&#xff0c;日志…
暂无图片
编程学习 ·

Python - 如何像程序员一样思考

在为计算机编写程序之前&#xff0c;您必须学会如何像程序员一样思考。学习像程序员一样思考对任何学生都很有价值。以下步骤可帮助任何人学习编码并了解计算机科学的价值——即使他们不打算成为计算机科学家。 顾名思义&#xff0c;Python经常被想要学习编程的人用作第一语言…
暂无图片
编程学习 ·

蓝桥杯python-数字三角形

问题描述 虽然我前后用了三种做法&#xff0c;但是我发现只有“优化思路_1”可以通过蓝桥杯官网中的测评&#xff0c;但是如果用c/c的话&#xff0c;每个都通得过&#xff0c;足以可见python的效率之低&#xff08;但耐不住人家好用啊&#xff08;哭笑&#xff09;&#xff09…