@ApiOperation注解说明
首先@ApiOperation注解不是Spring自带的,它是是swagger里的
注解@ApiOperation是用来构建Api文档的
@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response =
“接口返回参数类型”, notes = “接口发布说明”;其他参数可参考源码;
Spring Boot中使用Swagger2构建强大的RESTful API文档
@Transactional(rollbackFor=Exception.class)
在项目中,如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。
@Transactional注解的用法
Serializable (一个对象序列化的接口)
一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的。
因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。
而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。
什么时候需要序列化??
(1)当你想把内存的对象写入到硬盘的时候;
(2)当你想用套接字socket在网络上传送对象的时候;
(3)当你想通过RMI传输对象的时候;
再稍微解释一下:
a)比如说你的内存不够用了,那计算机就要将内存里面的一部分对象暂时的保存到硬盘中,等到要用的时候再读入到内存中,硬盘的那部分存储空间就是所谓的虚拟内存。在比如过你要将某个特定的对象保存到文件中,我隔几天在把它拿出来用,那么这时候就要实现Serializable接口;
b)在进行java的Socket编程的时候,你有时候可能要传输某一类的对象,那么也就要实现Serializable接口;最常见的你传输一个字符串,它是JDK里面的类,也实现了Serializable接口,所以可以在网络上传输。
c)如果要通过远程的方法调用(RMI)去调用一个远程对象的方法,如在计算机A中调用另一台计算机B的对象的方法,那么你需要通过JNDI服务获取计算机B目标对象的引用,将对象从B传送到A,就需要实现序列化接口。
StringBuilder的字符串拼接效率远远高于String
String、StringBuilder 、StringBuffer
delete方法与deleteCharAt两个方法都是用来删除StringBuffer字符串指定索引字符的方法,
delete(int a,int b)有两个参数,使用时删除索引从a开始(包含a)到b(不包含b)的所有字符;
deleteCharAt(int a)只有一个参数,使用时删除索引为a的字符;
Java中CharSequence和String
charSequence是一个接口,表示char值的一个可读序列。
此接口对许多不同种类的char序列提供统一的自读访问。
此接口不修改equals和hasCode方法的常规协定,因此,通常未定义比较实现CharSequence的两个对象的结果。
他有几个实现类:CharBuffer 、String 、StringBuffer 、StringBuilder
CharSequence与String都能用于定义字符串,但CharSequence的值是可读可写序列,而String的值是只读序列。
对于一个抽象类或者是接口类,不能使用new来进行赋值,但是可以通过以下的方式来进行实例的创建:
CharSequence cs=”hello”;
StringBuilder.append和String的 拼接字符串StringBuilder.append高的原因
[ResultSet结果集的使用:查询数据库时,返回的是一个二维的结果集,我们需要用到ResultSet来遍历结果集,获取每一行的数据。
Spring之JDBCTemplate的学习
JDBC Temple模板的使用
JDBC的增删改查
使用KeyHolder 获取Spring JdbcTemplate插入记录ID
sql=“insert ****”;
插入的是user对象
KeyHolder keyholder = new GeneratedKeyHolder();
int userID = keyHolder.getKey().longValue();
KeyHolder获取数据插入之后的ID
PreparedStatement
StringUtils
StringUtils是String的补充,如果输入的字符串是null不会抛异常
1.public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是 str==null 或 str,length()==0;
2.public static boolean isNotEmpty(String str)
判断字符串是否非空,等于!=isEmpty(String str)
MessageDigest类与MD5算法
这个类可以提供MD5算法或SHA算法用于计算出数据的摘要:它接收任意大小的数据,并输出计算后的固定长度的哈希值。
MessageDigest类与MD5算法
Digest实现MD5加密
DigestUtils.md5Hex(password)
password需要加密的字符串
Lambda匿名函数->
Lambda是java 8 新增的特性的新语法。
Lambda其实就是一个匿名函数,Lambda允许将函数作为一个方法的参数,传递进方法中,我们就把Lambda表达式理解为一个可以传递的代码,这样写出来的代码,就可以做到哦简洁、灵活。
Lambda匿名函数以及java8新特性的函数
Java迭代器(遍历)
迭代器的三个方法:
1.Iterator()//获取迭代器
2.hasNext()//判断集合是否有数组
3.next()//从集合中取出元素
public class tesk {
public static void main(String[] args) {
// 测试迭代器中的方法
Collection collection = new ArrayList();
collection.add("a");
collection.add("b");
collection.add("c");
collection.add("s");
//获取迭代器中的迭代器
Iterator iterator = collection.iterator();
while(iterator.hasNext()){
Object next = iterator.next();
System.out.println(next);
/** //先判断集合中是否有元素
boolean isha = iterator.hasNext();
System.out.println(isha);
//从集合中取出元素
Object next = iterator.next();
System.out.println(next);
*/
}
}
运行结果:
true
a