自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 JAVA Web学习笔记16 mybatis之动态条件查询

多条件动态查询问题:用户在进行查询的时候,可能有的选项并没有填,如果直接进行查询的话是查不出来的,所以这里需要进行改进。BrandMapper.xmlif:条件判断test:逻辑表达式问题1:如果同时没有了status和brandName,会报错:原因是这里多了一个and解决方案:多加一个恒等式,然后全体加and但其实mybatis已经有了非常完美的解决方案——使用< where >标签,替换where关键字。单条件动态查询@Test public void t

2022-04-22 16:25:00 2985

原创 JAVA Web学习笔记15 mybatis之查看详情 & 条件查询

查看详情1、编写接口方法BrandMapper接口这里需要注意的是Brand selectById(int id);这里的id并没有与BrandMapper.xml的select方法里的id相对应,select id="selectById"的含义是这段select对应的是BrandMapper接口里的selectById方法,而这里的#{id}则不同。这也是后面多条件查询需要关注的问题。2、编写sql映射 BrandMapper.xml参数占位符:1、# {}:会将其替换为?,为了放在sql注

2022-04-22 11:17:07 643

原创 JAVA Web学习笔记14 mybatis完成查询

1、编写BrandMapper接口2、编写BrandMapper.xml3、编写测试demo执行testdemo查询结果为发现:有的能查询出来比如id,但是有的查询出来是null,如brandName等原因是:数据库里的名字都是而java里的Brand对象里定义的都是由于取名的方法不同,导致无法进行识别读取。解决方案1:起别名但是写起来比较麻烦,每次查询都要写一次别名。解决方案2:定义sql片段缺点:不灵活解决方案3:使用result map(最为常用)id完成主键字段.

2022-04-22 09:32:00 209

原创 JAVA Web学习笔记13 mapper代理开发重写

1、创建user表不多说2、创建模块:也就是module中创建maven工程导入坐标:就是在pom中添加各种依赖3、编写mybatis核心配置文件:创建mybatis-config.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/.

2022-04-21 09:56:35 1017 1

原创 JAVA Web学习笔记12 Mapper代理开发

Mapper代理开发目的:①解决原生方式中的编码比如:②简化后期执行SQL比如:①②③④⑤细节: 如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载。包扫描的方式更好,因为这样可以直接从mapper文件夹中将所有的映射文件都读入,而不用自己手写一个一个去读了。...

2022-04-20 14:49:22 139

原创 JAVA Web学习笔记11 Mybatis

什么是mybatisMyBatis是一款优秀的持久层框架,用于简化JDBC开发。持久层:负责将数据到保存到数据库的那一层代码JavaEE三层架构:表现层、业务层、持久层Mybatis快速入门

2022-04-06 20:36:26 852

原创 JAVA Web学习笔记10 Maven

Maven常用命令compile:编译clean:清理test:测试package:打包install:安装一个测试项目使用maven编译新生成的target文件夹mvn clean:清除之前编译完成的targetmvn package:将Java项目打包成为jar包生成的jar包mvn test:对Java代码进行测试mvn install将Java项目安装到本地项目中去,本地仓库会多一个jar包Maven生命周期Maven坐标详解什么是坐标?➢Mave

2022-04-05 21:49:00 174

原创 JAVA Web学习笔记9 JDBC练习

