分页

面试题

故事扮演 提交于 2019-12-02 16:03:38
1.有哪些不同类型的IOC(依赖注入)方式?解释说明下? 基于Setter注入 对于习惯了传统 javabean 开发的程序员,通过 setter 方法设定依赖关系更加直观。 如果依赖关系较为复杂,那么构造子注入模式的构造函数也会相当庞大,而此时设值注入模式则更为简洁。 如果用到了第三方类库,可能要求我们的组件提供一个默认的构造函数,此时构造子注入模式也不适用。 基于构造器注入 在构造期间完成一个完整的、合法的对象。所有依赖关系在构造函数中集中呈现。 依赖关系在构造时由容器一次性设定,组件被创建之后一直处于相对“不变”的稳定状态。 只有组件的创建者关心其内部依赖关系,对调用者而言,该依赖关系处于“黑盒”之中。 p命名空间注入 使用属性而不是子元素的形式配置Bean的属性,从而简化了配置代码。 使用前要在spring配置文件中引入p命名空间 xmlns:p="http://www.springframework.org/schema/p" 2.最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗? Dao接口,就是人们常说的Mapper接口,接口的全限名,就是映射文件中的namespace的值,接口的方法名,就是映射文件中MappedStatement的id值,接口方法内的参数,就

java面试题

て烟熏妆下的殇ゞ 提交于 2019-12-02 16:00:55
1.有哪些不同类型的IOC方式?解释并说明 (1)Set 注入 对于习惯了传统 javabean 开发的程序员,通过 setter 方法设定依赖关系更加直观。     如果依赖关系较为复杂,那么构造子注入模式的构造函数也会相当庞大,而此时设值注入模式则更为简洁。     Setter注入也需要在xml中进行配置,在调用了无参的构造方法或者无参的静态工厂方法实例化bean之后,容器通过回调bean的setter方法来完成setter注入。 (2)构照器注入 为POJO类创建带参的构造方法     使用<constructor-arg>元素 一个<constructor-arg>元素表示构造方法的一个参数,且使用时不区分顺序。当构造方法的参数出现混淆,无法区分时,可以通过<constructor-arg>元素的index属性指定该参数的位置索引,位置从0开始。<constructor-arg>元素还提供了type属性用来指定参数的类型,避免字符串和基本数据类型的混淆。     构造注入的时效性好,在对象实例化就得到所依赖的对象,便于在对象的初始化方法中使用依赖对象;但受限于方法重载的形式,使用灵活性不足。设值注入使用灵活,但时效性不足,并且大量的setter访问器增加了类的复杂性。Spring并不倾向于某种注入方式,用户应该根据实际情况进行合理的选择。 (3)P命名空间

面试题

会有一股神秘感。 提交于 2019-12-02 16:00:40
1.有哪些不同类型的IOC(依赖注入)方式?解释说明下? 基于Setter注入 对于习惯了传统 javabean 开发的程序员,通过 setter 方法设定依赖关系更加直观。 如果依赖关系较为复杂,那么构造子注入模式的构造函数也会相当庞大,而此时设值注入模式则更为简洁。 如果用到了第三方类库,可能要求我们的组件提供一个默认的构造函数,此时构造子注入模式也不适用。 基于构造器注入 在构造期间完成一个完整的、合法的对象。所有依赖关系在构造函数中集中呈现。 依赖关系在构造时由容器一次性设定,组件被创建之后一直处于相对“不变”的稳定状态。 只有组件的创建者关心其内部依赖关系,对调用者而言,该依赖关系处于“黑盒”之中。 p命名空间注入 使用属性而不是子元素的形式配置Bean的属性,从而简化了配置代码。 使用前要在spring配置文件中引入p命名空间 xmlns:p="http://www.springframework.org/schema/p" 2.最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗? Dao接口,就是人们常说的Mapper接口,接口的全限名,就是映射文件中的namespace的值,接口的方法名,就是映射文件中MappedStatement的id值,接口方法内的参数,就

