写点什么

springboot 入门教程和 mysql 数据库,java 框架面试基础

  • 2021 年 11 月 10 日
  • 本文字数:3295 字

    阅读完需:约 11 分钟

10:@PathVariable


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


11:@RequestParam


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


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


引入 Spring Boot Starter 父工程:


<parent>


<groupId>org.springframework.boot</groupId>


<artifactId>spring-boot-starter-parent</artifactId>


<version>undefined</version>


<relativePath/>


</parent>


引入 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 注解,扫


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


描 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<User> {


}


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


@SpringBootTest


public class SampleTest {


@Autowired


private UserMapper userMapper;


@Test


public void testSelect() {


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


List<User> userList = userMapper.selectList(null);


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


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


}


}


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


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


<sql id="valid"> where valid = 1 </sql>


<select id = 'queryUser'>select * from user <include refid = 'valid'></include>


2、insert – 映射插入语句


<insert id = "saveUser">insert into User (id,name,sex) values (#{id},#{name},#{sex})<insert>


3、update – 映射更新语句


<update id="updateUser">


update User set


name = #{name},


sex= #{sex}


where id = #{id}


</update>


4、delete – 映射删除语句


<delete id="deleteUser">


delete from User where id = #{id}


</delete>


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


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


@RequestMapping("/admin")


@Controller


@ResponseBody


public class AdminController {


@Autowired


private AdminMapper adminMapper;


@ApiOperation("管理员登录")


@RequestMapping("/login")


public ResponseMessage login(@RequestBody LoginVo loginVo){


QueryWrapper<Admin> 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 表名;


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


字符串函数


函数名 ? ? ? ? ? ? ? ? ? ? ?作用 ? ? ? ? ? ? ? ? ? ? ? ? 举例


CONCAT ? ? ? ? ? ? ? ? ?字符串连接 ? ? ? ? ? ? ? SELECT CONCAT('my','s',ql');


(str1,str2...) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回:mysql


INSERT ? ? ? ? ? ? ? ? ? ? 字符串替换 ? ? ? ? ? ? ? SELECT INSERT('这是 SQL Server 数据库',3,10,'MySQL');


(str,pos,len,newstr) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回:这是 MySQL 数据库


LOWER ? ? ? ? ? ? ? ? ? ?将字符串转为小写 ? ? ? SELECT LOWER(MySQL);


(str) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回:mysql


UPPER ? ? ? ? ? ? ? ? ? ? 将字符串转为大写 ? ? ? SELECT UPPER(MySQL);


(str) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回:MYSQL


SUBSTRING ? ? ? ? ? ? ?字符串截取 ? ? ? ? ? ? ? ?SELECT SUBSTRING('JavaMySQLOracle',5,5);


(str,num,len) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回:MySQL ? ? ?


时间日期函数


函数名 ? ? ? ? ? ? ? ? ? ? 作用 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?举例


CURDATE() ? ? ? ? ? ? ?获取当前日期 ? ? ? SELECT CURDATE(); ??


返回:2018-01-30


CURTIME() ? ? ? ? ? ? ?获取当前时间 ? ? ? SELECT CURTIME();


返回:15:32:59


NOW() ? ? ? ? ? ? ? ? ? ?获取当前日期和时间 SELECT NOW();


返回:2018-01-30 15:32:59


WEEK(date) ? ? ? ? ? ? 返回日期 date 为一年 SELECT WEEK(NOW());

评论

发布
暂无评论
springboot入门教程和mysql数据库,java框架面试基础