Java
勿以善小而不为
HelloWorld. py
后端敲门人
展开
-
fastJson遇到的坑之造轮子实现按优先级将实体类的属性与属性值拼串
之前写过一个公共方法,实现对一个表的存储,但是今天报了个测试问题。排查问题的时候发现,如果不把所有字段的值打印出来,不便于问题的定位。但是由于我们的实体类是通过代码生成工具自动生成的,并且没有重写toString。原创 2023-04-21 23:50:51 · 443 阅读 · 1 评论 -
将sql语句中的表名加表前缀
java实现给sql语句中的表名加表前缀原创 2022-06-25 10:48:43 · 887 阅读 · 1 评论 -
注入Bean的注解 @Autowired 与 @Resource
@AutoWiredspring注解优先根据类型注入/* 比如 DemoService 有两个实现类 DemoSerciceImpl1, DemoServiceImpl2 */@Autowiredprivate DemoSercice demoService; //报错,优先byTyoe匹配到两个,再byName无法匹配,这时spring就不知道注哪一个了/* 但是 @Autowired 其实也可以byName,但是条件比较苛刻 如下:*/@Autowiredprivate DemoS原创 2022-05-20 21:34:14 · 342 阅读 · 0 评论 -
华为机试 HJ24 合唱队【java实现】
找到每个位置的向左递减子序列和向右递减子序列186 186 150 200 160 130 197 200向左递减子序列186 左边没有,算上它自己 1186 左边只有186,因此也只算它自己 1150 左边没有比他小的 1200 递减子序列 由于 右边有三个数 150,186,186 这三个最长的递减子序列 为 1,因此 200 的递减子序列为 1 + 1 = 2160,只比150大,因此它的最长递减子序列 为 150的 + 1 也为 2130 右边没有比它小的原创 2022-04-22 23:05:56 · 1075 阅读 · 0 评论 -
打印棱形【java实现】
package com.wy.leetcode;/** * @author HelloWorld * @create 2022/4/15 21:06 * @email helloworld.dng@gmail.com */public class PrintStar { public static void main(String[] args) { int n = 31; // 上半部分 for (int i = 1; i <=原创 2022-04-17 09:15:22 · 334 阅读 · 0 评论 -
spring cloud Alibaba之 nacos作为注册中心
Nacos 作为注册用心,用于服务的注册与发现导入依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>在配置文件中添加nacos地址spring.cloud.nacos.disco原创 2022-02-12 10:27:49 · 556 阅读 · 0 评论 -
spring之@Transactional 简介
// 源码@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Inherited@Documentedpublic @interface Transactional { @AliasFor("transactionManager") String value() default ""; @AliasFor("value") String transactionManager原创 2022-02-10 15:25:10 · 1358 阅读 · 0 评论 -
java线程池简介
// 源码public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable>原创 2022-02-08 12:17:32 · 300 阅读 · 0 评论 -
git简单使用
git1. 设置用签名git config --global user.name 用户名 #与 githup/gitee 上的用户邮箱无关git config --global user.email 邮箱 #与 githup/gitee 上的用户邮箱无关2. 常用命令2.1 简单操作#初始化本地库git init #将文件添加到本地缓存区git add 文件名 #提交本地库git commit -m "日志信息" 文件名 #查看状态git status原创 2022-01-24 16:28:23 · 178 阅读 · 0 评论 -
spring整合mybatisPlus
导入依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.0</version></dependency>配置数据源配置spring: datasource: username: root..原创 2022-01-24 16:16:10 · 1288 阅读 · 0 评论 -
Docker简单使用
1. 安装docker先删除原有的docker配置sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \原创 2022-01-22 19:58:06 · 853 阅读 · 0 评论 -
idea 配置
1. 设置作者信息File ——> Settings…——> Editor ——> File and Code Templates ——> Includes ——> File Header/** * @author HelloWorld * @create ${DATE} ${TIME} * @email 111111@mail.com */2. 方法创建信息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0U0tRbQg-16原创 2022-01-22 12:52:35 · 487 阅读 · 0 评论 -
随机生成m个和为n的数
方法一: 转换为将 n 随机分给m个数这个问题的难点在于:如何保证m个随机数 和为 n。所以不妨转换思路为:将 n 随机分给 m 个数。eg:如果要生成 9 个和为 100 的随机数,且随机数为 int。那不妨将 100拆分成 100 个 1 然后随机分给 9 个数。以下是具体讨论1. 随机生成 m 个和为 n 的数, 生成的数为 int/* 1. 定义一个数组,数组长度为m. 2. 由于int数组的初值为0, 所以只需要随机从数组里取出数,然后加1 3原创 2022-01-09 12:15:43 · 640 阅读 · 0 评论 -
springMvc常用注解
springMvc注解1. @RequestMapping指定请求路径value: 指定接收的路径method: 接收什么请求(get repost…)params: 对参数的限制headers: 浏览器的请求头@RequestMapping(value={"/add","/add2","/add3"}, method = RequestMethod.GET, // 接收的请求方法 params = {"!name","address=beijing",原创 2021-07-27 20:08:59 · 6871 阅读 · 2 评论 -
Spring面试必备
spring1. IOCInverse of Control(控制反转),它是一种思想,就是将原本在程序中需要手动创建对象以及对象之间的调用过程的控制权,交由Spring框架来管理。IOC的思想是基于IOC容器完成,IOC容器实际上是一个Map, 以配置文件中定义的id属性的值为key,以利用xml解析技术和反射技术实例化出来的对象为value有了IOC容器之后,创建对象的控制权就交给了IOC容器,这样极大的降低了 类与类之间的耦合度。2. AOP面向切面编程。就是将那些与业务无关,原创 2021-07-27 20:05:44 · 270 阅读 · 0 评论 -
ES高级查询
ES高级查询1. 导入依赖 <!--引入es的坐标--> <!-- https://mvnrepository.com/artifact/org.elasticsearch.client/elasticsearch-rest-high-level-client --> <dependency> <groupId>org.elasticsearch.client</groupId>原创 2021-07-27 15:32:02 · 500 阅读 · 0 评论 -
mybatis面试题
1. #{} 和 ${} 的区别#{} 是编译预处理,${} 是字符串替换mybatis在处理 #{} ,会将sql语句中的 #{} 替换为 ?,再调用PreparedStatement中的set方法进行赋值,可以有效防止sql注入,提高系统安全mybatis处理 ${} 时,会直接替换为变量的值,存在sql注入风险。2. xml 映射文件中有哪些常用标签resultMap : 描述如何从数据库结果集中加载对象sql : sql片段,可被其它语句引用的可重用语句块incl原创 2021-07-17 22:15:19 · 229 阅读 · 0 评论 -
myBatis----逆向工程
逆向工程1. 导入依赖<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <dependency>原创 2021-07-02 18:25:22 · 235 阅读 · 0 评论 -
mybatis---多表查询
多表查询1. 多对一1.1 联合查询员工与部门的关系根据员工的id 获取员工信息及其所在部门的信息1.1.1 实体类的创建@Data@AllArgsConstructor@NoArgsConstructorpublic class Department { private Integer id; private String name;}@Data@AllArgsConstructor@NoArgsConstructorpublic class Employ原创 2021-06-23 20:52:08 · 207 阅读 · 1 评论 -
mybatis---模糊查询
模糊查询/** * 模糊查询 * @param name * @return */List<User> getUsersLikeName(String name);<select id="getUsersLikeName" resultType="User"> <!-- %前后有空格--> select * from users where username like "%" #{name} "%" <!--原创 2021-06-22 23:19:31 · 326 阅读 · 0 评论 -
mybatis---动态sql语句
动态sql语句1. where 标签<sql id="baseColumn"> id, username, password, money</sql><select id="getUsersByNameAndPassword" resultType="User" > SELECT <include refid="baseColumn"/> FROM users <where> and username原创 2021-06-22 23:18:21 · 238 阅读 · 0 评论 -
mybatis---自动返回主键值
MyBatis自动返回主键值/** * 添加后自动获取主键值(id) * @param user * @return */void addUser(User user);<insert id="addUser" useGeneratedKeys="true" keyProperty="id"> INSERT INTO `users` (username, PASSWORD, money) VALUES (#{username}, #{password}, #{money原创 2021-06-22 23:17:17 · 282 阅读 · 0 评论 -
mybatis---mappers标签
mappers指定映射文件的位置1. 在SqlMapperConfig.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>原创 2021-06-22 23:16:44 · 295 阅读 · 0 评论 -
mybatis---typeAliases标签
typeAliases标签1. 在SqlMapperConfig.xml中定义别名typeAliases标签位于properties标签后<?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">&原创 2021-06-22 23:16:03 · 669 阅读 · 0 评论 -
mybatis---properties 标签
properties 标签优化数据库连接1. dbconfig.properties文件配置jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql:///test?useUnicode=true&characterEncoding=UTF-8jdbc.username=rootjdbc.password=19492. 在SqlMapperConfig.xml中可以引用属性文件中key的值<?xml version=原创 2021-06-22 23:15:32 · 349 阅读 · 0 评论 -
mybatis---resultMap标签
resultMap用来解决实体类中的属性与数据库表中列名不匹配的问题1. 实体类package com.wy.bean;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.util.Date;/** * @author HelloWorld * @create 2021-06-22-19:07 * @email 154803771@qq.原创 2021-06-22 23:14:52 · 657 阅读 · 0 评论 -
mybatis---resultType参数配置
resultType参数配置1. 返回值类型为基本数据类型int getTotalNumber();<select id="getTotalNumber" resultType="int"> select count(*) from users</select>public void testGetTotalNumber() { SqlSession session = MyBatisUtils.getSession(); UserDao use原创 2021-06-22 23:12:38 · 575 阅读 · 0 评论 -
mybatis---parameterType参数传递
1. 只有一个参数时可以不写User getUserById(int id);<select id="getUserById" resultType="com.wy.bean.User"> SELECT * FROM users WHERE id = #{id}</select>public void testGetUserById() { SqlSession session = MyBatisUtils.getSession(); UserDa原创 2021-06-22 17:21:37 · 323 阅读 · 0 评论 -
Session
1. 简介 Session即HttpSession,主要用来保存用户信息 由服务器创建,保存在服务器 Session 也是jsp 的一个内置的域对象, 2. 运行原理 浏览器向服务器发送请求时,服务器会创建一个Session对象,并且这个Session对象具有唯一id 同时服务器也会创建一个cookie对象,会将Session对象的id赋值到Cookie中, name = "JSESSIONID", value = id 服务器会将这个C...原创 2021-05-28 22:13:52 · 249 阅读 · 0 评论 -
Cookie
1. Cookie简介 Cookie 由服务器创建,保存到浏览器 保存用户信息 服务器端的Cookie对象,具有name属性,和value属性 浏览器端的Cookie,默认类似于Cookie Map,可以通过 cookie[name].value取值 2. Cookie的运行原理 客户端往服务器发送第一次请求的时候, 在服务器创建一个cookie对象 服务器会把这个cookie对象发送给浏览器 浏览器每次发送请求的时候都会携带这个原创 2021-05-27 22:55:24 · 373 阅读 · 0 评论 -
EL与JSTL简介
EL1. WhatEL( Expression Language意思为表达式语言,可以获取域对象中的数据,它提供了在JsP中简化表达式的方法,让Jsp的代码更加简化语法:${表达式}2. 数据获取EL根据作用域范围依次获取,越小越先获取域的范围由小到大:page < request < session < application${pageScope.name}${requestScope.name}${sessionScope.name}${appli原创 2021-05-27 22:52:21 · 1612 阅读 · 0 评论 -
Jsp简介
Jsp1. WhatJava Server Page Java 服务页面Jsp只能在服务器上运行,不能脱离服务器可以写Java代码的HTML文件本质上是一个Servlet;具有构造器2. Jsp的运行原理第一次访问index.jsp的时候,JSP引擎会将JSP文件翻译成java文件 保存在 控制台输出第一行 Using CATALINA_BASE对应的目录下的 work 文件夹中,该目录中的cof 存放tomcat的配置信息,是在创建项目时复制的添加的tomcat本地文件保存地址复制过原创 2021-05-27 22:51:23 · 993 阅读 · 0 评论 -
Servelet
Servelet1. 数据库和浏览器的交互servlet获取前端页面中的数据servlet 将数据传入dao层Dao层把数据存储到数据库数据库将反馈结构传送给dao层Dao层将结果给servletservlet把得到的结果展示再浏览器上2. What is ServletServlet是服务器端的小程序,是tomcat的核心组件,可以获取客户端的请求信息,也可以给客户端响应信息。狭义上的概念:javax.servlet.Servlet接口及其子接口都属于servlet广义上原创 2021-05-27 22:49:02 · 1586 阅读 · 0 评论 -
数据库连接
数据库连接package com.wy;import org.junit.Test;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.Driver;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;/** * @au原创 2021-05-25 08:07:35 · 223 阅读 · 0 评论 -
有效的字母异位词
有效的字母异位词题目描述给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false题目来源力扣 (LeetCode)题目解析方法一 先排序,再比较public boolean isAnagra2(String s, String t) { char原创 2021-05-24 23:15:42 · 257 阅读 · 0 评论 -
字符串中的第一个唯一字符
字符串中的第一个唯一字符题目描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:题目来源力扣 (LeetCode)题目解析唯一字符 => 索引唯一public int firstUniqChar1(String s) { for (int i = 0; i < s.length(); i++) { char data = s.charAt(i); if (s.indexOf(data原创 2021-05-24 22:53:56 · 252 阅读 · 0 评论 -
整数反转
整数反转题目描述给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0题目来源力原创 2021-05-14 19:38:29 · 232 阅读 · 0 评论 -
反转字符串
反转字符串题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n原创 2021-05-14 12:37:57 · 318 阅读 · 0 评论 -
Java创建LeetCode题目信息md文件(3.0)
package com.wy;import java.util.ArrayList;/** * @author HelloWorld * @create 2021-05-12-21:04 * @email 154803771@qq.com */public class Demo { public static void main(String[] args) { String str = "旋转图像\n" + "给定一个 n × n原创 2021-05-12 22:17:33 · 343 阅读 · 1 评论 -
有效的数独
有效的数独题目描述请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可。示例 1:输入:board =[[“5”,“3”,"原创 2021-05-12 22:14:46 · 226 阅读 · 0 评论