QQ 靓号注册

申请地址:https://ssl.zc.qq.com/v3/index-chs.html?type=3 目前大多九位数,运气好的话可以刷到些顺口的。

Ubuntu18.04 彻底删除 MySQL 数据库

首先在终端中查看 MySQL 的依赖项:dpkg --list|grep mysql 卸载:sudo apt-get remove mysql-commonsudo apt-get autoremove --purge mysql-server-5.7 清除残留数据:dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P 再次查看 MySQL 的剩余依赖项:dpkg --list|grep mysql 继续删除剩余依赖项,如:sudo apt-get autoremove --purge mysql-apt-config 至此已经没有了 MySQL 的依赖项,彻底删除,Good Luck

iSlide 一款基于 PowerPoint 的插件工具

官网 https://www.islide.cc/ 提供一键排版、一键配色等功能

IDEA 删除破解补丁.jetbrains 目录后软件打不开解决方法

在 C:\Users\Administrator\AppData\Local\JetBrains 与C:\Users\Administrator\AppData\Roaming\JetBrains目录删除对应版本配置文件夹即可,例如IntelliJIdea2020.1。

LayUI 关闭弹出层 layer 弹出框

layer.close(index) - 关闭特定层 // 当你想关闭当前页的某个层时var index = layer.open();var index = layer.alert();var index = layer.load();var index = layer.tips();// 正如你看到的,每一种弹层调用方式,都会返回一个 indexlayer.close(index); // 此时你只需要把获得的 index,轻轻地赋予 layer.close 即可// 如果你想关闭最新弹出的层,直接获取 layer.index 即可layer.close(layer.index); // 它获取的始终是最新弹出的某个层,值是由 layer 内部动态递增计算的// 当你在 iframe 页面关闭自身时var index = parent.layer.getFrameIndex(window.name); // 先得到当前 iframe 层的索引parent.layer.close(index); // 再执行关闭 layer.closeAll(type) - 关闭所有层 layer.closeAll();   // 关闭所有层parent.layer.closeAll(); // 关闭父级所有层layer.closeAll('dialog');   // 关闭信息框layer.closeAll('page');   // 关闭所有页面层layer.closeAll('iframe');   // 关闭所有的 iframe 层layer.closeAll('loading');   // 关闭加载层layer.closeAll('tips');   // 关闭所有的 tips 层

layui 自带控件图标出现方格不显示解决方法

  首先我猜是拦截器原因,经排查一切正常,直到看到前端报错:Failed to decode downloaded font: http://localhost/layui/font/iconfont.woff?v=250 才让我恍然大悟。  先对该 url 进行访问,可以访问但下载的内容为空,于是在前端文件夹中看 woff 等图标文件,发现原来这些文件内容均为空,遂从 layui 官网重新下载 layui 源码,将图标文件替换即可。

layui 自带控件图标出现方格不显示解决方法

windows 命令行对文件进行 md5/sha1sum 等哈希校验

有时候下载软件或文件时候需要进行 hash 校验来验证文件的完整性,虽然网络上有很多方便的小工具,但其实 Windows 也有自带类似的工具,只要在命令行输入命令即可。 格式:certutil -hashfile < 文件路径 > <hash 类型 > 例如:certutil -hashfile a.zip sha1certutil -hashfile a.zip md5

tk.mybatis 的使用说明

