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());
}
}