SQL,MyBatis-Plus,maven,Spring与VUE3

目录

参加学校实训记下的一些知识点

java核心

ArrayList, Map

对比ArrayList与vector:

ArrayList线程不安全,第一次扩容到10,后面扩容到1.5倍

vector线程安全,扩容2倍

map:

HashMap使用红黑树存储同key的值,大于8个节点才会树化

hashMap线程不安全,hashTable线程安全

StringBuild线程不安全,StringBuffer线程安全

Lambda

Lambda:可以理解为函数式接口(只有一个抽象方法或加注解@FunctionalInterface)的实例对象

语法:(参数类型 参数名称) ‐> { 代码语句 }

小括号内的语法与传统方法参数列表一致:无参数则留空;多个参数则用逗号分隔。

省略:

小括号内参数的类型可以省略;

如果小括号内有且仅有一个参,则小括号可以省略;

如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号

常用函数式接口:

Supplier接口:获取一个泛型参数指定类型的对象数据

Consumer接口:使用一个指定泛型的数据

Function接口:根据一个类型的数据得到另一个类型的数据

Predicate接口:对某种类型的数据进行判断,从而得到一个boolean值结果

创建线程

java 复制代码
new Thread(新线程).start();
new Thread(()->{线程执行代码}).start(); //Lambda表达式

stream流

对list进行多次处理

java 复制代码
list.stream().filter(s ‐> s.startsWith("张"))
             .filter(s ‐> s.length() == 3)
             .forEach(System.out::println);

快捷键:

alt+enter 自动结构纠错

小巧思:

判断是否是奇数:与1进行&运算,得到2进制的最后一位,是0则是偶数,是1则是奇数

java 复制代码
(Integer&1)==1 

SQL

数据表:is_deleted 逻辑删除,bool值

创建时间 create_time

修改时间 update_time

MyBatis-Plus

分页

分页将大量数据分割成多个小块(页Page)进行显示和处理

动态sql

动态sql语句:

动态查询:不确定有哪些条件的条件查询

xml 复制代码
select * from
<where>
	<if test="user.id!=null">
		id=#{user.id}
	</if>
	<if test="user.loginName!=null">
		and login_name=#{user.loginName}
	</if>
</where>

动态输入:循环输入所有数据

xml 复制代码
update user set is_deleted=1 where id in (
	<foreach collection="ids" item="x" sparator=",">
		#{x}
	</foreach>
)

关联查询

1对1关联查询:查询一个对象会顺带查出另一个唯一的对象

例:根据班级id查询班级信息,顺带查老师的信息

java 复制代码
public class Classes {
    private int id;
    private String name;
    private Teacher teacher;
}
public class Teacher {
    private int id;
    private String name;
}

进行查询并定义sql映射文件ClassMapper.xml

xml 复制代码
<!--SQL查询部分-->
<!--指定使用名为ClassResultMap的结果映射来处理查询结果-->
<select id="getClass" parameterType="int" resultMap="ClassResultMap">
	<!--从class表(别名c)和teacher表(别名t)联合查询-->
    select * from class c, teacher t where c.teacher_id=t.t_id and  c.c_id=#{id}
</select>

<!--结果映射部分-->
<resultMap type="Classes" id="ClassResultMap">
	<!--主映射:班级对象-->
    <id property="id" column="c_id"/>
    <result property="name" column="c_name"/>
    <!--关联映射:教师对象-->
    <association property="teacher" javaType="Teacher">
        <id property="id" column="t_id"/>
        <result property="name" column="t_name"/>
    </association>
</resultMap>

1对n关联查询:查询一个对象会顺带查出另一堆的对象

例:根据classId查询对应的班级信息,包括学生,老师

java 复制代码
public class Student {
    private int id;
    private String name;
}
 
public class Classes {
    private int id;
    private String name;
    private Teacher teacher;
    private List<Student> students;
}

进行查询并定义sql映射文件ClassMapper.xml

xml 复制代码
<select id="getClass3" parameterType="int" resultMap="ClassResultMap3">
    select * from class c, teacher t,student s where c.teacher_id=t.t_id and c.C_id=s.class_id and  c.c_id=#{id}
</select>
<resultMap type="Classes" id="ClassResultMap3">
    <id property="id" column="c_id"/>
    <result property="name" column="c_name"/>
    <association property="teacher" column="teacher_id" javaType="Teacher">
        <id property="id" column="t_id"/>
        <result property="name" column="t_name"/>
    </association>
    <!-- ofType指定students集合中的对象类型 -->
    <collection property="students" ofType="Student">
        <id property="id" column="s_id"/>
        <result property="name" column="s_name"/>
    </collection>
