本页自动汇总「Java」分类下的全部笔记(含子分类),随笔记增删实时更新。

前提

先在IDEA中安装两个插件,如下图所示

1、安装图形化驱动程序(Scene Builder)

==其实只需要下载一个外部程序即可(就这么简单,不要下什么eclipse,纯纯sb!!!)==

提取码:m0ej
–来自百度网盘超级会员V4的分享
改一下安装路径,然后不断next即可

2、具体使用

①:最简单的,直接新建一个普通的Java项目

②:在src文件夹下新建view软件包

③:右键view软件包,点击新建FXML文件

④:右键新建好的fxml文件,选择在SceneBuilder中打开


打开之后的窗口如下图所示

这里面就可以进行组件的拖拽布局以及设置组件id名,(这个id名和Qt中组件的类名是同一个意思,都是对象名,所以说大佬的设计思想往往不谋而同)
如何设置id名?请看以下分析
点击你想要命名的组件,在右边找到Code菜单项,里面即可设置id,请看下图

前提:如果你核查代码确保都没问题的时候,但还是出现莫名其妙的异常❎❎❎

解决思路

这时候就要看看是不是导的包导错了(这个跟微信开发小游戏时工具自动导的包一样,不过怎么说呢,idea还是比微信开发者工具智能一点,那个是真的sb),或者类名写错了(这个坑过你一个下午,真的艹了!!!)

开始打代码之前,先要进行一些前期准备
①:新建一个Maven项目,点击下一步,修改项目路径及项目名称,最后点完成即可。
②:文件->项目结构->Facet->添加Web项目,文件夹名称为webapp,下一级目录为WEB-INF,再下一级有一个文件web.xml,如果选项变灰添加不了,可以先把原来的先删除掉先再进行创建
③:设置->构建->构建工具,把任何变更勾上,再点入Maven,把Maven主路径修改为D:/JAVA/Maven/apache-maven-3.6.3,把用户设置文件修改为D:\JAVA\Maven\apache-maven-3.6.3\conf\settings.xml,点击应用->确定
④:在pom.xml文件中添加以下内容

<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>8080</port>
<uriEncoding>UTF-8</uriEncoding>
<url>http://localhost:8080/shiro</url>
<server>Tomcat7</server>
            </configuration>
        </plugin>
        <!-- 编译插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

⑤:一个jsp对应一个Servlet,Servlet有一个转发函数,也就是对你所做的请求做一个响应,Servlet就像一个中间人,负责接收请求以及响应的业务。
⑥:
⑦:axios里用的是_this,外面用的都是this
⑧:我给服务器数据用post,服务器给我数据用get。
②:javaWeb中当出现数据库的属性名和实体类的属性名不一致时,在Mapper.xml文件中取别名
例:




在sql语句中的占位符使用的都是实体类的属性名

①:Maven其实就是一个可以自动载入jar包的一个框架,其中最重要的其实就是一个pom.xml文件,其次就是它分了两个目录,一个是开发目录,一个是测试目录。
②:MyBatis其实就是对JDBC进行了再度封装,不过得自己搭建,所有可以留一个地方放着,下次要的时候直接导入即可,就这么so easy!

写程序进行优化时,避免硬编码的形式,把需要载入的数据放入xml文件中

Mapper代理的方式:

我觉得就是,把Mapper接口里面的函数名当作一个映射的键,Mapper的xml文件里面对应的sql语句当作一个映射的值。把函数名当作映射的键真的是很巧妙,这样调用的时候以为调用的是函数,没想到是拿去映射一个sql语句了。注意:接口文件和xml文件要在同一级目录下

给包取别名

(给包取一个别名,这里取的别名,让导com.itheima.pojo包的地方,只要写类就行,包名可以省略,注意:类名可以不区分大小写,mybatis真的很强大!!!搭配上mapper简直绝配)

sql语句的一些积累:

as:给数据类型取别名, like:与等号’='相反,模糊查询。

Mybatis事务

Mybatis是默认手动提交事务的,如果需自动提交事务,则需在创建对象时,给true

Mybatis提供的标签为我们在实现动态sql时规避了很多的问题。
Mybatis的xml文件传递多个参数时:封装为Map集合,可以使用@Param注解,替换Map集合中默认的arg键名

HTML(超文本标记语言)

W3C标准:网页主要由三部分组成

结构:HTML>表现:CSS>行为:JavaScript

html的基本格式:

html的基本知识:

一些学习经验

request.js封装在doc的7.Vue实现增删改查里面
解决跨域问题在doc的5.SpringBoot实现分页查询里面

  • 前端界面写的东西没效果,最大的可能是你写的位置不对。
  • yml配置文件中,键和值之间一定要空一格,不然会报格式错误的错
  • varchar相当于Java中的String,bigint相当于Java中的long
  • Vue的data里面,如果直接写对象名称,则在页面调用时,直接
    .属性名使用即可,Vue会自动生成的
  • 在sql语句中的占位符使用的都是实体类的属性名
  • javaWeb中当出现数据库的字段名和实体类的属性名不一致时,在Mapper.xml文件中取别名
  • 模糊查询表达式为:%
    实体类属性名%(实体类属性名为字符串时才需要添加,数字则不需要添加),数字不许模糊查询,1就是1,2就是2!!!!,还有mapper接口方法有返回值的,一定不能去掉,不然会报 It’s likely that neither a Result Type nor a Result Map was specified. 错!!
  • 前端vue框架用的是JSON字符串,后端接口要的是一个对象或里面的一个数据,所以要进行转换
  • 如果请求是用get的方式提交,则参数会携带在链接上,Servlet获取参数使用
    request.getParameter(“键名”)得到链接上对应的值,如果请求是用post的方式提交,则参数会携带在data上,Servlet获取参数使用
