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);