Java学习笔记(2)

来源:互联网 发布:苹果狙击镜软件 编辑:程序博客网 时间:2024/06/17 17:39

1.泛型

泛型两点:    1).解决元素存储的安全性问题    2).解决获取数据袁术时,需要强转的问题Map遍历:    Map<Obejct a, Obejct b> map = new HashMap<Obejct a, Obejct b>();    Set<Map.Entry<a, b>> set = map.entrySet();    for(Map.Entry<a, b> o : set)        o.getKey() + o.getValue();List遍历:    List<Obejct a> list = new ArrayList()<>;    Iterator<Obejct a> it = list.ierator();    while(it.hasNext()){        it.next();    }泛型方法:    public <E> E getE(E e){        return e;    }泛型类:    public Class A<T>{        private T t;    }    不可以在静态中声明泛型通配符:list<A>,list<B>是list<?>的子类,不可向通配符写入元素(null除外),但是可以读static:    在static不依赖对象就可被调用,不能有thisList<Map<String, Obejct>> list遍历:    for(Map<String, Obejct> map : list)    {        for(Map.Entry<String, Obejct> o : map.entrySet())        {        }    }   

2.ResultSetMetaData:在只有一个结果集但不知道有多少列时使用它

1).得到ResultSetMetaData对象:    调用ReultSet的getMetaData()方法2).getColumnCount()可以得到总共列数3).getColumnLabel(int column)获取指定的列的别名(记住是类的别名),索引从1开始    注:rs.next()是纵向,getClumn是横向

3.DAO:Data Access Obejct 数据访问对象

1).访问数据信息的类,包含了增删改查(CRUD)而不包括任何业务相关的信息2).实现了功能的模块化,更有利于代码的维护和升级3).DAO可以子类继承或适用

4.BeanUtils

1.BeanUtils.setProperty(Obejct obj, String name, Obejct value)  让obj的name属性的值设为value2.BeanUtils.getProperty(Obejct obj, String name)  返回obj对象中name属性的值,类型为Object3.环境搭建:logging  beanutils4.适用于反射,注:要保证 id 的方法要为 getId 和 setId

5.元数据:描述数据的数据,主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

DatabaseMetaData 描述数据库的元数据对象/了解

6.PreparedStatement(sql, flag) flag = Statement.RETURN_GENERATED_KEYS
PreparedStatement.getGeneratedKey() 获取新生成主键的对象
GENERATED_KEY 用于存放新生成的主键值
7.关于往数据库存入图片 LOB : 大对象 Large Obejcts

Oracle:    1. BLOB (二进制数据)    2. CLOB (单字节字符数据)    3. NCLOB(多字节字符数据)MySql:    1. TinyBlob     255(字节)    2. BLOB         65K    3. MediumBlob   16M    4. LongBlob     4G插入图片注意事项:    1.插入BLOB类型必须适用PreparedStatement    2.InputStream in = new FileInputStream("xxx");    3.pre.setBlob(1, in);获取图片注意事项:    1.Blob pic = rs.getBlob(4);    2.InputStream in = pic.getBinaryStream();    3.OutputStream out = new FileOutputStream("xxx");    4.byte[] buffer = new byte[1024];    5.int len = 0;    6.while((len = in.read(buffer)) != -1){        out.write(buffer, 0, len);        }
原创粉丝点击