</resultMap>

映射关系:column是数据库列名,property是java定义的属性名

雪花算法:确保id唯一

maven

引入第三方jar

优先看本地有没有需要的依赖包,不同项目可以共享

Spring

控制反转IOC:创建对象的权力在容器(第三方)而不在类里

依赖注入DI:类需要其它类实例时,通过容器注入获得(加上注解的类可以获得容器里的实例)

目的:降低耦合性

3层架构

持久层mapper:操作数据库

业务层service:实现业务逻辑

控制层control:接收HTTP请求

wrapper:条件构造器,查询条件有多个时使用

QuerWrapper:字段查询

LambdaQuerWrapper:属性查询

@param() 别名

VUE3

组件

vue组件包含3个部分:script, template, style

java 复制代码
//类似js
<script setup>
//定义常数
const age=2
//两种定义函数的方式
const xxx = function(){
}
const yyy = () => {
}
</script>

//类似html
<template>
</template>

//类似css
<style scoped>
</style>

{{}}里写表达式(文本插值)

v-前缀特殊属性

v-text, v-html,

v-if(判断标签是否存在,不存在时开发者工具都不显示),

v-show(判断标签是否显示),

v-for(遍历数组),

v-bind(将变量的值绑定到属性,可以缩写为:),

v-on(给标签添加事件,事件本质是方法,可以缩写为@),

v-model(双向绑定表单元素的值,数据需要是响应式数据ref)

html 复制代码
<!--两种效果相同-->
<h1>{{name}}</h1>
<h1 v-text="name"></h1>

响应式基本类型:ref

响应式对象:reactive

路由

router路由进行页面跳转,可传递参数

可以当页面的组件有路由,其它组件挂着在页面上无路由

给页面一个路由:

1.创建路由

javascript 复制代码
const routes = [
    {
        path: '/demo',
        name: 'Demo',
        component: Demo
    }
] // main.js如果没路由需要添加app.use(router)

2.原页面使用

html 复制代码
<div id="app">
      <router-link to="/demo">跳转到Demo页面</router-link>
      <router-view></router-view>
</div>

组件间传递值

父组件->子组件:defineProp直接传递

子组件->父组件:子组件修改一个变量,父组件监控这个变量并触发方法

onMounted (页面加载完成后执行的方法)

代理

前端服务器会根据请求前缀判断是不是对后端的请求,然后进行处理

javascript 复制代码
//vite.config.js进行配置
server: {
    host: 'localhost',
    port: 5173, //端口
    https: false, //false关闭https,true为开启
    proxy: {
      '/api': { //前缀为api时
        target: 'http://127.0.0.1:8080',
        ws: true,
        changeOrigin: true, //允许跨域
        rewrite: (path)=>path.replace(/^\/api/, '/api')
    }
}

发送请求

使用axios发送请求

get请求数据

javascript 复制代码
//get方法参数:get(url,{param:{}})
//url?xxx=yy&aa=bb
//方式1
axios.get('/ss?loginName='+loginName.value+'&password='+password.value).then((res)=>{
  //请求成功后执行
}).catch((error)=>{
  //处理错误
}).finally(()=>{
})
//方式2
axios.get('/ss',{params:{loginName:loginName.value,password:password.value}})
//方式3
axios.get(`/ss?loginName=${loginName.value}&password=${password.value}`)

post提交数据

javascript 复制代码
//post(url,data)发送json数据
axios.post('/ss',{loginName:loginName.value,password:password.value})

element-plus

vue样式,有各种样式

相关推荐
代码不停1 小时前
Spring Web MVC
前端·spring·mvc
ooseabiscuit1 小时前
Laravel3.x核心特性全解析
java·数据库·spring
凤山老林1 小时前
慢SQL治理:索引优化实战指南——从定位到优化的完整解决方案
java·sql·springboot·慢sql治理·sql 性能优化
:mnong11 小时前
附图报价系统设计分析5
electron·pdf·vue·cad·dwg·定额
是宇写的啊11 小时前
Spring AOP
java·spring
Mr_pyx12 小时前
Spring AI 入门教程:Java开发者的AI应用捷径
java·人工智能·spring
哆啦A梦158814 小时前
20, Springboot3+vue3实现前台轮播图和详情页的设计
javascript·数据库·spring boot·mybatis·vue3
阿里云大数据AI技术16 小时前
一条 SQL 生成广告:Hologres 如何实现素材生成到投放分析一体化
人工智能·sql
x***r15117 小时前
dbeaver-ce-24.1.3-x86_64-setup安装步骤详解(附DBeaver数据库管理与SQL编写教程)
数据库·sql