Brand对象package pojo;public class Brand { // id 主键 //int有默认值为0 所以最好用integer(由于是对象所以默认值为null) private Integer id ; // 品牌名称 private String brandName ; // 企业名称 private String companyName ; //.

2022-04-04 15:52:49 536

原创 JAVA Web学习笔记8 JDBC

JDBC概念JDBC就是使用Java操作关系型数据库的一套API全称(Java DataBase Connectivity )Java数据库连接步骤:0、创建工程,导入驱动jar包1、注册驱动Class.forName("com.mysql.jdbc.Driver")2、获取连接Connection conn =DriverManager.getConnection(url,username,password);3、定义SQL语句String sql="update ....

2022-04-04 13:33:57 899

原创 JAVA Web学习笔记7 事务

事务简介数据库的事务(Transaction) 是一种机制、一个操作序列,包含了一组数据库操作命令。数据库的事务(Transaction) 是一种机制、一个操作序列,包含了一组数据库操作命令时成功,要么同时失败时成功,要么同时失败。事务是一个不可分割的工作逻辑单元。开启事务:START TRANSACTION或者BEGIN提交事务:COMMIT回滚事务:ROLLBACKdrop table if exists account;create table account( id int

2022-03-27 15:46:15 1097

原创 JAVA Web学习笔记6 多表查询

多表查询如:select * from emp , dept;但是这样直接取的话会有很多无效数据,需要消除。消除无效数据:select * from emp , dept where emp.dep_id = dept.did;内连接-- 隐式内连接:查询emp 和 dept 的数据select * from emp , dept where emp.dep_id = dept.did;-- 隐式内连接:查询emp的name,gender,dept表的dnameselect

2022-03-20 16:09:55 2819

原创 JAVA Web学习笔记5 数据库设计

表关系:一对一➢如:用户和用户详情➢一对一关系多用于表拆分, 将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询性能。一对多(多对一):➢如:部门和员工➢一个部门 ]对应多个员工,一个员工对应-一个部门多对多:➢如:商品和订单.➢一个商品对应多个订单,-一个订单包含多个商品一对一实例:总结:1.数据库设计 设计什么?有哪些表表里有哪些字段表和表之间是什么关系2.表关系有哪几种?一对一一对多(多对一)多对多多表关系实现

2022-03-19 21:46:10 477

原创 JAVA Web学习笔记4 约束

约束的概念和分类1.约束的概念约束是作用于表中列上的规则,用于限制加入表的数据约束是作用于表中列上的规则,用于限制加入表的数据2.约束的分类Tips: MySQL不支持检查约束auto_ increment:当列是数字类型并且唯一约束drop table if EXISTS emp; create table emp( id int PRIMARY key auto_increment,-- 员工id,主键且自增长 ename varchar(50) not null uniqu

2022-03-19 20:31:22 555

原创 JAVA Web学习笔记3 SQL(2)

添加数据不建议使用第二种省略列名的方式。修改数据需要注意的是:修改语句中如果不加条件,则将所有数据都修改!如: update stu set tel=“1231241”;会将表中所有点tel都设置为1231241删除数据需要注意的是:修改语句中如果不加条件,则将所有数据都删除!查询语法基础查询不建议使用*,因为这样不方便代码的阅读、改进和注释as的用法:`SELECT name as '姓名' ,english as "英语" from stu;`条件查询具体案例:-

2022-03-19 15:53:34 294

原创 JAVA学习笔记23 模块化

项目project->模块module->包packet->java文件 不同模块之间类的引入要将myOne模块中的Student类在myTwo模块中进行使用:①需要在myOne模块中新建module-info.java,在里面写入②在myTwo模块中新建module-info.java,在里面写入③在test中引入模块服务的使用Java 9的模块化系统则进-步的简化 了Java的服务机制。Java 9允许将服务接口定义在一个模块中,并使用uses语句来声明该服务.

2022-03-14 15:35:28 699

原创 《Nature-Inspired Metaheuristic Algorithms》——阅读笔记1

优化问题的分类①按照目标函数图像的模态分:多模态问题和单峰态问题多模态函数:有多个甚至无数个极值,这种函数的优化问题很容易陷入局部最优且难以跳出。如:Griewank函数单模态函数:也就是只有一个极值的函数。②按照目标函数图像的确定性分:确定性问题与随机优化问题如果公式中没有任何随机性,这个问题就称为确定性问题 deterministic optimization。如果公式中有随机性,则称为随机优化或鲁棒优化stochastic optimization or robust optimiza

2022-03-05 10:25:57 915

原创 《Nature-Inspired Metaheuristic Algorithms》——蝙蝠算法 Bat Algorithm

蝙蝠算法蝙蝠的生物习性蝙蝠的回声定位:蝙蝠通过发射非常响亮的声音脉冲并倾听周围物体发出的回声,以此来确定猎物的大小和自己与猎物之间的距离,来决定自己说加速/减速并向着猎物/远离猎物飞行。蝙蝠发出的脉冲具有回声频率和回声响度,回声频率与相对距离决定蝙蝠的速度,而速度与当前位置决定了蝙蝠下一刻的位置。回声频率会随着接近猎物而逐渐增大(因为需要更快确定猎物的位置),回声响度会随着接近猎物而逐渐减小(为了防止吓到猎物)。事实上,蝙蝠的回声定位是一种非常复杂的机制,这里并没有完全按照其捕猎机制来模拟算法,而是

2022-02-27 15:27:38 1557 3

原创 《Nature-Inspired Metaheuristic Algorithms》——如何处理约束 HOW TO DEAL WITH CONSTRAINTS

优化算法中 如何处理约束1.1 什么是约束优化问题中非常重要的问题是如何在 约束条件(不等式约束和等式约束) 下求最优解。处理约束条件的方法主要有三种:直接法、拉格朗日乘数法和惩罚法。很明显,其中的 φi(x)为等式约束,ψj (x)为不等式约束。一个带约束实际优化问题 弹簧设计问题:拉开弹簧和压缩弹簧的设计是一个著名的基准优化问题。其主要目的是根据偏转、应力、喘振频率和几何形状的限制来最小化重量。它涉及三个设计变量:线圈直径x1,线圈直径x2和线圈的数量/长度x3。这个问题可以概括为受以下约束条

2022-02-23 14:43:10 692

原创 《Nature-Inspired Metaheuristic Algorithms》——杜鹃搜索算法 CUCKOO SEARCH

杜鹃搜索算法1.1杜鹃繁殖行为的生物现象杜鹃鸟是一种迷人的鸟类,不仅因为它们能发出美丽的声音,还因为它们具有侵略性的繁殖策略。杜鹃鸟的生殖策略是将自己的鸟蛋产在别的种类鸟的窝中,让别的鸟为杜鹃鸟帮忙孵化,并且等待小杜鹃鸟破壳而出的之后,小杜鹃鸟还会将别的鸟蛋推下巢穴,以保证自己一人独占食物。雌性寄生杜鹃通常非常专门模仿一些选择的寄主卵的颜色和图案。这降低了它们的蛋被遗弃的可能性,从而提高了它们的繁殖能力。研究还表明,杜鹃鸟也可以模仿宿主雏鸟的叫声,以获得更多的进食机会。1.2 概念引入L´EVY

2022-02-21 20:14:28 1374 2

原创 《Nature-Inspired Metaheuristic Algorithms》——萤火虫算法 FIREFLY ALGORITHM

萤火虫算法1.1 萤火虫的生物现象在热带的夏夜中,萤火虫会聚集在一起产生短暂而有节奏的光,不同种类的萤火虫的闪光模式往往是不同的。这种闪光的基本功能有三个:①是吸引交配的异性伙伴 ②则是吸引潜在的猎物 ③保护性的警告机制,告诉捕猎者其毒性或苦味在光源远处r距离的光强服从平方反比定律: 光强I随着距离r的增加而减小,I∝1/r^2并且,空气也会吸收光,随着距离增大,光会变得越来越弱。这两个综合的因素使大多数萤火虫视觉到一个有限的距离,通常在晚上几百米,但这也足以让萤火虫交流。闪烁光的表述可以与要优

2022-02-19 15:55:26 1744

原创 《Nature-Inspired Metaheuristic Algorithms》——模拟退火算法 SIMULATED ANNEALING

模拟退火算法1.1什么是退火?退火从物理现象上来说就是物体逐渐降温的物理现象,物体的温度越低能量也就越低,当能量足够低的时候就会开始结晶,逐渐达到物体的最低能量状态。但是如果物体的温度下降的过快,物体不会结晶,而是处于一种次最低能量的状态,物体中仍然保持一定的能量没有进行释放。如图进行退火:①对物体进行加热(此时物体能量较低,但不是结晶态,因为能量还未达到最低)②加热后的物体能量较高分子间运动活跃,然后对其进行足够缓慢地降温③当物体温度缓慢下降到一定程度的时候,物体开始结晶而达到了最低能量状态。

2022-02-18 19:13:47 889

原创 《Nature-Inspired Metaheuristic Algorithms》—— Random Walk

1 什么是随机游走random walk?随机游走是由一系列随机步骤组成的随机过程。随机游走SN=每个连续随机步骤Xi的和。也就是说在N次游走时的位置SN是由第一次、第二次…第N-1次游走之后再加上此次游走之后的位置得到的。也可以写成:这意味着,下一个状态SN只依赖于当前状态SN-1与过渡XN,这也是马尔可夫链的主要性质。2 随机游走与布朗运动的区别是什么?随机游走的步长可以是固定的,也可以是变化的。如果步长服从高斯分布(正态分布),那么随机游动就变成了布朗运动。布朗随机游动的方差可以写

2022-02-16 19:54:12 1293

原创 JAVA学习笔记22 Stream流

Stream流的使用生成流 通过数据源(集合,数组等)生成流 list.stream()中间操作 一个流后面可以跟随零个或多个中间操作,其目的主要是打开流,做出某种程度的数据过滤/映射,然后返回一个新的流,交给下一个操作使用 filter()终结操作 一个流只能有一一个终结操作,当这个操作执行后,流就被使用"光"了,无法再被操作。所以这必定是流的最后一个操作 forEach()Stream流的常见生成方式Collection体系的集 合可以使用默认方法stream()生成流 de.

2022-01-17 21:25:54 315

原创 JAVA学习笔记21 函数式接口

函数式接口概述函数式接口:有且仅有一个抽象方法的接口Java中的函数式编程体现就是Lambda表达式,所以函数式接[就是可以适用于Lambda使用的接口只有确保接口中有且仅有一个抽象方法, Java中的ambda才能顺利地进行推导栗子1:MyInterface接口:package FunctionInterface.Demo01;@FunctionalInterfacepublic interface MyInterface { void show();}@Functiona

2022-01-10 19:22:34 369

原创 JAVA学习笔记20 接口中的新方法

接口中的default方法现有接口MyInterface,有两个方法show1与show2相当于规定实现这个接口类的对象必须有show1与show2这两个功能。package InterfaceNew.DefaultDemo;public interface MyInterface { void show1(); void show2(); }实现MyInterface的实现类:package InterfaceNew.DefaultDemo;public c.

2022-01-10 15:05:31 205

原创 JAVA学习笔记19 Lambda表达式

Lambda表达式1.1函数式编程思想概述在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿数据做操作"面向对象思想强调“必须通过对象的形式来做事情”函数式思想则尽量忽略面向对象的复杂语法:“强调做什么, 而不是以什么形式去做”而lambda就是函数式思想。Lambda表达式的标准格式格式: (形式参数)-> {代码块}形式参数:如果有多个参数,参数之间用逗号隔开;如果没有参数,留空即可。->:由英文中画线和大于符号组成,固定写法。代表指向动作。代码块:是我

2022-01-10 11:17:58 262

原创 JAVA学习笔记18 网络编程之TCP通信(2)

TCP模型下基础的Client-Server发送消息与接收消息Sever:package Net;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;public class ServerDemo { public static void main(String[] args) throws IOException {...

2022-01-09 10:47:29 278

原创 JAVASE TCP通信与UDP通信的区别

TCP通信与UDP通信的区别UDP通信:UDP通信是一种不安全的且非连接的方式,但是通信速度快。每次发送端发送一个数据包,接受端接受到一个数据包。Client端与Server端都使用DatagramSocket+DatagramPacket接受与发送数据。Client端好比是一个菜鸟驿站,DatagramSocket就好比是一个快递员,DatagramPacket就是工人的这个麻袋,Client端要发送数据就必须往这个麻袋上面贴上快递单其中包括:发送的物品,发送物品的重量,发送方地址(发送方IP地址

2022-01-07 20:53:00 1454

原创 IO流总结——字节流与字符流的区别

字节流与字符流的区别:所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列。 字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串; 2. 字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。字节流是最基本的,包括InputStream和OutputStream,主要用在处理二进制数据,它是按..

2022-01-07 14:26:12 6374

原创 JAVA学习笔记17 网络编程(1)

1.1网络编程概述计算机网络:是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下, 实现网络互连的不同计算机上运行的程序间可以进行数据交换1.2网络编程三要素IP地址要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号 ,通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号。也就是设备的标识。端口

2022-01-05 21:14:35 380

原创 JAVA学习笔记16 线程

什么叫做单线程栗子:如果这个页面设置不完成的话,就无法进入到记事本当中。这就是单线程,必须把一件事做完才能做另外一件事。什么叫多线程栗子:在扫雷中,一旦开始游戏,计时器就开始计时了,而不会等你走完下一步,游戏和时间是分别进行的,这就是多线程。线程:是进程中的单个顺序控制流,是一条执行路径。单线程: -一个进程如果只有一条执行路径,则称为单线程程序。多线程: -个进程如果有多条执行路径,则称为多线程程序package Thread;public class MyThreadDemo

2022-01-05 19:14:50 387

原创 JAVA学习笔记15 IO流 (3)

package IO;import java.io.*;import java.lang.reflect.Array;import java.util.ArrayList;public class ArrayListToTextDemo { public static void main(String[] args) throws IOException { ArrayList<String > arrlist=new ArrayList<String.

2022-01-04 10:48:30 211

原创 JAVA学习笔记14 IO流(2)

编码与解码方式必须是同一种方式,不然会解析错误,造成乱码。使用InputStreamReader可以用指定方式如:UTF-8,GBK读取字符流。使用OutputStreamReader可以用指定方式写入字符流。如果写入的是中文,但是却用的GBK方式写入,那么文件中也会出现乱码,但是如果读取的时候依然使用GBK方式读出,那么也可以成功读出这个中文。这个与FileOutputStream的write的区别在于,write写入的是字符的某个字符集的二进制编码。而OutputStreamReader是可

2022-01-01 11:46:05 341

原创 JAVA学习笔记13 IO流(1)

File的案例补充:package File;import java.io.File;import java.io.IOException;public class FileDiGuiDemo { public static void main(String[] args) throws IOException { File f = new File("D:\\develop\\IntelliJ IDEA 2021.3"); getFilePath(f

2021-12-30 17:16:00 135

原创 MIT公开课:How to speak

引言“学生不应该没有交流能力就走进生活。 因为你的人生的成功, 在很大程度上取决于 你说话的能力、写作能力和思想的质量。”因为你的人生的成功在很大程度上取决于你说话的能力、写作能力和思想的质量。我知道我能在某个领域取得成功,是因为交流的质量。而你的口语、你的写作,很大程度上是由这个公式决定的。????Quality = f(K,P, T)K,knowledge,你有多少知识储备;P,practice,是用这些知识储备进行了多少实践;T,talent,是你固有的天赋;请注意,天赋(T)非常

2021-12-30 17:15:23 836

原创 JAVA学习笔记12 File

①public boolean createNewFile(): 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件如果文件不存在,就创建文件,并返回true如果文件存在,就不创建文件,并返回falsdFile f1=new File("D:\\develop\\IntelliJ IDEA 2021.3\\itcast\\java.txt"); System.out.println(f1.createNewFile()); // 作用:目录下创建一个文件java. txt

2021-12-29 09:33:05 142

原创 JAVA学习笔记12 Collection

package Collection;import HashSet.Student;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class CollectionDemo01 { public static void main(String[] args) { Student s1 = new Student("小明", 14);..

2021-12-27 21:45:31 205

原创 JAVA学习笔记11 Map

public class MapDemo01 { public static void main(String[] args) { Map<String ,String> map=new HashMap<String,String>(); //V put (K key, V value) 将指定的值与该映射中的指定键相关联 map.put("itheima001","林青霞"); map.put("itheim.

2021-11-21 09:56:07 384

原创 JAVA学习笔记10 TreeSet

import java.util.TreeSet;public class TreeSetDemo { public static void main(String[] args) { TreeSet<Integer> ts=new TreeSet<Integer>(); ts.add(10); ts.add(40); ts.add(30); ts.add(20); ts..

2021-11-17 20:54:30 519

原创 JAVA学习笔记9

JVM的默认处理方案如果程序出现了问题,我们没有做任何处理,最终JVM会做默认的处理把异常的名称,异常原因及异常出现的位置等信息输出在了控制台。程序停止执行。public class ExceptionDemo { public static void main(String[] args) { System.out.println("begin"); method(); System.out.println("end"); ...

2021-11-17 09:32:41 254

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除