实现分页查询
一:分页需求:
客户端通过传递pageNO(页码),pageSize(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下:
1234567891011查询第1-10条的数据的sql是:select * from table limit 0,10; ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1)*10,10;查询第10-20条的数据的sql是:select * from table limit 10,20; ->对应我们的需求就是查询第二页的数据:select * from table limit (2-1)*10,10;查询第20-30条的数据的sql是:select * from table limit 20,30; ->对应我们的需求就是查询第三页的数据:select * from table limit (3-1)*10,10;可以看到规 ...
IDEA配置Maven
配置D:\apache-maven-3.6.3\conf\settings.xml
maven自动下载的jar包,会存放到该目录下
成功后可以看到maven正在下载jar包
Sequelize学习记录
今天开始学习Sequelize~
简介Sequelize 是一个基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL, MariaDB, SQLite 以及 Microsoft SQL Server. 它具有强大的事务支持, 关联关系, 预读和延迟加载,读取复制等功能.Querying - 查询属性想要只选择某些属性,可以使用 attributes 选项. 通常是传递一个数组:
1234Model.findAll({ attributes: ['foo', 'bar']});SELECT foo, bar ...
属性可以使用嵌套数组来重命名:
1234Model.findAll({ attributes: ['foo', ['bar', 'baz']]});SELECT foo, bar AS baz ...
也可以使用 sequelize.fn 来进行聚合:
1234Model.findAll({ att ...
String s="x"+new String("y")创建了几个对象
之前某公司遇到的一个笔试题…回来了自己折腾了一会
首先结论:String s=”x”+new String(“y”) 这段代码共创建了5个对象
接下来看这句话对应的字节码,JDK版本1.7.8(不同版本可能会有不同结论):
1234567891011121314151617181920212223242526Code: 0: new #2 // class java/lang/StringBuilder 3: dup 4: invokespecial #3 // Method java/lang/StringBuilder."<init>":()V 7: ldc #4 // String x 9: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/S ...
GitHub提交错误 The page build failed
执行Hexo提交命令后收到邮件:
The page build failed for the master branch with the following error:
Page build failed. For more information, see https://help.github.com/en/github/working-with-github-pages/troubleshooting-jekyll-build-errors-for-github-pages-sites#troubleshooting-build-errors.
For information on troubleshooting Jekyll see:
https://help.github.com/articles/troubleshooting-jekyll-builds
If you have any questions you can submit a request on the Contact GitHub page at https://support.github.com/ ...
Servlet生命周期
1)初始化阶段当客户端向 Servlet 容器发出 HTTP 请求要求访问 Servlet 时,Servlet 容器首先会解析请求,检查内存中是否已经有了该 Servlet 对象,如果有,则直接使用该 Servlet 对象,如果没有,则创建 Servlet 实例对象,然后通过调用 init() 方法实现 Servlet 的初始化工作。需要注意的是,在 Servlet 的整个生命周期内,它的 init() 方法只能被调用一次。
2)运行阶段这是 Servlet 生命周期中最重要的阶段,在这个阶段中,Servlet 容器会为这个请求创建代表 HTTP 请求的 ServletRequest 对象和代表 HTTP 响应的 ServletResponse 对象,然后将它们作为参数传递给 Servlet 的 service() 方法。
service() 方法从 ServletRequest 对象中获得客户请求信息并处理该请求,通过 ServletResponse 对象生成响应结果。
在 Servlet 的整个生命周期内,对于 Servlet 的每一次访问请求,Servlet 容器都会调用一次 ...
什么是面向对象编程
假设你是神,想创造一些爬行动物,
首先,爬行动物应该有哪些基本特征:
冷血的 2.有头脑 3.会爬 4.冬眠 现在你就有了第一个模型,这就是抽象。
其次,你有一个好友,你想你的这个创造方法能够提供给他用,但是你不想让他知道里面细节是怎么做的,用的什么材料,他也不用考虑那么多,他只要告诉你,需要造什么样的爬宠就可以了。这就是封装。
然后,你之后创造的爬行动物都以刚才的模型做为模板,你创造的爬行动物都有你模型的特征 这就是继承。
最后,你觉得为了让爬行动物更丰富多彩,可以根据模型进行删减
某些爬行动物有四肢,舌头可以捕食,身体能够变色;
某些爬行动物没有四肢,牙齿可以分泌毒素,身体颜色鲜艳。这就是多态。
迭代器
迭代器 任何容器类,都必须有某种方式可以插入元素并将它们再次取回。毕竟持有事物是容器最基本的工作。对于List,add()是插入元素的方法之一,而get()是取出元素的方法之一。
如果从更高层次的角度思考,会发现这里有个缺点:要使用容器,必须对容器上网确切类型编程。初看起来这没有什么不好,但是考虑下面的情况:如果原本是对着List编码的,但是后来发现如果能够把相同的代码应用于Set,将会显得非常方便,此时应该怎么做?或者打算从头开始编程写通用的代码,它们只是使用容器,不知道或者说不关心容器的类型那么如何才能不冲写代码就可以应用于不同类型的容器?
迭代器(也是一种设计模式)的概念可以用于达成此目的。迭代器是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不必知道或关心该序列底层的结构。此外,迭代器通常被称为轻量级对象:创建它代价小。因此,经常可以见到对迭代器有些奇怪的限制;例如:java的Iterator只能单项移动,这个Iterator只能用来: (1)使用方法iterator()要求容器返回一个Iterator。Ite ...
Java集合
Java集合概述Java集合类存放于java.util包中,是一个用于存放对象的容器。
集合只能存放对象。比如你存放一个1到集合中,其实它是自动转换成Integer类后存入的,Java中每一种基本类型都有对应的应用类型。
集合存放的是多个对象的引用,对象本身还是存放在堆内存中。
集合可以存放不同类型,不限数量的数据类型
Java集合可以分为Set、List、Map三种大体系
Set:无序、不可重复的集合
List:有序、可重复的集合
Map:具有映射关系的集合
在JDK5之后,增加了泛型,Java集合可以记住容器中对象的数据类型
HashSetHashSet是对Set接口的典型实现,大多数使用Set集合时都使用这个实现类。我们大多数时候说的Set集合指的都是HashSet
HashSet 按 Hash算法来储存集合中的元素,因此具有很好的存储和查找性能。
HashSet 具有以下特点:
不能保证元素的排列顺序
不可重复
HashSet 不是线程安全的
集合元素可以使用 null
当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()方 ...
设计模式之单例模式
什么时候使用单例模式对于频繁创建和销毁对象,创建耗时过多或耗费资源过多(即:重量级对象),
但又经常用到的对象工具类对象,频繁访问数据库或文件的对象(如:数据源,session工厂等)时考虑使用单例模式
1.整个程序的运行只允许有一个类实例
2.需要频繁的创建和销毁对象
3.创建对象时耗时过多或耗资源过多
饿汉式简单
稍微占用一些内存不过影响不大,如果确定这个实例一定会用到那就没有问题 可用
1234567public class Singleton{ private static Singleton INSTANCE = new Singleton(); private Singleton(){} public static Singleton getSingleton(){ return INSTANCE; }}
线程安全懒汉式多线程时效率低 不推荐
12345678910public class Singleton{ private static Singlet ...