项目总结知识点

1.随机产生10个3位的整数

产生[m,n]之间随机数的公式:
int digit = (int)(Math.random*(n-m+1)+m);
或
Random random = new Random();
int digit = random.nextInt(n-m+1)+m;
代码:
public class RandomTest {
	    @Test
	    void fun1() {
	        ArrayList<Integer> res = new ArrayList<>();
	        Random random = new Random();
	        for (int i = 0; i < 100; i++) {
	            int digit = random.nextInt(900) + 100;
	            res.add(digit);
	        }
	        res.forEach(System.out::println);
	    }
	
	    @Test
	    void fun2() {
	        ArrayList<Integer> res = new ArrayList<>();
	        for (int i = 0; i < 100; i++) {//ctl+alt +t
	            int digit = (int) (Math.random() * 900 + 100);
	            res.add(digit);
	        }
	        res.forEach(System.out::println);
	    }
	}

编码规范

https://blog.youkuaiyun.com/lianghecai52171314/article/details/102711958?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163634304716780255212293%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163634304716780255212293&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-2-102711958.pc_v2_rank_blog_default&utm_term=%E8%A7%84%E8%8C%83&spm=1018.2226.3001.4450 

and

https://blog.youkuaiyun.com/lianghecai52171314/article/details/120138331?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163634338016780269867142%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163634338016780269867142&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29_name-2-120138331.pc_v2_rank_blog_default&utm_term=%E9%98%BF%E9%87%8C&spm=1018.2226.3001.4450 

Intellij自动生成代码

https://hcshow.blog.youkuaiyun.com/article/details/103832177 

自定义postfix(重点)

https://hcshow.blog.youkuaiyun.com/article/details/119931873

Intellij自定义代码模板

https://hcshow.blog.youkuaiyun.com/article/details/119881724

Junit相关

https://hcshow.blog.youkuaiyun.com/article/details/104144069

String、StringBuffer、StringBuilder的异同

https://hcshow.blog.youkuaiyun.com/article/details/117077662 

随机工具类

https://blog.youkuaiyun.com/lianghecai52171314/article/details/116046371?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163633935116780274178863%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163633935116780274178863&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-3-116046371.pc_v2_rank_blog_default&utm_term=%E9%9A%8F%E6%9C%BA+&spm=1018.2226.3001.4450 

生成LocalDate对象(只需要知道第一种方式就行)

https://hcshow.blog.youkuaiyun.com/article/details/103891182 

生成对象赋值

https://blog.youkuaiyun.com/lianghecai52171314/article/details/119851321?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163635836316780269831694%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163635836316780269831694&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-9-119851321.pc_v2_rank_blog_default&utm_term=%E7%94%9F%E6%88%90%E5%AE%9E%E4%BD%93%E7%B1%BB&spm=1018.2226.3001.4450

建造者设计模式

https://blog.youkuaiyun.com/lianghecai52171314/article/details/102548116?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163636168116780265483618%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163636168116780265483618&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-102548116.pc_v2_rank_blog_default&utm_term=%E5%BB%BA%E9%80%A0&spm=1018.2226.3001.4450 

Intellij优化设置

https://hcshow.blog.youkuaiyun.com/article/details/116761325

创建通用Controller

https://hcshow.blog.youkuaiyun.com/article/details/119742333

日志

https://blog.youkuaiyun.com/lianghecai52171314/category_9462592.html

MavenHelper

https://blog.youkuaiyun.com/lianghecai52171314/article/details/105636037?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163642514016780255258278%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163642514016780255258278&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-105636037.pc_v2_rank_blog_default&utm_term=mavenhelper&spm=1018.2226.3001.4450 

@Autowired 与@Resource的区别

https://blog.youkuaiyun.com/lianghecai52171314/article/details/103231078?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163642885016780255211188%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163642885016780255211188&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-103231078.pc_v2_rank_blog_default&utm_term=%40Resource&spm=1018.2226.3001.4450

搭建项目:SSM整合

第一步:添加Maven依赖:

<!--    为Bean生成代码-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
</dependency>
<!--    单元测试-->
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.7.2</version>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <artifactId>apiguardian-api</artifactId>
            <groupId>org.apiguardian</groupId>
        </exclusion>
    </exclusions>
</dependency>
<!--        为实体类赋值-->
<dependency>
    <groupId>com.github.houbb</groupId>
    <artifactId>data-factory-core</artifactId>
    <version>1.1.0</version>
    <exclusions>
        <exclusion>
            <artifactId>guava</artifactId>
            <groupId>com.google.guava</groupId>
        </exclusion>
    </exclusions>
</dependency>

<!--日志相关-->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.12.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.12.1</version>
</dependency>

<!--JSON处理相关-->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.10.1</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.10.1</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.10.1</version>
</dependency>

<!--AOP相关-->
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>1.9.5</version>
</dependency>
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjtools</artifactId>
    <version>1.9.5</version>
</dependency>
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.9.5</version>
</dependency>
<dependency>
    <groupId>aopalliance</groupId>
    <artifactId>aopalliance</artifactId>
    <version>1.0</version>