一些面试题

老子叫甜甜 提交于 2019-12-02 15:54:13
1.有哪些不同类型的IOC(依赖注入)方式?解释说明下? 基于Setter注入 对于习惯了传统 javabean 开发的程序员,通过 setter 方法设定依赖关系更加直观。 如果依赖关系较为复杂,那么构造子注入模式的构造函数也会相当庞大,而此时设值注入模式则更为简洁。 如果用到了第三方类库,可能要求我们的组件提供一个默认的构造函数,此时构造子注入模式也不适用。 基于构造器注入 在构造期间完成一个完整的、合法的对象。所有依赖关系在构造函数中集中呈现。 依赖关系在构造时由容器一次性设定,组件被创建之后一直处于相对“不变”的稳定状态。 只有组件的创建者关心其内部依赖关系,对调用者而言,该依赖关系处于“黑盒”之中。 p命名空间注入 使用属性而不是子元素的形式配置Bean的属性,从而简化了配置代码。 使用前要在spring配置文件中引入p命名空间 xmlns:p="http://www.springframework.org/schema/p" 2.最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗? Dao接口,就是人们常说的Mapper接口,接口的全限名,就是映射文件中的namespace的值,接口的方法名,就是映射文件中MappedStatement的id值,接口方法内的参数

java面试题

不问归期 提交于 2019-12-02 15:53:48
1.有哪些不同类型的IOC(依赖注入)方式?解释说下 1.Set 注入 2.构造器注入 3.静态工厂的方法注入 4.实例工厂的方法注入 Setter 注入 :对于习惯了传统 javabean 开发的程序员,通过 setter 方法设定依赖关系更加直观。 如果依赖关系较为复杂,那么构造子注入模式的构造函数也会相当庞大,而此时设值注入模式则更为简洁。如果用到了第三方类库,可能要求我们的组件提供一个默认的构造函数,此时构造子注入模式也不适用。 构造器注入 :在构造期间完成一个完整的、合法的对象 。所有依赖关系在构造函数中集中呈现。依赖关系在构造时由容器一次性设定,组件被创建之后一直处于相对“不变”的稳定状态。只有组件的创建者关心其内部依赖关系,对调用者而言,该依赖关系处于“黑盒”之中。 静态工厂的方法注入 :利用静态工厂方法可以把bean注入到IOC容器中。 在XML文件中配置bean时,要指定class的属性为工厂的类;factory-method属性指定工厂类中工厂方法,用于创建bean;constrctor-arg用于给工厂方法传递参数 实例工厂方法 :将对象的创建过程封装到另外一个对象实例的方法里。 当客户端需要请求对象时 , 只需要简单的调用该实例方法而不需要关心对象的创建细节。 2.最佳实践中,通常一个Xml映射文件都会写一个Dao接口与之对应,请问,这个Dao工作

面试题

白昼怎懂夜的黑 提交于 2019-12-02 15:50:19
1。哪些不同类型的IOC方式  IoC,(Inverse of Control)控制反转,其包含两个内容:其一是控制,其二是反转。在程序中,被调用类的选择控制权从调用它的类中移除,转交给第三方裁决。这个第三方指的就是Spring的容器。IoC另解,依赖注入(Dependency Injection),调用类对被调用类的依赖关系由第三方注入,以移除调用类对被调用类的引用。 2。java的9大内置对象  request  response   pageContext  session  application  out  config  page  exception3。数据库里面的索引的约束是  索引:加强了查询数据库的速度  约束:可以设置主键约束比唯一约束更严格不能为空4。mybatis是如何进行分页的?分页的插件的原理是什么?  Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页,可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。  分页插件的基础原理是是有mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截执行的SQL,让后重写SQL,根据dialect方言,添加对应的物理分页语言和物理参数。5.通常一个Xml映射文件,都会写一个Dao接口与之对应,请问

Sqlserver 分页查询

