返回值

MyBatis注意事项(返回值是Integer,操作IN语句注意事项,插入空值)

余生长醉 提交于 2020-01-10 21:13:12
1. 当方法的返回值是Integer类型时候,需要指明ResultType属性。 错误信息为: org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement 'com.ssi.domains.leave.repository.LeaveRepository.getLeaveCount'. It's likely that neither a Result Type nor a Result Map was specified. 所以,正确的Mybatis配置,要加上 resultType = ‘integer’。 /** * 获取表里所有记录的数量 * * @param statement 要执行的SQL语句的标记,对应的是Mybatis中的id的值 * @return 表里所有记录的数量 */ Integer getCount(String statement); 所以,正确的Mybatis配置,要加上 resultType = ‘integer’。 2. 操作IN语句注意事项 当用到IN语句时,Dao层接口中传递的是 List<String> , Mybatis解析成 id IN (" 221 , 223,

原创 | Springboot任务

北城余情 提交于 2020-01-10 07:28:56
大家好,我是润森。 扫描公众号回复 IDEA 关键字领取破解文档和jar包。 任务 什么叫做任务呢?其实就是类中实现了一个什么功能的方法。 常见的任务就是异步任务,定时任务 异步任务:其实就是一个很特别的方法,这个方法没有返回值(也可以有返回值,后面会说的),但是方法内部的逻辑会耗费很多时间!例如,用户请求每次到controller,要执行到这个异步方法的时候,我们只需要命令一个空闲状态的线程去执行它即可,由于没有返回值不影响后续代码的运行,controller直接去执行后续的代码。这样可以极为迅速的响应用户,用户体验非常好。 异步任务 AsyncService.java import org . springframework . scheduling . annotation . Async ; import org . springframework . stereotype . Service ; /** * @author: 毛利 */ @Service public class AsyncService { //告诉Spring这是一个异步方法 @Async public void hello ( ) { try { Thread . sleep ( 3000 ) ; } catch ( InterruptedException e ) { e .

read()方法返回值为什么是int

断了今生、忘了曾经 提交于 2020-01-10 06:01:10
read()方法返回值为什么是int A:read()方法读取的是一个字节,为什么返回是int,而不是byte? 因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式存储的。如果每次读取都返回byte,有可能在读到中间的时候遇到11111111,那么这11111111是byte类型的-1,我们的程序是遇到-1就会停止不读了,后面的数据就读不到了,所以在读取的时候用int类型接收。如果是11111111就会在其前面补上24个0凑足4个字节,那么byte类型的-1就会变成int类型的255了,这样就可以保证整个数据读完,而结束标记的-1就是int类型。 package com.heima.stream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class Demo02_FileInputStream { /** * read()方法读取的是一个字节,为什么返回是int,而不是byte * * 00010100 00100100 01000001 11111111 0000000 * * 10000001 byte类型-1的原码 * 11111110 -1的反码 * 11111111

方法

拥有回忆 提交于 2020-01-09 20:30:21
1、方法 入门知识 定义格式: public static void 方法名称(){ 方法体; } // 调用格式: 方法名() 注意事项: 方法的定义先后顺序无所谓 方法定义必须是挨着的, 不能一个方法里面有多个方法 方法再定义的时候没有被调用,只有在调用的时候才开始执行 例子 public class DemoMethod{ public static void main(String[] args){ PrintHelloWorld(); } public static void PrintHelloWorld(){ System.out.println("hello world"); } } 1.1、方法的完整格式 完整定义格式 修饰符 返回值类型 方法名称(参数类型,参数名称){ 方法体; return 值; } 修饰符:现阶段就是 public static 返回值类型:也就是方法最终的数据是什么类型的 方法名称:方法的名字,小驼峰命名 参数类型:传入的参数数据类型 参数名称:就是变量名称, 多个参数使用逗号隔开 方法体:代码 return 停止当前的方法,将值进行返回 返回值:方法执行的结果, 无返回值的时候则使用 void 注意: return后面的返回值, 必须和方法名前面的返回值类型, 保持对应 1、方法的三要素 返回值类型 方法名称 参数列表 2

数组复制的几种方法

≯℡__Kan透↙ 提交于 2020-01-09 15:19:53
一、for循环 二、使用system.arraycopy方法: System.arraycopy(src, srcPos, dest, destPos, length);可以选定复制原数组的部分内容,但新数组需要先声明并初始化;另外这种方法可以用来实现原数组的扩容,即将原数组的内容拷进去,但是比较麻烦 三、Arrays.copyOf方法:Arrays.copyOf(original, newLength)返回值为复制后的新数组,因为是返回值故不需要提前创建,直接声明然后使用即可;也可以用于实现数组的扩容,并且更简单,如: int arr2[] = Arrays.copyOf(arr, arr.length+10); 来源: CSDN 作者: MichaelSuns 链接: https://blog.csdn.net/MichaelSuns/article/details/103907095

Swift 5 闭包Closure简明教程

天涯浪子 提交于 2020-01-09 13:28:39
系统: Mac OS 10.15.2, XCode 11.3,swift 5.0 写作时间:2020-01-09 说明 Swift中的闭包(Closure) ,闭包的地位等同于OC中的Block! Objc 闭包的写法 void ( ^ printBlock ) ( NSString * x ) ; printBlock = ^ ( NSString * str ) { NSLog ( @ "print:%@" , str ) ; } ; printBlock ( @ "hello world!" ) ; Swift 闭包 的写法 // 定义语法 //{ // (参数列表) ->返回值类型 in // 语句组 //} // 声明一个闭包(有两个整形参数,且返回值为整形的闭包) var sumClosure : ( ( a : Int , b : Int ) - > Int ) // 实现闭包 sumClosure = { ( a : Int , b : Int ) - > Int in return a + b } // 调用 let sum = sumClosure ( a : 10 , b : 20 ) print ( sum ) Swift 闭包重定义 // 有参数无返回值的 typealias Myclosure1 = ( str : String ) - > Void /

spring之AOP

柔情痞子 提交于 2020-01-09 00:30:35
AOP(aspect oriented programming)面向切面编程    1.aop概述      aop简写aspect oriented programming,中文名字:面向切面编程;通过预编译方式和运行期动态代理实现程序功能的维护的一种技术,aop是oop的延续,aop是一个概念,并没有设定具体语言的实现,它能客服那些值有单继承特性语言的缺点.主要功能是日志记录,性能统计,安全控制,事务处理,异常处理等等.oop针对业务过程的实体及行为进行抽取封装,以获取更加清晰高效的逻辑单元划分. aop则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段已获得逻辑过程中个部分之间低耦合的隔离效果.这两种设计思想在目标上有本质的差异. ood/oop面向名领域,aop面向动词领域    2.aop相关术语 1.目标对象(target) 被代理的类(被增强的类) 2.连接点(join point) 那些被拦截到的点,在spring中这些点指的是方法,因为spring只支持方法类型的连接点. 3.切入点(pointcut) 表示一组连接点,这些连接点通过逻辑关系组合起来,或是通过通配,正则表达式等方式集中起来,它定义了项应的advice将要发生的地方 我们对那些哪些方法进行拦截的定义. 4.通知(advice) 拦截到方法之后所要做的事情,通知分为前置通知

JavaScript的函数

妖精的绣舞 提交于 2020-01-08 23:33:11
什么是函数 把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在后续开发中可以反复调用 函数的作用就是封装一段代码,将来可以重复使用 函数的定义 函数声明 function 函数名(){ // 函数体 } 函数表达式 var fn = function() { // 函数体 } 特点: 函数声明的时候,函数体并不会执行,只要当函数被调用的时候才会执行。 函数一般都用来干一件事情,需用使用动词+名词,表示做一件事情 tellStory sayHello等 函数的调用 调用函数的语法: 函数名(); 特点: 函数体只有在调用的时候才会执行,调用需要()进行调用。 可以调用多次(重复使用) 比如: <script> function sayHello() { console.log("Hello"); } sayHello(); //求1~100的和 function getSum() { var sum=0 for (var i=1;i<=100;i++) { sum+=i; } console.log(sum); } getSum(); </script> 函数的参数 // 函数内部是一个封闭的环境,可以通过参数的方式,把外部的值传递给函数内部 // 带参数的函数声明 function 函数名(形参1, 形参2, 形参...){ //

Java类成员之方法

谁说胖子不能爱 提交于 2020-01-08 15:07:25
方法含义: 1. 方法是类或对象行为特征的抽象,用来完成某个功能操作。 2.在某些语言中也称为函数或过程。 3.将功能封装为方法的目的是简化代码,可以实现代码重用。 4.在Java里的方法不能独立存在,所有的方法必须定义在类里。 方法的声明格式: 修饰符 返回值类型 方法名(参数类型 形参) { 方法体程序代码 return 返回值; } 1.修饰符:public,defunct,private, protected等。 2.返回值类型:没有返回值void。有返回值,声明出返回值的类型。 3.方法名:属于标识符,命名时遵循标识符命名规则和规范,“ 见名知意”。 4.形参列表:可以包含零个、一个或多个参数。多个参数时,中间用“,”隔开。 5.返回值:方法在执行完毕后返还给调用它的程序的数据。 方法分类: 方法调用: 方法通过方法名被调用,且只有被调用才会执行。 注意事项: 1.方法被调用一次,就会执行一次。 2.没有具体返回值的情况,返回值类型用关键字void表示, 3.没有具体返回值方法体可以不用return语句。如果使用,仅用来结束方法。 4.定义方法时,方法的结果应该返回给调用者,交由调用者处理。 5.方法中只能调用方法或属性,不可以在方法内部定义方法。 方法重载: 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数 或者参数类型不同即可。 重载特点: 1

[SpringMVC] Interceptor拦截器

依然范特西╮ 提交于 2020-01-08 09:25:32
前言: 今天想整理一篇关于Interceptor拦截器的博文,也是对知识的梳理。希望能给你们带来帮助。 MVC是什么意思? 我们先来说一说MVC这是什么意思吧。 M:模型层代表数据。 也就是使用bean、dao这些。 V:视图层代表展现,使用html、JSP、CSS这些。 C:控制层代表控制,使用servlet 为什么要有拦截器 SpringMVC中nterceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆。Interceptor是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个Action执行的前后执行的代码,也可以在一个Action执行前阻止其执行 。同时也提供了一种可以提取Action中可重用的部分的方式。 拦截器就相当于过滤器,把我们不想显示的内容给过滤掉。拦截器可以抽象出一部分代码可以用来完善原来的action。同时还可以减轻代码冗余,提高重用率。 当我们登入一个页面的时候,如果要求用户密码、权限等的验证,就可以使用自定义的拦截器进行密码验证和权限限制。对符合的登入者才跳转到正确页面。这样如果有新增权限的话,用在action里修改任何代码,直接在interceptor里修改就行了。 Interceptor 定义Interceptor实现类