BufferedReader br = request.getReader();
String params = br.readLine();//json字符串

获取

  • model是一个大的容器,v-model是model里面的一个属性
  • mapper参数有两个以上时才需要添加 @Param注解,只有单独一个则不需要添加 @Param注解
  • 点击超链接、按钮、图片…,亦或者是刷新,都视为一次请求。Servlet做的就是响应你这次请求
  • 分页查询使用limit关键字,select * from tb_brand limit 3,4,意思为:在数据表tb_brand中查询下标为3往后的4条数据

遇到前端跨域访问问题,类似于这样的:

在Springboot项目里加上这个配置文件CorsConfig.java,重启之后即可实现跨域访问,前端无需再配置跨域。

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
@Configuration
public class CorsConfig {
    // 当前跨域请求最大有效时长。这里默认1天
    private static final long MAX_AGE = 24 * 60 * 60;
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
        corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
        corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
        corsConfiguration.setMaxAge(MAX_AGE);
        source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
        return new CorsFilter(source);
    }
}

注意,加完这个配置类后一定要 重启后台 !!!

Ioc:好比在一个容器中放了很多对象,我们只需要管对象的调用,至于对象的创建与配置我们无需关心,底层代码已经有人帮你实现,无需担心,用就好
**具体详解,请看链接:**​我们到底为什么要用 IoC 和 AOP - 知乎 (zhihu.com)

总结

IoC 解决了以下问题:

  • 创建了许多重复对象,造成大量资源浪费;
  • 更换实现类需要改动多个地方;
  • 创建和配置组件工作繁杂,给组件调用方带来极大不便。
    AOP 解决了以下问题:
  • 切面逻辑编写繁琐,有多少个业务方法就需要编写多少次。

1、JDK17

wget http://49.232.8.65/jdk/jdk17/jdk-17_linux-x64_bin.tar.gz
tar -zxvf jdk-17_linux-x64_bin.tar.gz
vim /etc/profile
# 文件添加如下内容
export JAVA_HOME=jdk文件夹全路径
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 刷新配置使其生效
source /etc/profile
# 查看安装的版本
java -version

2、MySQL

具体教程可以参考

((20251130181901-0b7e0k7 ‘二 安装mysql’))

3、Redis

wget http://download.redis.io/releases/redis-6.2.7.tar.gz
tar -zxvf redis-6.2.7.tar.gz
cd redis-6.2.7
make
make PREFIX=/usr/local/src/redis-6.2.7 install
cp redis.conf /usr/local/src/redis-6.2.7/bin
vim redis.conf
# 文件修改如下内容
# 1、允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问
bind 0.0.0.0
# 2、守护进程,修改为yes后即可后台运行
daemonize yes 
# 3、密码,设置后访问Redis必须输入密码
requirepass X7#kLp!2fQ@5z
# 启动Redis
cd /usr/local/src/redis-6.2.7/bin
./redis-server redis.conf

4、Nginx

具体教程可以参考

配置可以参考

HTTPS:

worker_processes  1;
 
events {
    worker_connections  1024;
}
 
 
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
 
    keepalive_timeout  65;
 
    # HTTPS server
    #
    server {
        listen       				443 ssl;
        server_name  				自己的域名或者云服务器IP;
 
        client_max_body_size 			5m;
 
        ssl_certificate      			云服务器.crt的ssl文件;
        ssl_certificate_key  			云服务器.key的ssl文件;
 
        ssl_session_cache    			shared:SSL:1m;
        ssl_session_timeout  			5m;
        ssl_protocols				TLSv1 TLSv1.1 TLSv1.2; 
 
        ssl_ciphers  				HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  		on;
 
        location / {
            root   /usr/local/nginx/html/dist;
            index  index.html index.htm;
            try_files 	$uri $uri/ /index.html;
        }
 
        location /admin {
            alias   /usr/local/nginx/html/admin/dist;
            index  index.html index.htm;
            try_files 	$uri $uri/ /admin/index.html;
        }
        
 
        location /api/{
        	proxy_pass http://[服务器地址]:8080/;
        }
    }
 
}

HTTP:

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   /usr/local/nginx/html/dist;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location /admin {
            alias   /usr/local/nginx/html/admin/dist;
            index index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
        location /api/{
            proxy_pass http://www.qiuqingsheng.fun:48080/;
        }
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
}

一、下载JDBC驱动包

1.打开 MySQL 官网:https://www.mysql.com/

2.点击 DOWNLOADS,把页面滚动到最下面,点击 MySQL Community (GPL) Downloads


3.点击 Connector/J

4.点击 General Availability(GA) Releases,在 Select Operating System 下拉列表选择 Platform Independent,然后选择任意一种压缩包格式后面的 Download


5.点击 No thanks,just start my download.

6.下载完成后,解压,打开文件夹,就可以看到里面的 JDBC 驱动 JAR 包了

二、将JDBC驱动包导入到IDEA中

文件 --> 项目结构 --> ******库(项目设置那一栏)******​ –> + --> 选择JDBC驱动包 --> 应用 --> 确定