自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 Mybatis用if标签判断是否等于某个字符

mybatis字符判断报错记录

2022-10-31 22:41:24 345

原创 @Validated和@Valid校验参数、级联属性校验,对象参数校验

通过@Valid与@Validated实现更简洁的参数校验

2022-10-13 11:01:58 2514

原创 Linux的定时任务--CronTab 命令详解及使用教程

linux定时任务--crontab 数据库备份, 日志切割等

2022-10-12 15:21:00 8325 1

原创 Springmvc开发步骤 结果跳转 数据处理(json,RestFul) 拦截器

1.Springmvc开发步骤创建项目创建一个新的模块,不使用任何archetype项目模板导入依赖<!-- 依赖 --> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <versi

2021-04-21 20:37:20 624

原创 遇错:修改项目发布到Tomcat之后不生效

在修改SpringMVC项目时遇到修改了项目重新发布到Tomcat之后不生效的问题,在项目里面把form.jsp视图删除掉之后还是能在浏览器中访问解决:1.清除Tomcat缓存,work和temp两个文件夹里面的内容可以直接删除掉2. 检查项目artifact目录里面是否正确(我的就是这儿不对,删除掉的form还在,而新建的accc.jsp没有,下图已经改好了)重新build一下Artifacts试试我是先clean再build如果发现输出文件夹没有jsp页面了检查一下地址是否正

2021-04-18 10:53:17 1029

原创 Spring的事务控制,事务属性,基于标签的事务配置方式

1. spring控制事务1.1 搭建开发环境依赖:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.1.14.RELEASE</version></dependency>userDAO接口和Mapper映射文件public interface

2021-04-16 13:16:50 266

原创 Spring整合Mybatis持久层框架

1. 持久层整合1.Spring框架为什么要与持久层技术进行整合1. JavaEE开发需要持久层进行数据库的访问操作。2. JDBC Hibernate MyBatis进行持久开发过程存在大量的代码冗余3. Spring基于模板设计模式对于上述的持久层技术进行了封装2. Spring可以与那些持久层技术进行整合?1. JDBC 工具类 |- JDBCTemplate 2. Hibernate (JPA) 工具类 |- HibernateTemplate3. MyBat

2021-04-14 20:10:05 154

原创 报错:mybatis绑定Mapper文件找不到

查看target目录里面Mapper文件 是不是出现在了对应的目录里面如果target目录里面直接没有了这个文件,需要pom里面添加一下文件过滤,如果有这个文件也需要检查一下文件的所属文件夹是否正确 <build> <resources> <resource> <directory>src/main/resources</directory> .

2021-04-14 13:38:03 1215

原创 AOP的底层实现原理,基于注解的AOP编程,切入点复用,AOP开发中同一个业务类中方法的相互调用

