MyBatis逆向工程小记
能偷懒就偷懒,不能就写咯MyBatis Generator(MBG)可以用来生成数据库表对应的实体代码和 Mapper 代码,大大节约开发时间。
1. MyBatis Generator 的使用
导入依赖包
<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.0</version></dependency>
配置文件 generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http ...
Shiro简单入门
Shiro安全框架的简单入门Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。
Shiro官方10分钟入门
1. Shiro三个核心组件
SubjectSubject:即“当前操作用发户”。意味着“当前跟软件交互的东西”。·可以把它认为是Shiro的“用户”概念。Subject代表了当前用户的安全操作,SecurityManager则管理所有用户的安全操作。
SecurityManagerSecurityManager: Shiro通过SecurityManager来管理内部组件实例,简单使用就是管理Subject了。
RealmRealm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。Realm实质上是一个安全相关的DAO
导入依赖
配置文件
启动类
2. Shiro相关类介绍(1)Authentication 认证 —- 用户登录(2)Authorization 授权 — 用户具有哪些权限(3)Cryptograph ...
小问题集1
胡乱整理的问题集到处都是问题,查漏补缺
1.String的APiString类属于引用数据类型,且不能被继承。
String s = new String("TEST");
获取类的方法
length()获取类的长度
int i = s.length()
获取指定位置的字符
char ch = s.charAt(0)
返回”ch”在字符串中第一次出现的的位置。四种重载
int j = s.indexOf("T");//0
int lastIndexOf(参数)方法也有四种重载,找ch最后一次出现的位置。
判断类的方法
boolean contains(CharSequence s):当且仅当包含指定的char值序列(字符串)时,返回true。
Boolean b = s.contains("T");//true
boolean isEmpty():字符中是否为空,当且仅当length()为0是返回true。
Boolean b1 = s.isEmpty();
boolean startsWith(String ...
JAVA JVM基础复习
JVM的基础知识,温故知新JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
1.JVM内存图
橙色为线程共享,灰色为线程独有
2.ClassLoader有几种虚拟机自带的加载器
启动类加载器 Bootstrap Class Loader
扩展类加载器 Extension Class Loader
应用程序类加载器 App Class Loader
用户自定义加载器
java.lang.ClassLoader的子类
问 :Object.getParent()和自定义MyObject.getParent()值?
Object object = new Object(); System.out.println(object.getClass().getClassLoader());//null MyObject myObject = new MyObject();//sun.misc.Launcher$App ...
JAVA JUC基础复习
多线程的基础知识,温故知新在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类,用于定义类似于线程的自定义子系统,包括线程池,异步 IO 和轻量级任务框架;还提供了设计用于多线程上下文中的 Collection 实现等;
多线程基础多线程书写模板1.在高内聚低耦合的前提下考虑三要素线程 操作(对外暴露的调用方法) 资源类
线程的创建采用匿名内部类new Thread(runable target,String name)
lock的使用
//可复用锁Lock lock = new ReentrantLock();//在操作的方法中lock.lock();try { //具体操作 } catch (InterruptedException e) { e.printStackTrace();} finally { lock.unlock();}
mysql默认端口3306redis默认端口6379
接口之前不允许有 ...
正则表达式
心情是伤感的,因为离别1. 匹配规则表正则表达式的匹配规则是从左到右按规则匹配
字符串匹配:使用String.matches()方法
2.匹配用例2.1简单匹配1.判断输入年份是否是20xx年
正则表达式:20\d\d
java字符串:20\d\d
测试代码
public class is2000 { public static boolean is20xx(String s) { if(s==null) return false; return s.matches("20\\d\\d"); }}//测试类package test;import static org.junit.jupiter.api.Assertions.*;import org.junit.jupiter.api.Test;import com.x2yu.is2000;class EmaiTest { @Test void testis20xx() { assertTrue(is2000.is20xx("2000")); assertTr ...
Quartz的简单实用
什么是Quartz?官方的介绍
Quartz是一个功能丰富的开源作业调度库,可以集成到几乎任何Java应用程序中——从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的调度,以执行数以万计、数百甚至数万个作业;任务被定义为标准Java组件的作业,这些组件实际上可以执行您可以编程让它们执行的任何操作。Quartz调度程序包含许多企业级特性,比如支持JTA事务和集群
简单来说就是定时调度任务的工具。
贴一下架构图:
基本概念●Job:是一个接口,只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度上下文的各种信息。Job运行时的信息保存在JobDataMap实例中;
●JobDetail:Quartz在每次执行Job时,都重新创建一个Job实例,所以它不直接接受一个Job的实例,相反它接收一个Job实现类,以便运行时通过newInstance()的反射机制实例化Job。因此需要通过一个类来描述Job的实现类及其它相关的静态信息,如Job ...
MyBatis 分页插件 PageHelper 使用小结
做了太多无用功,心情复杂
1. SpringBoot 中的 PageHelper如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。
这不是我说的,官方是这么介绍来着。但是使用过程中也确实有特别方便的地方。也有我学艺不精,暗自头疼的时候。
最近可能是很闲,我看到室友的博客项目后,自己也想造轮子。其实自己之前也有计划写,但是我的懒惰还是打败了行动。最近一段时间开始用SpringBoot搭建一个博客项目。其中在后端展示留言信息时涉及分页。我之前也用过PageHelper寻思很方便这次也就直接上了。
1. 配置PageHelper*1. *pomx.xml引入依赖
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> &l ...