resultSet =query(sql);
Map<String, Object> result= new HashMap<String, Object>();
result.put(sql,?);//问号里要怎么写?
1、首先初始化一个map,然后按照代码依次打印Map的数据。
2、执行结果如下,可见打印结果并不是按插入顺序打印的。
3、将代码修改为LinkedHashMap,遍历LinkedHashMap。
4、打印结果为按Map插入顺序打印,可见LinkedHashMap中的数据是有序的,排序方式按照插入顺序。
5、最后将代码修改为new TreeMap,然后遍历TreeMap。
6、打印结果为自然顺序,即按字符串中的字母和数字的大小来排序,可见treeMap中的数据是有序的,按key的大小来排序。
jdbc
追答while(resultSet,hasNext()){
//依次取出查询的数据,如你的那句select name from user ;就这样写:
//String name = resultSet.getString(1) ;
map.put(sql,name) ;
}
如果是select * from user ;可能含有很多不同的字段,那要怎么写?是要map.put所有的字段吗?是一个key可以对应多个value吗?不好意思,麻烦了
追答如果是select * from user 那么 就要使用
String 字段1 = resultSet,getXXX(1) ;
String 字段2 = resultSet,getXXX(2) ;
String 字段3= resultSet,getXXX(3) ;
然后将字段封装成一个对象 在放入map中
这样的话是不是就要知道查询的表的结构,如果不知道,又或者要查的表的字段不同,是不是用map就不方便了?将字段封装成一个对象 在放入map中,这要怎么做?再次麻烦。
追答其实你的假设是不成立的,如果按照你说的那样,说明你的设计有问题,数据库的设计是很重要的,不存在你说的不清楚表的结构。在java中,与数据库表对应的类叫实体类,这些类的属性正与字段有这对应关系,就是用来封装查询结果的,看来这块你还需要加强啦。
本回答被提问者采纳