我从一个表里读出了数据
表是这样的,有2个字段,分别是名字和类型,名字字段的数值是:奥迪A6、奥迪TT、宝马Z3、宝马Z4,类型字段的数值是,奥迪和宝马,也就是这4部车后边的类型
name type
奥迪A6 奥迪
奥迪TT 奥迪
宝马Z3 宝马
宝马Z4 宝马
然后我做查询,把这些数值放到一个ArrayList数组里
public ArrayList SelectAuTo(String jibie)
{
ArrayList al = new ArrayList();
Connection con=null;
ResultSet rs = null;
java.sql.PreparedStatement ps= null;
con=DB.db();
String sql="select * from AuTo where type=?";
try
{
ps= con.prepareStatement(sql);
ps.setString(1, type);
rs = ps.executeQuery();
while(rs.next())
{
BeanAuTo ba=new BeanAuTo();
ba.setName(rs.getString("name"));
ba.setType(rs.getString("type"));
al.add(ba);
然后在页面读取
<jsp:useBean id="sAuTo" scope="request" class="com.Auto.UseAuTo"/>
<%
String type="奥迪";
ArrayList al=sAuTo.SelectAuTo(type);
for(int i=0;i<al.size();i++)
{
BeanAuTo ba=(BeanAuTo)al.get(i);
%>
<tr>
<td style="font-size: 13px"><%=ba.getName()%></td>
<td style="font-size: 13px"><%=ba.getType()%></td>
</tr>
<%} %>
我的问题是,我要在页面进行判断分类显示,不是4个车名一起显示,是奥迪类型的显示在奥迪的大标题下,是宝马类型的显示在宝马的大标题下,我不想以直接负值(String type="奥迪";)这样的笨办法来实现。可是我用的ArrayList,一下就把所有的值全读出来了,我想判断一下,做一次查询即可。就是:
if(Type=="奥迪")
{……}
if(Type=="宝马")
{……}
请问应该如何判断,谢谢大家指教,小弟万分感激,谢谢!!!!
表是这样的,有2个字段,分别是名字和类型,名字字段的数值是:奥迪A6、奥迪TT、宝马Z3、宝马Z4,类型字段的数值是,奥迪和宝马,也就是这4部车后边的类型
name type
奥迪A6 奥迪
奥迪TT 奥迪
宝马Z3 宝马
宝马Z4 宝马
然后我做查询,把这些数值放到一个ArrayList数组里
public ArrayList SelectAuTo(String jibie)
{
ArrayList al = new ArrayList();
Connection con=null;
ResultSet rs = null;
java.sql.PreparedStatement ps= null;
con=DB.db();
String sql="select * from AuTo where type=?";
try
{
ps= con.prepareStatement(sql);
ps.setString(1, type);
rs = ps.executeQuery();
while(rs.next())
{
BeanAuTo ba=new BeanAuTo();
ba.setName(rs.getString("name"));
ba.setType(rs.getString("type"));
al.add(ba);
然后在页面读取
<jsp:useBean id="sAuTo" scope="request" class="com.Auto.UseAuTo"/>
<%
String type="奥迪";
ArrayList al=sAuTo.SelectAuTo(type);
for(int i=0;i<al.size();i++)
{
BeanAuTo ba=(BeanAuTo)al.get(i);
%>
<tr>
<td style="font-size: 13px"><%=ba.getName()%></td>
<td style="font-size: 13px"><%=ba.getType()%></td>
</tr>
<%} %>
我的问题是,我要在页面进行判断分类显示,不是4个车名一起显示,是奥迪类型的显示在奥迪的大标题下,是宝马类型的显示在宝马的大标题下,我不想以直接负值(String type="奥迪";)这样的笨办法来实现。可是我用的ArrayList,一下就把所有的值全读出来了,我想判断一下,做一次查询即可。就是:
if(Type=="奥迪")
{……}
if(Type=="宝马")
{……}
请问应该如何判断,谢谢大家指教,小弟万分感激,谢谢!!!!
Map map = new HashMap();
map.put("宝马",ArrayList);ArrayList放宝马对应的车的名字如宝马c3
map.put("蓝鸟",ArrayList);ArrayList放蓝鸟对应的车的名字如蓝鸟
对,使用这种方法,但是可能要面临的一个问题就是排序问题,楼主可以尝试一下comparable接口来实现。
SELECT name,type FROM AuTo ORDER BY type ASC
将查询结果放入Map
JDK的版本支持泛型
Map<String,List<String>> map = new LinkedHashMap<String,List<String>>();
不支持泛型
Map map = new LinkedHashMap();