</dependency>

<!--JavaEE-->
<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>8.0.1</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

<!--    MySQL数据库连接-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.20</version>
</dependency>
<!--数据库连接池-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.5</version>
</dependency>
<!--MyBatis核心jar包-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.7</version>
</dependency>
<!--MyBatis分页-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.3.0</version>
</dependency>

<!--Spring核心jar包-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.12</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.3.12</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>5.3.12</version>
</dependency>

<!--Spring事务处理-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>5.3.12</version>
</dependency>
<!--Spring整合MyBatis中间件-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.6</version>
</dependency>

<!--Spring单元测试-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>5.3.12</version>
</dependency>

<!--Spring和AspectJ整合中间件-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>5.3.12</version>
    <exclusions>
        <exclusion>
            <artifactId>aspectjweaver</artifactId>
            <groupId>org.aspectj</groupId>
        </exclusion>
    </exclusions>
</dependency>

<!--Spring整合SpringMVC相关-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.3.12</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.12</version>
</dependency>

<!--SpringMVC文件上传相关jar包-->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.4</version>
    <exclusions>
        <exclusion>
            <artifactId>commons-io</artifactId>
            <groupId>commons-io</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.13</version>
</dependency>
<!--        数据有效性验证-->
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.1.0.Final</version>
</dependency>
<!--        项目文档-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

第二步:利用MyBatisCodeHelperPro生成代码

第三步:log4j2配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="error">
    <!--     先定义所有的appender -->
    <appenders>
        <!--         这个输出控制台的配置 -->
        <Console name="Console" target="SYSTEM_OUT">
            <!--             控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
            <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
            <!--             这个都知道是输出日志的格式 -->
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
        </Console>

        <!--         文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用 -->
        <!--         append为TRUE表示消息增加到指定文件中,false表示消息覆盖指定的文件内容,默认值是true -->
        <File name="log" fileName="logs/test.log" append="false">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
        </File>

        <!--          添加过滤器ThresholdFilter,可以有选择的输出某个级别以上的类别  onMatch="ACCEPT" onMismatch="DENY"意思是匹配就接受,否则直接拒绝  -->
        <File name="ERROR" fileName="logs/error.log">
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
        </File>

        <!--         这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->
        <RollingFile name="RollingFile" fileName="logs/web.log"
                     filePattern="logs/$${date:yyyy-MM}/web-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
            <SizeBasedTriggeringPolicy size="2MB"/>
        </RollingFile>
    </appenders>

    <!--     然后定义logger,只有定义了logger并引入的appender,appender才会生效 -->
    <loggers>
        <!--         建立一个默认的root的logger -->
        <root level="trace">
            <appender-ref ref="RollingFile"/>
            <appender-ref ref="Console"/>
            <appender-ref ref="ERROR"/>
            <appender-ref ref="log"/>
        </root>
    </loggers>
</configuration>

第四步:配置文件

MySQL数据库配置文件:mysql.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/db_proj_show?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF8&autoReconnect=true&failOverReadOnly=false
jdbc.username=root
jdbc.password=root

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/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>   <!-- 打印查询语句 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/><!--下划线转驼峰式 -->
    </settings>
    <typeAliases>
        <package name="com.hc.domain"/>
    </typeAliases>
    <!-- 配置分页插件 -->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <property name="helperDialect" value="mysql"/>
        </plugin>
    </plugins>
</configuration>

Spring配置文件-mybatis部分:mybatis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd
          http://www.springframework.org/schema/tx
          http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- 加载数据库属性配置文件 -->
    <context:property-placeholder location="classpath:mysql.properties"/>
    <!-- 配置数据源 -->
    <bean id="ds"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    <!-- 注册SqlSessionFactoryBean,同时指定数据源-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="ds"/>
        <!-- 自动扫描mappers.xml文件 -->
        <property name="mapperLocations" value="classpath:mapper/*Mapper.xml"/>
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
    </bean>
    <!-- 配置扫描DAO接口所在包名,Spring会自动查找其下的类 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 给出需要扫描Dao接口包 -->
        <property name="basePackage" value="com.hc.mapper"/>
        <!-- 注入sqlSessionFactory -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>
    <!-- 配置事务管理器 -->
    <bean id="txManager"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="ds"/>
    </bean>
    <!-- 配置基于注解的声明式事务 -->
    <tx:annotation-driven transaction-manager="txManager"/>
</beans>

Spring配置文件-spring部分:spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd
         http://www.springframework.org/schema/aop
         https://www.springframework.org/schema/aop/spring-aop.xsd">

<!-- 启动自动扫描-->
    <context:component-scan base-package="com.hc"/>

    <!-- 开启AOP注解扫描,启动切面注入代理 -->
    <aop:aspectj-autoproxy proxy-target-class="true"/>
</beans>

Spring配置文件:applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <import resource="spring.xml"/>
    <import resource="mybatis.xml"/>

</beans>

第五步:Spring整合SpringMVC