泪湿孤枕 提交于 2019-12-02 15:17:56
说到分页查询,相信很多人都知道,可能对于写后台的人来说,只需要拿到前台的每页条数:PageSize ,当前页码:PageIndex 在传值给数:RecordCount 给数据库处理就行了。(当然直接在后台拼接sql字符串也可以)数据库是怎末处理的呢?我们来看看这个分页的存储过程: USE [ SmartNet GO /****** Object: StoredProcedure [dbo].[ReportManage_Finance_CostRoom_GetList] Script Date: 2019/10/28 星期一 11:50:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[存储过程名]--模拟省市区的查询条件@ProvinceID int, @CityID int, @AreaID int,@pageSize int,//每页的条数 @nowPage int,//当前页数 @RecordCount int output //返回的记录条数 As//我们先搭一个最大的框架 SELECT k.* FROM ( select ROW_NUMBER() OVER (ORDER BY Id desc ) as RowNumber, 结果项1,结果项2,结果项3.。。

MySQL 分页查询优化——延迟关联优化

女生的网名这么多〃 提交于 2019-12-02 14:34:18
目录 1. InnoDB 表的索引的几个概念 2. 覆盖索引和回表 3. 分页查询 4. 延迟关联优化 写在前面 下面的介绍均是在选用 MySQL 数据库和 Innodb 引擎的基础开展。我们先来学习索引的几个概念,帮助我们理解延迟关联优化的加快分页查询速度的原因。 一、 Innodb 表的索引的几个概念 InnoDB 表是基于聚簇索引建立的。 索引一般分为主键索引和普通索引(辅助索引),聚簇索引并不是主键索引这样的单独的索引类型,而是一种数据存储方式。通俗的来说,单独的索引是存储了索引信息的 B+Tree ,而聚簇索引是在同一个结构中保存了 B+Tree 和数据行,即通过主键索引 B+Tree 的结构建立数据文件(网上的说法是索引和数据存储在同一个文件中),因此聚簇索引是一种数据存储方式。 如果对于索引的概念不是很熟悉,建议去查阅相关资料学习,索引是一个很庞大的知识结构。 Innodb 表以主键索引建立后缀名为 .MYD 表存储文件,普通索引亦以 B+Tree 实现,并保存在后缀名为 .MYI 的文件中,具体结构图如下所示: 在查询时选用主键索引和普通索引有什么不一样呢? 以下面语句为例: · select * from table where id = 5; ( id 为主键索引) 检索过程如上图绿色箭头所示,直接在主索引树上根据主键检索 · select * from

SpringBoot---MyBatis (pagehelper 分页插件使用案例)

元气小坏坏 提交于 2019-12-02 12:50:46
1.pom 文件 <!-- 分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.12</version> </dependency> 2.application-dev.properties #================ mybatis pagehelper ==============# pagehelper.helper-dialect=mysql pagehelper.reasonable=true pagehelper.support-methods-arguments=true pagehelper.params=count=countSql 3.分页查询返回实体类 import com.github.pagehelper.PageInfo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.List; /** * 分页查询返回实体类 * *

六、django分面、获取请求参数

跟風遠走 提交于 2019-12-02 11:24:44
一、获取请求参数 def index(request): limit = request.GET.get('limit',20) #get请求获取请求参数 page = request.GET.get('page',1) username = request.POST.get('name','nana') #post请求获取请求参数 二、分页的方法 from django.core.paginator import Paginator #实现分页的类 l = list(range(100)) #定义一个list作为分页的数据 page_obj = Paginator(l,20) #第一个参数,对谁进行分页,第二个参数,一页多少个 print(page_obj.count)# 总共多少条数据 print(list(page_obj.get_page(2)))#获取第1页的数据 print(page_obj.object_list)#page_obj原始的数据 print(page_obj.num_pages)#总共分了几页 print(page_obj.page_range)#分页范围 range(1, 6) page1 = page_obj.get_page(1) re = page1.has_next()#是否有下一页 re = page1.has_other_pages()