1.AOP编程1.1 AOP概念AOP (Aspect Oriented Programing) 面向切面编程 Spring动态代理开发以切面为基本单位的程序开发,通过切面间的彼此协同,相互调用,完成程序的构建切面 = 切入点 + 额外功能OOP (Object Oritened Programing) 面向对象编程 Java以对象为基本单位的程序开发,通过对象间的彼此协同,相互调用,完成程序的构建POP (Producer Oriented Programing) 面向过程(方法

2021-04-13 22:51:38 634

原创 静态代理模式 JDK动态代理模式 Spring动态代理模式

1. 代理设计模式概述1.1 概念为什么要有“代理”?生活中就有很多代理的例子,例如,我现在需要出国,但是我不愿意自己去办签证、预定机票和酒店(觉得麻烦 ,那么就可以找旅行社去帮我办,这时候旅行社就是代理,而我自己就是被代理了。代理模式的定义:被代理者没有能力或者不愿意去完成某件事情,那么就需要找个人代替自己去完成这件事,这个人就是代理者,比如房东要出租房子,又不愿意自己去打广告找房客,于是找到了中介公司,于是中介公司就是代理者,房东就是被代理者。1.2 为什么需要代理设计模式DAO —>

2021-04-13 14:21:08 185

原创 Spring工厂高级特性-对象的生命周期,配置文件参数化,自定义类型转换器,后置处理Bean

1. 对象的生命周期1.1 什么是对象的生命周期生命周期指的是一个对象创建、存活、消亡的一个完整过程1.2 为什么要学习对象的生命周期由Spring负责对象的创建、存活、销毁,了解生命周期,有利于我们使用好Spring为我们创建的对象1.3 生命周期的3个阶段(重点掌握创建阶段,初始化操作和销毁操作用的比较少)1.3.1创建阶段Spring工厂何时创建对象?如果对象只会被生产一次 scope=“singleton”Spring会在工厂创建的同时完成对象的创建注意:设置sco

2021-04-11 19:06:46 148

原创 报错:解决通配符的匹配很全面,但无法找到元素‘context:property-placeholder‘的声明 引入命名空间时报错

在进行Spring的配置文件与小配置文件整合时,需要引入context命名空间,但是引入之后无法正常使用,IDEA也没有识别出来,从而在开发时给出提示,自己写完之后报错“解决通配符的匹配很全面,但无法找到元素’context:property-placeholder‘的声明” ,原因是在引入命名空间时没有正确引入它的DTD解析文件。红框框起来的地方需要注意一下,这是我自己后来加的 加了之后就解决了<?xml version="1.0" encoding="UTF-8"?><be

2021-04-11 17:18:43 1178

原创 Spring工厂创建复杂对象以及控制创建对象的次数

1.复杂对象1.1 什么是复杂对象复杂对象:指的就是不能直接通过new构造方法创建的对象 Connection SqlSessionFactorySpring工厂创建复杂对象2. Spring工厂创建复杂对象的3种方式2.1 FactoryBean接口2.1.1 开发步骤实现FactoryBean接口FactoryBean接口有三个方法需要被实现Object getObject() :用于书写创建复杂对象的代码,并把复杂对象作为方法的返回值返回Class getObje

2021-04-10 22:21:39 252

原创 Spring的Set注入和构造注入(赋值)

1 什么是注入1.1 为什么需要注入注入:通过Spring的配置文件,为成员变量赋值Set注入:Spring调用Set方法 通过配置文件 为成员变量赋值构造注入:Spring调用构造方法 通过配置文件 为成员变量赋值1.2 注入的好处解耦合属性的值都写在xml配置文件里面, 以后修改可以直接修改xml文件里面的内容,代码层面不需要修改2 Set注入详解2.1 Set注入的原理分析(简易版)Spring通过底层调用对象属性对应的set方法,完成成员变量的赋值,这种方式我们也称之为set

2021-04-10 20:12:29 3203

原创 Mybatis的缓存机制,一级缓存吗, 二级缓存,ehcache

缓存MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。 要启用全局的二级缓存,只需要在SQL的映射文件中添加一行:<cache/>一级缓存也叫本地缓存 只在一次SqlSession中有效(默认是开启的)与数据库同一次会话期间查询到的数据会放在本地缓存中如果以后需要获取相同的数据,可以直接从缓存中拿, 不需要再去查询数据库失效的情况:sqlSession不同sqlSessio

2021-04-10 09:45:12 111

原创 Mybatis多对一查询处理和一对多查询处理

复杂查询环境搭建CREATE TABLE `teacher` (`id` INT(10) NOT NULL,`name` VARCHAR(30) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO teacher(`id`, `name`) VALUES (1, '秦老师');CREATE TABLE `student` (`id` INT(10) NOT NULL,`name

2021-04-09 13:28:55 102

原创 Lombok注解开发工具

Lombok使用步骤1.在IDEA中安装lombok插件2. 在项目中导入lombok的jar包<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> &l

2021-04-08 21:26:04 187

原创 JAVA工厂模式概述,简单实现以及通用工厂

什么是工厂模式通常如果我们要创建Sample的实例对象,是通过new的方法:Sample sample=new Sample();Sample sample=new Sample(参数); User user = new User();UserDAO userDAO = new UserDAOImpl();这种方式把接口的实现类,硬编码在程序中,但是这种会让代码之间存在很强的耦合:指定是代码间的强关联关系,一方的改变会影响到另一方不利于代码维护而工厂模式是我们最常用的实例化对象模式了,是用工

2021-04-06 20:57:50 151

原创 MAVEN下载和配置,创建多模块项目以及项目打包操作

Maven 的作用:Maven 统一集中管理好所有的依赖包,不需要再去寻找。对应第三方组件用到的共同 jar,Maven 自动解决重复和冲突问题。Maven 作为一个开放的架构,提供了公共接口,方便同第三方插件集成。程序员可以将自己需要的插件,动态地集成到 Maven,从而扩展新的管理功能。Maven 可以统一每个项目的构建过程,实现不同项目的兼容性管理。Maven的下载和配置maven官网下载地址 :http://maven.apache.org/download.cgi下载之后可以放在

2021-04-02 14:38:50 453

原创 JAVA多线程以及多线程安全问题

什么是线程安全当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的。这个定义很严谨,它要求就线程安全的代码都具备一个特征:代码本身封装了所有必要的正确性保障手段,令调用者无须关心多线程的问题,更无须自己实现任何措施来保证多线程的正确调用。为什么会有线程安全问题?当多个线程同时共享同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安

2021-03-24 10:20:25 202

原创 java多线程基础-创建线程,线程的优先级、生命周期、阻塞和处理以及 线程联合

创建线程的两种方式1.继承Thread类,并重写run方法实现线程执行的逻辑任务public class ThreadTest01 { public static void main(String[] args) { MyThread01 myThread01 =new MyThread01(); MyRunnable myRunnable01 =new MyRunnable(); //调用start方法启动线程 myThread

2021-03-20 23:51:20 170

原创 java-IO流字节流

Java的流操作分为字节流和字符流两种。Java的I/O流是建立在四个抽象类的基础上,分别是InputStream, OutputStream, Reader和Writer。1、 字节流( byte stream)对数据以字节为单位进行读写,既可以一个字节接一个字节的读写数据,也可以一次读写任意长度的字节块(即字节数组)(1) public abstract int read() thows IOException方法返回一个0至255之间的整数或-1, -1代表遇到了流的结束,其它对应读入的

2021-03-19 00:54:19 87

原创 File类的常用方法

import java.io.File;public class FileTest { public static void main(String[] args) { /** * 常用的构造方法有三种: * 1、File(String pathname): * 通过路径名创建一个新 File 实例。 * * 2、File(File parent, String child): .

2021-03-18 00:08:21 173

原创 报错:JSP EL表达式找不到JAVA实体类的属性

在跳转到JSP页面时报错找不到某个实体类的属性,JSP里面使用了EL表达式,来访问Admin实例的username,这个地方报错错误原因:${admin.username}其实等价于 等价于 admin.getUsername()就是调用了admin对象的get方法,来拿到username属性, 但是我的Admin实体类里面没有写get方法 所以导致EL表达式拿不到username,于是报错,解决办法:在Admin实体类里面加上username的get方法就可以了...

2021-03-16 11:36:01 1034

原创 DBUtils工具

DBUtils 可以帮助开发者完成数据的封装(结果集到 Java 对象的映射)使用前需要先导⼊ jar 包:commons-dbutils-1.7.jarResultHandler 接⼝是⽤来处理结果集,可以将查询到的结果集转换成 Java 对象,提供了 4 种实现类。被封装的目标类中必须有一个无参构造器BeanHandler 将结果集映射成 Java 对象 StudentBeanListHandler 将结果集映射成 List 集合 ListMapHandler 将结果集映射成 Map 对象M

2021-03-14 14:26:42 81

原创 c3p0数据库连接池的使用方法

JDBC 的数据库连接池使⽤ javax.sql.DataSource 接⼝来完成的,DataSource 是 Java 官⽅提供的接⼝,使⽤的时候开发者并不需要⾃⼰来实现该接⼝,可以使⽤第三⽅的⼯具,C3P0 是⼀个常⽤的第三⽅实现,实际开发中直接使⽤ C3P0 即可完成数据库连接池的操作。使用步骤:导⼊ jar 包。c3p0-0.9.1.2.jar代码实现import com.mchange.v2.c3p0.ComboPooledDataSource;import java.beans

2021-03-13 22:31:35 294

原创 Java连接MySQL数据库的步骤

提前在工程目录中创建lib文件夹,将下载好的JDBC包放到该文件夹下附下载地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/1、加载数据库驱动,Java 程序和数据库之间的桥梁。2、获取 Connection,Java 程序与数据库的⼀次连接。3、创建 Statement 对象,由 Connection 产⽣,执⾏ SQL 语句。4、如果需要接收返回值,创建 ResultSet 对象,保存 Statement 执⾏之后所查询到

2021-03-11 22:01:12 150

原创 将JAVA对象转成JSON格式失败不报错的问题

将JAVA对象转成JSON格式public class JsonServletTest extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("这里是test2的dopost"); Use

2021-03-10 23:41:50 697

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除