创建springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd
          http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 启动自动扫描:使用注解开发,不用配置controller。该句必须有,否则在web.xml的
        DispatcherServlet中不能指定springmvc.xml,而必须指定applicationContext.xml -->
    <context:component-scan base-package="com.hc.controller"/>

    <!--注册MVC注解驱动-->
    <mvc:annotation-driven></mvc:annotation-driven>

    <!-- 让SpringMVC不拦截静态资源-->
    <mvc:default-servlet-handler/>

    <!-- 视图解析器 ,可以显式设置,也可以不设置,不设置会依据SpringMVC的默认设置-->
    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 默认编码 -->
        <property name="defaultEncoding" value="utf-8"/>
        <!-- 文件大小最大值 -->
        <property name="maxUploadSize" value="10485760000"/>
        <!-- 内存中的最大值 -->
        <property name="maxInMemorySize" value="40960"/>
    </bean>
    
</beans>

第六步:为项目提供事务支持

事务一般配置在Service层。

1. 在mybatis.xml中添加:

<!-- 配置事务管理器 -->
<bean id="txManager"
      class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="ds"/>
</bean>
<!-- 配置基于注解的声明式事务 -->
<tx:annotation-driven transaction-manager="txManager"/>

2、服务层代码:

@Transactional
@Override
public int insert(User record) {
    User user1 = new User();
    user1.setNickname("aa");
    user1.setAccount("aaaaaaa");
    userMapper.insert(user1);

    User user2 = new User();
    user2.setNickname("bbbb");
    user2.setAccount("bbbbbbb");
    userMapper.insert(user2);
    return 1;
}

在Web.xml中配置SpringMVC拦截请求

<!-- 加载Spring配置文件 -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>

<!--中文乱码处理CharacterEncodingFilter-->
<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<!--配置Spring监听器:在启动Web容器时,自动装配ApplicationContext的配置信息-->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- 配置SpringMVC核心控制器:DispatcherServlet主要负责流程的控制。-->
<servlet>
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

Intellij快捷键(结合自身情况,选学)

https://hcshow.blog.youkuaiyun.com/article/details/105465966 

 代码格式化:CTRL+ALT+L
硬性要求:凡是代码不格式化的,先做10个伏wo cheng

Gitee

https://blog.youkuaiyun.com/lianghecai52171314/article/details/109632231?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163653789716780261961228%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163653789716780261961228&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29_name-5-109632231.pc_v2_rank_blog_default&utm_term=gitee&spm=1018.2226.3001.4450 

事务

 事务原理:

https://blog.youkuaiyun.com/lianghecai52171314/article/details/119268937?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163659433916780269836767%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163659433916780269836767&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-119268937.pc_v2_rank_blog_default&utm_term=%E4%BA%8B%E5%8A%A1&spm=1018.2226.3001.4450

 JDBC中的事务(笔试):

https://blog.youkuaiyun.com/lianghecai52171314/article/details/103035892?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163659433916780269836767%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163659433916780269836767&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-6-103035892.pc_v2_rank_blog_default&utm_term=%E4%BA%8B%E5%8A%A1&spm=1018.2226.3001.4450 

JDBC工具类(机试)

	精简版:
https://blog.youkuaiyun.com/lianghecai52171314/article/details/101675161

	由浅入深,体系版:
https://hcshow.blog.youkuaiyun.com/article/details/121075351

SSM集成Swagger

https://hcshow.blog.youkuaiyun.com/article/details/121255099 

Swagger介绍:

https://blog.youkuaiyun.com/lianghecai52171314/article/details/105931771?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163661192316780261952788%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163661192316780261952788&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-3-105931771.pc_v2_rank_blog_default&utm_term=swagger&spm=1018.2226.3001.4450

JSP页面引入技术

https://blog.youkuaiyun.com/lianghecai52171314/article/details/102960239?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163661817616780271564787%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163661817616780271564787&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-102960239.pc_v2_rank_blog_default&utm_term=%E9%9D%99%E6%80%81%E5%AF%BC%E5%85%A5&spm=1018.2226.3001.4450

MySQL随机数

https://blog.youkuaiyun.com/lianghecai52171314/article/details/103264771?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163662035116780357227025%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163662035116780357227025&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-103264771.pc_v2_rank_blog_default&utm_term=%E9%9A%8F%E6%9C%BA&spm=1018.2226.3001.4450

面试题:

异常处理
public static void main(String[] args) {
    try {
        double x = 3 / 0.0;  //INFINITY
        System.out.println(x);
    } catch (Exception e) {
        System.out.println("catch");
    } finally {
        System.out.println("finally");
    }
}

 finally不执行的情况:

只要进入try语句块后,finally语句块一定会执行,除了下面这一种情况。

public class App {
    private static int total() {
        try {
            System.out.println("执行try");
            System.exit(0);
        } catch (Exception e) {
            System.out.println("执行catch");
        } finally {
            System.out.println("执行finally");
        }
        return 0;
    }

    public static void main(String[] args) {
        System.out.println("执行main:" + total());
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值