java中的泛型和sql中的索引
sql中的索引
索引:好处查询的速度快,被删除,修改,不会对表产生影响,作用是加速查询;
一种典型的数据库对象
作用:提交数据的查询效率,尤其对一些数据量很大的表
索引是用来为表服务的
索引是oracle服务器自动来使用(索引区的查找是oracle自动的)和维护(当记录发生变化的时候,索引区会自动随之更改) 6.定义
定义的两种方式
A.自动创建:
主键 或 唯一性约束,会自动创建索引 B.手动创建
CREATE INDEX ENAME_IDX ON emp(ename)索引建立在表emp的ename列上 7.索引的创建时机问题:
两种情况下一般都要创建一个索引:
列经常被用来做条件查询的时候
表数据量很大的时候 下列情况不要创建索引:
表很小
列不经常作为连接条件或出现在WHERE子句中
查询的数据大于2%到4%
表经常更新
java中的泛型;
1.泛型类或泛型接口
如果一个类要和别的N个类型打交道,但是处理的逻辑都是一样的,我们可以把要处理的类作为类参(泛型),减少重复的代码。
class AListForStudent{
void add(Student stu){...}
Student get(int index){} }
class AListForTeacher{
void add(Teacher stu){...}
Teacher get(int index){} }
class AList{
void add(Object stu){...}
2.完全重复的逻辑,只是运算因子不一样,用方法的封装去解决
完全重复的逻辑,只是实例状态不同,用继承去解决
完全重复的逻辑,只是面向的具体类型不同,用泛型去解决
class AList<T>{ //T待定,泛型类中可以把T当作一个类型来使用。一旦确定,所有T出现的地方都会被真实的类型替代
void add(T stu){...}
T get(int index){} }
AList<Student> stuList = new AList<Student>();
stuList.add(new Teacher());//error stuList.add(new 好学生()); //ok
3泛型方法
<T>List<T> queryForList(String query,Class<T> claz,Object... params)
调用: List<Student> stuList = queryForList(sql,Student.class);
java中的泛型和sql中的索引的更多相关文章
- Java中日期类型和mysql中日期类型进行整合
1. java与mysql中日期.时间类型总结: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 mysql(版本:5.1.50)的时间日期类型如下: da ...
- 1.什么是泛型和C#中泛型在Class上的实现
阅读目录 一:什么是泛型? 二:C#中泛型在Class上的实现 一:什么是泛型? 我们在编程的时候需要一个数据类型,但是在刚开始的时候还不确定这个数据类型是怎么样的,或者说对于不同的多个数据类型有 ...
- mysql中select into 和sql中的select into 对比
现在有张表为student,我想将这个表里面的数据复制到一个为dust的新表中去.answer 01: create table dust select * from student;//用于复制前未 ...
- 英文操作系统中中文乱码(SQL中 NVARCHAR 和 VARCHAR区别)
varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unico来存储数据的.中文字符存储到SQL Server中会保存为两个字节(一般采用Unico编码),英 ...
- (转)SQL中的ISNULL函数介绍
SQL中有多种多样的函数,下面将为您介绍SQL中的ISNULL函数,包括其语法.注释.返回类型等,供您参考,希望对您学习SQL能够有所帮助. ISNULL 使用指定的替换值替换 NULL. 语法ISN ...
- SQL中使用关键词创建表或字段
有时候我们给表或者字段命名时,会无意中选择了一个SQL中的关键字进行命名,然后就报错了: ERROR: syntax error at or near "limit" MySQL ...
- Mybatis在xml配置文件中处理SQL中的大于小于号的方法
之前在项目中遇到了在SQL中<=不识别的问题,在Navicat中语句正常,在xml中不识别,想起来就记录一下 项目用的是Mybatis,经过网上多次查询,验证,总结方法如下: 一.使用<! ...
- SQLSERVER中的timestamp 和 C#中的byte[] 转换
项目中由于需求设计,数据库中需要一个timestamp时间戳类型的字段来作为区别数据添加和修改的标识.由于timestamp在SQL SERVER 2005数据库中,不可为空的timestamp类型在 ...
- C#当中的泛型和java中的对比
1.C#中的泛型 先写一个Demo: namespace generic { public class Program { static ...
随机推荐
- jQuery $ 第二个参数的用法
jQuery(selector, [context]),相当于 $(context).find(selector) 或者 context.find(selector) $('div').each(fu ...
- sprint2总结
在sprint第二阶段的学习过程中,前期和后期在学校网络的支持下我们成功的延迟了把代码上传github的时间,在我们自己感觉上看,完成项目的质量比较理想,在经过sprint第一阶段的学习后,部分上的问 ...
- 常用数据存储集合与Map
一.常见的数据存储实现 二.遍历 1.集合 新循环 迭代器 Iterator Iterator<?> it = C.iterator(); // 问.取.删 it.hasNext() ...
- python垃圾回收机制的一些理解
概览: 主要通过 引用计数来进行垃圾收集, 就是说,当一个对象没有被其他对象引用的时候,会释放掉内存. 但是会有一些循环引用的对象,通过上面的方法,是没有办法清除掉的.所以,pyt ...
- 第三篇:白话tornado源码之请求来了
上一篇<白话tornado源码之待请求阶段>中介绍了tornado框架在客户端请求之前所做的准备(下图1.2部分),本质上就是创建了一个socket服务端,并进行了IP和端口的绑定,但是未 ...
- 合并分区(merge range)对事务日志的影响
分区维护作业执行失败,错误信息如下:数据库 'XXX' 的事务日志已满.若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列. [S ...
- jqurey datatable tableTools 自定义button元素 以及按钮自事件
版本 1.10.4 "dom": 'T<"clear">lfrtip', "tableTools": { //"sSw ...
- python csv用法
csv打开文件的时候,如下代码,出错: import csv name = "D:\\selenium\\data\\name.csv" inf= csv.reader(open( ...
- IntelliJ IDEA 12 与 Tomcat7 配置
IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.各类版本工具( ...
- JOIN,WHERE判断和ORDERBY排序
MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小. 如果重复代码只是 ...