tk.mybatis 的使用用法说明依赖<dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.0</version></dependency>或 <dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.4.2</version> </dependency>前者包含了 mybatis 一些依赖,若 ssm 项目搭建好了,用后者就行。实体类与 Mapper 改造 若属性与数据库字段对应不上需要用 @Column 注解对于,表名不一样同理用 @Table,一样的无需添加,主键上需加@Id 注解。@Data@Table(name = "t_order")public class Order { /** * CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), price FLOAT ); */ //Order 实体类中属性名和 orders 表中的字段名是不一样的 @GeneratedValue(generator = "JDBC") // 自增的主键映射 @Id @Column(name = "order_id") private int id; //id===>order_id @Column(name = "order_no") private String orderNo; // 若跟数据库字段一致可不写注解 private Double price; }Mapper 接口需继承 tk 的 Mapper<T>import ssm.entity.Person;import tk.mybatis.mapper.common.Mapper;public interface PersonMapper extends Mapper<Person> {}xml 可以内容为空,但最好加上结果集设置好与数据库字段对应关系(如果实体类属性与数据库字段不一致的话)<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="ssm.dao.PersonMapper"> <resultMap id="BaseResultMap" type="ssm.entity.Person"> <id column="id" jdbcType="INTEGER" property="id" /> <result column="name" jdbcType="VARCHAR" property="name" /> <result column="description" jdbcType="VARCHAR" property="description" /> <result column="creater" jdbcType="VARCHAR" property="creater" /> <result column="create_time" jdbcType="DATE" property="createTime" /> <result column="updater" jdbcType="VARCHAR" property="updater" /> <result column="update_time" jdbcType="DATE" property="updateTime" /> </resultMap></mapper>报错解决 报错:java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider 怎么办?这种情况是 MapperScan 包的问题,mybatis 与 tk.mybatis 都有这个,在此我们导包请导 tk 的这个包。对于 SpringBoot 项目在 Appliction 启动类上使用 MapperScan 注解的,更改导包路径为。import tk.mybatis.spring.annotation.MapperScan;对于传统 SSM 项目,将 mybatis 的扫描配置器改成 tk 的即可 <!-- DAO 接口所在包名,Spring 会自动查找其下的类 , 自动扫描了所有的 XxxxMapper.xml 对应的 mapper 接口文件, 只要 Mapper 接口类和 Mapper 映射文件对应起来就可以了 --><!-- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">--> <bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="ssm.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean>

PageHelper 简单使用说明

Mybatis 分页插件 - PageHelperPageHelper 是一款最方便使用的分页插件之一。支持各种数据库实现物理分页。开源地址:https://github.com/pagehelper/Mybatis-PageHelper开源中国主页:https://www.oschina.net/p/mybatis_pagehelper依赖<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version></dependency>xml 中配置 在 sqlSessionFactory 中加入 pageHelper 插件的配置<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 传入 PageHelper 的插件 --> <property name="plugins"> <array> <!-- 传入插件的对象 --> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <props> <prop key="helperDialect">mysql</prop> <prop key="reasonable">true</prop> </props> </property> </bean> </array> </property> <!-- 自动扫描 mapping.xml 文件 --> <property name="mapperLocations" value="classpath*:ssm/mapper/*.xml"></property></bean>SpringBoot 中配置 依赖<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version></dependency>配置pagehelper: # dialect: ① # 分页插件会自动检测当前的数据库链接,自动选择合适的分页方式(可以不设置) helper-dialect: mysql # 上面数据库设置后,下面的设置为 true 不会改变上面的结果(默认为 true) auto-dialect: true page-size-zero: false # ② reasonable: true # ③ # 默认值为 false,该参数对使用 RowBounds 作为分页参数时有效。(一般用不着) offset-as-page-num: false # 默认值为 false,RowBounds 是否进行 count 查询(一般用不着) row-bounds-with-count: false #params: ④ #support-methods-arguments: 和 params 配合使用,具体可以看下面的讲解 # 默认值为 false。设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页 auto-runtime-dialect: false # ⑤ # 与 auto-runtime-dialect 配合使用 close-conn: true # 用于控制默认不带 count 查询的方法中,是否执行 count 查询,这里设置为 true 后,total 会为 -1 default-count: false #dialect-alias: ⑥代码中使用PageHelper.startPage(page, pageSize);// 这里使用 PageHelper.offsetPage(page, pageSize); 亦可PageInfo pageInfo = new PageInfo<>(testMapper.findAll(Test));返回的 PageInfo 中可获取总条数及当且页数据pageInfo.getTotal() // 总条数pageInfo.getList() // 页面数据或使用 Page 强转亦可Page page=(Page)testMapper.findAll(Test);page.getTotal();// 总条数page.getResult();// 页面数据从以下源码可以看出来 startPage 可选参数更加丰富 /** * 开始分页 * * @param pageNum 页码 * @param pageSize 每页显示数量 * @param count 是否进行 count 查询 * @param reasonable 分页合理化,null 时用默认配置 * @param pageSizeZero true 且 pageSize= 0 时返回全部结果,false 时分页,null 时用默认配置 */ public static <E> Page<E> startPage(int pageNum, int pageSize, boolean count, Boolean reasonable, Boolean pageSizeZero) {Page<E> page = new Page<E>(pageNum, pageSize, count); page.setReasonable(reasonable); page.setPageSizeZero(pageSizeZero); // 当已经执行过 orderBy 的时候 Page<E> oldPage = getLocalPage(); if (oldPage != null && oldPage.isOrderByOnly()) {page.setOrderBy(oldPage.getOrderBy()); } setLocalPage(page); return page; } /** * 开始分页 * * @param offset 页码 * @param limit 每页显示数量 * @param count 是否进行 count 查询 */ public static <E> Page<E> offsetPage(int offset, int limit, boolean count) {Page<E> page = new Page<E>(new int[]{offset, limit}, count); // 当已经执行过 orderBy 的时候 Page<E> oldPage = getLocalPage(); if (oldPage != null && oldPage.isOrderByOnly()) {page.setOrderBy(oldPage.getOrderBy()); } setLocalPage(page); return page; }分页插件可选参数如下:dialect:默认情况下会使用 PageHelper 方式进行分页,如果想要实现自己的分页逻辑,可以实现 Dialect(com.github.pagehelper.Dialect) 接口,然后配置该属性为实现类的全限定名称。下面几个参数都是针对默认 dialect 情况下的参数。使用自定义 dialect 实现时,下面的参数没有任何作用。helperDialect:分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 你可以配置 helperDialect 属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值:oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby特别注意:使用 SqlServer2012 数据库时,需要手动指定为 sqlserver2012,否则会使用 SqlServer2005 的方式进行分页。你也可以实现 AbstractHelperDialect,然后配置该属性为实现类的全限定名称即可使用自定义的实现方法。offsetAsPageNum:默认值为 false,该参数对使用 RowBounds 作为分页参数时有效。 当该参数设置为 true 时,会将 RowBounds 中的 offset 参数当成 pageNum 使用,可以用页码和页面大小两个参数进行分页。rowBoundsWithCount:默认值为 false,该参数对使用 RowBounds 作为分页参数时有效。 当该参数设置为true 时,使用 RowBounds 分页会进行 count 查询。pageSizeZero:默认值为 false,当该参数设置为 true 时,如果 pageSize=0 或者 RowBounds.limit = 0 就会查询出全部的结果(相当于没有执行分页查询,但是返回结果仍然是 Page 类型)。reasonable:分页合理化参数,默认值为 false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。params:为了支持startPage(Object params) 方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值, 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值, 默认值为 pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero。supportMethodsArguments:支持通过 Mapper 接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。 使用方法可以参考测试代码中的 com.github.pagehelper.test.basic 包下的 ArgumentsMapTest 和 ArgumentsObjTest。autoRuntimeDialect:默认值为 false。设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页 (不支持自动选择sqlserver2012,只能使用sqlserver),用法和注意事项参考下面的场景五。closeConn:默认值为 true。当使用运行时动态数据源或没有设置 helperDialect 属性自动获取数据库类型时,会自动获取一个数据库连接, 通过该属性来设置是否关闭获取的这个连接,默认true 关闭,设置为 false 后,不会关闭获取的连接,这个参数的设置要根据自己选择的数据源来决定。重要提示:当 offsetAsPageNum=false 的时候,由于 PageNum 问题,RowBounds查询的时候 reasonable 会强制为 false。使用 PageHelper.startPage 方法不受影响。其他说明可参考:https://blog.csdn.net/qq_38375620/article/details/79467545

Tomcat 9.0.x 在 idea 控制台显示乱码

按网上教程在所有能加 VM options 地方加上了 -Dfile.encoding=UTF-8 但是还是不行,后来想到还是应该改 tomcat,修改 conf/logging.properties 文件中 UTF- 8 为 GBK 就不乱码了,具体改成什么编码自己试试,或者将这行注释试试,修改完配置文件重新启动项目即可。java.util.logging.ConsoleHandler.encoding = UTF-8