仅以这篇文章作为自己知识的回顾,工作刚刚满半年。最近一直在写程序,测试程序。对于这段时间归纳为基础知识边做边学,程序bug越测越多。对于基础操作的来说数据库无疑是重点,来写写oracle的知识小结。
(1).oracle 语句的操作
1.创建表 根据旧表创建新表,create newtable as select * from oldtable where 1=2 ; (设置1=2,这个是个不成立的等式,这样可以避免拷贝数据到新表。只用表结构就可以了。)
2.创建序列,create sequence seq_table_id minvalue 1 maxvalue 99999999999999 start with 1 increment by 1 nocache;
3.varchar2() 存放的字段,例如varchar2(8),存放8个英文字符。存放中文字符:utf-8时,一个中文占三个字节;ZHS16GBK,一个中文占2个字节。所以一般可以存放4个中文。而nvarchar2(8),中英文都可放8个。在java读取长度时,转换为string后length的值,一个汉字,一个英文,标点,空格都为1.
4.oracle 分组查询,并且(distinct)去除重复的,select *,count(distinct tagid) from table group by tagid order by tagid desc,可以再查询,left join table /(select * from ***) on a.id=b.id 一类的写法,左连接或者右连接
4.1 oracle去重查询:
select distinct mid ,content,createdtime from t_mblog where wbid='"+wbid+"' order by createdtime desc
5.统计人数查询,比如(decode())男女人数: select sum(decode(sex,'男',1)) man ,sum(decode(sex,'女',1)) woman from (select * from usertable)
----------------------------更新--------------2013-6-7------------------------
6.联合查询,连接
如果table1的值有,但对应的table2中却没有与之对应的mmid,这样却查不出来table1的内容
(select mmid, count(mmid) tt from table2 group by mmid ) b on a.id = b.mmid
(select mmid, count(mmid) tt from table2 group by mmid) b on a.id = b.mmid
(select mmid, count(mmid) tt from table2 group by mmid) b on a.id = b.mmid
2.java 基础,读写数据流
public static void main(String[] args) { doReadFile(); doWriteFile(); } /** * 读入数据 */ public static void doReadFile(){ String file = "d:/write.txt"; try { //根据文件来读取实现读取流,File FileInputStream input = new FileInputStream(new File(file)); InputStreamReader in = new InputStreamReader(input); BufferedReader reader = new BufferedReader(in); String str=""; while((str=reader.readLine())!=null){ System.out.println(str); } reader.close(); in.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 往文件写入数据 */ public static void doWriteFile(){ String file = "d:/write.txt"; File wfile = new File(file); try { String str="cjplife"; //后面加入true,就是保留原有内容,在后面插入新的内容 FileOutputStream os = new FileOutputStream(wfile,true); os.write(str.getBytes()); os.close(); } catch (IOException e) { e.printStackTrace(); } }
2.采用jdbc查询,并且读取查询的数据,由于list,强制转换存放的是map集合,list循环跟iterator循环一样的
String sql="select * from table where status = 1"; List list = this.getJdbcTemplate().queryForList(sql); Iterator it = list.iterator(); while(it.hasNext()){ Map rs = (Map) it.next(); String name = rs.get("nickname").toString(); String school = rs.get("school").toString(); } //或者使用 for(int i=0;i<list.size();i++){ Map rs = (Map)list.get(i); String name = rs.get("nickname").toString(); String school = rs.get("school").toString(); }
---------------------------------------5月22日更新---------------------------------------------------------
3,采用jdbc分页原理,oracle有个默认的rownum,这个值可作为分页使用的依据。Hibernate分页也是采用这个原理。批量更新操作是,如果是虚拟列,不允许更新,所以根据Id来先查询再进行更新。
String sql = "select * from (select a.*,rownum rn from (select * from table where status =0 order by id ) a ) where rn<=100 and rn>0" String sql2="update ( select * from table where id in ( select id from (select a.*,rownum rr from (select * from table where status=0 order by id ) a ) where rr<=100 and rn>0 ) ) set status=1";
4.LinkedHashMap<K,V>和HashMap的使用
hashMap是无序存储数据的,根据keySet来循环时,会出现乱序读取数据,而LinkedHashMap则是按照序列来读取集合内的数据
Map<Integer,String> linkMap = new LinkedHashMap<Integer,String>(); linkMap.put(3,"cc"); linkMap.put(2,"cc"); linkMap.put(1,"cc"); //三种循环读取map元素形式 //entrySet循环 for(Entity<Integer,String> entry:linkMap.entrySet()){ System.out.println(entry.getKey()+":"+entry.getValue()); } //keyset循环 for(Integer key:linkMap.keySet()){ System.out.println(key+":"+linkMap.get(key)); } //迭代器 for(Iterator it = linkMap.keySet().iterator();it.hasNext()){ Object key = it.next(); System.out.println(key+":"+linkMap.get(key)); } //清空map集合的元素 newMap.remove(key); //清空StringBuffer里面的内容 StringBuffer strbuf=new StringBuffer("aaa"); strbuf.append("bbbb"); strbuf.setLength(0);
------------------------------5月28日更新--------------------------
循环对HashMap里面的值,按Value的值排序
/** * @方法 HashMap 按照value的double排序 * @author Cjp * */ public class MyCompare { public static void main(String[] args) { Map<String, Double> dMap= new HashMap<String, Double>(); dMap.put("C", 0.7756); dMap.put("J", 0.5025); dMap.put("P", 0.5324); dMap.put("W", 0.9864); dMap.put("H", 0.8756); System.out.println(map_Data); //添加到list里面去 List<Map.Entry<String, Double>> list_Map = new ArrayList<Map.Entry<String, Double>>(dMap.entrySet()); System.out.println(list_Map); Collections.sort(list_Map, new Comparator<Map.Entry<String, Double>>() { public int compare(Map.Entry<String, Double> o1, Map.Entry<String, Double> o2) { if ((o2.getValue() - o1.getValue())>0) return 1; else if((o2.getValue() - o1.getValue())==0) return 0; else return -1; } }); //循环list_map,取出里面的值 for(int i=0;i<list_Map.size();i++){ System.out.println(list_Map.get(i).toString()); Entry<String, Double> entry=list_Map.get(i); System.out.println(entry.getKey()+"###"+entry.getValue()); } } }
相关推荐
计算机网络原理基础知识点总结 计算机网络原理基础知识点总结是计算机网络领域的核心内容,本文对计算机网络原理基础知识点进行了系统的总结。下面是知识点的详细解释: 第 1 章 概述 * 速率比特是计算机中数据量...
模拟电子技术基础知识点总结 模拟电子技术基础知识点总结是电子技术的基础部分,包括半导体、二极管、三极管等基础知识点的总结。 一、半导体基础知识点: 1. 半导体的定义:半导体是一种导电能力介于导体和绝缘...
Java是一种广泛使用的面向对象的编程语言,其基础知识涵盖了多个方面,包括语法、面向对象特性、异常处理、多线程...以上只是Java基础知识的一个概述,每个话题都值得深入探讨和实践,不断学习和总结是提升技能的关键。
导游资格考试基础知识点总结1-5.pdf
2022导游资格证考试旅游基础知识点总结1借鉴.pdf
java基础知识点总结,适合面试前过一遍,有利于对知识进行巩固
2011年导游资格考试全国导游基础知识点总结1-4.doc
java基础知识点总结及面试问题java基础知识点总结及面试问题java基础知识点总结及面试java基础知识点总结及面试问题
java面试基础知识点总结
JAVA基础知识点总结
电子电路基础知识点总结.pdf
一、半导体基础知识 半导体是一种导电性能介于导体和绝缘体之间的物质,常见的半导体材料有硅(Si)和锗(Ge)。半导体具有光敏、热敏和掺杂特性。本征半导体是纯净无杂质的半导体,而杂质半导体则是通过在本征半导体中...
TypeScript基础知识点,自己总结的,免费,欢迎下载TypeScript基础知识点,自己总结的,免费,欢迎下载TypeScript基础知识点,自己总结的,免费,欢迎下载TypeScript基础知识点,自己总结的,免费,欢迎下载...
c#基础知识点大全,分条总结。另附winform,css,HTML知识点
《Android基础知识点总结》 Android开发是移动应用领域的重要组成部分,掌握其基础知识是成为合格Android开发者的第一步。本文将从快捷键使用、环境配置、UI界面设计等方面进行深入阐述。 一、快捷键操作 快捷键...