老实说,没有看懂要作什么 是不是三个下拉框分别是省、市、县,对应的编码分别是aa、bb、cc,三级联动下拉框? 我不知道你的数据库是怎么做的, 我通常用数据字典,把省级列位aa0000,市级列为aabb00,县级列为aabbcc, 如果你的动态加载已经解决,那就是先选省下拉框,select * form table where code like 'aa__00',加载市级数据,再选择市级下拉框,select * form table where code like 'aabb__'加载县级数据,完成!
public class Hello { public List[] getList(String c) { List list1 = new ArrayList(); List list2 = new ArrayList(); List list3 = new ArrayList(); try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); Connection cnn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=xincheng;user=sa;password=111111;"); Statement st=cnn.createStatement(); String sql = "select uint_code,uint_name from GAB_UINT_DICT_DATA where uint_code like '"+c+"%'"; ResultSet rs=st.executeQuery(sql);
List plist2 = new ArrayList(); //用来存放县的code
String p1 = list1.toString(); //省
String p2 = list2.toString(); //市
String p3 = list3.toString(); //县
try
{
Conn con = new Conn();
String sql = "select * from GAB_UINT_DICT_DATA where uint_name like '"+p1+"%'";
ResultSet rs = con.getRs(sql);
while(rs.next())
{
String ucode = rs.getString(2);
String uname = rs.getString(3);
for(int i=0;i<list2.size();i++)
{
String s1 = list2.get(i).toString();
if(uname.indexOf(s1)!=-1)
{
String subucode = ucode.substring(2,4);
plist1.add(subucode); }
}
for(int j=0;j<list3.size();j++)
{
String s2 = list3.get(j).toString();
if(uname.indexOf(s2)!=-1)
{
String subucode = ucode.substring(4,6);
plist2.add(subucode); }
}
}
con.close();
}
这是我的代码
是不是三个下拉框分别是省、市、县,对应的编码分别是aa、bb、cc,三级联动下拉框?
我不知道你的数据库是怎么做的,
我通常用数据字典,把省级列位aa0000,市级列为aabb00,县级列为aabbcc,
如果你的动态加载已经解决,那就是先选省下拉框,select * form table where code like 'aa__00',加载市级数据,再选择市级下拉框,select * form table where code like 'aabb__'加载县级数据,完成!
另一个字段name就是安徽省肇阳市临泉县。
public List[] getList(String c) {
List list1 = new ArrayList();
List list2 = new ArrayList();
List list3 = new ArrayList();
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection cnn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=xincheng;user=sa;password=111111;");
Statement st=cnn.createStatement();
String sql = "select uint_code,uint_name from GAB_UINT_DICT_DATA where uint_code like '"+c+"%'";
ResultSet rs=st.executeQuery(sql);
// /*查询
while(rs.next()){
String ucode = rs.getString(1);
String uname = rs.getString(2);
for(int i = 0;i<uname.length();i++){
for(int j= 0;j<uname.length();j++)
for(int k = 0;k<uname.length();k++)
{
if(i>=5 ||j>=10||k>=15) break;
//有省市县的情况
if(uname.charAt(i)=='省' && uname.charAt(j)=='市' && uname.charAt(k)=='县')
{
String sheng = uname.substring(0,i+1);
list1.add(sheng);
String s = uname.substring(i+1,j+1);
list2.add(s);
String x = uname.substring(j+1,k+1);
list3.add(x);
break;
}
//只有省市或省县的情况
else if((uname.charAt(i)=='省' && uname.charAt(k)=='县'&& uname.charAt(j)!='市') || (uname.charAt(i)=='省' && uname.charAt(j)=='市'&& uname.charAt(k)!='县'))
{
String sheng = uname.substring(0,i+1);
list1.add(sheng);
if(uname.charAt(j)=='市'){
String s = uname.substring(i+1,j+1);
list2.add(s);
break;
}
if(uname.charAt(k)=='县'){
String x = uname.substring(i+1,k+1);
list3.add(x);
break;
}
break;
}
}
}
}
st.close();
cnn.close();
} catch (Exception ex) {
System.out.println("XXX");
ex.printStackTrace();
}
//过滤重复的省
for(int n = 0;n<list1.size();n++)
for(int m = list1.size()-1;m>n;m--){
String str = list1.get(n).toString();
if(str.equals(list1.get(m)))
list1.remove(m);
}
//过滤重复的市
for(int n = 0;n<list2.size();n++)
for(int m = list2.size()-1;m>n;m--){
String str = list2.get(n).toString();
if(str.equals(list2.get(m)))
list2.remove(m);
}
//过滤重复的县
for(int n = 0;n<list3.size();n++)
for(int m = list3.size()-1;m>n;m--){
String str = list3.get(n).toString();
if(str.equals(list3.get(m)))
list3.remove(m);
}
/*
for(int n = 0;n<list1.size();n++){
System.out.println("省:"+list1.get(n));
}
for(int n = 0;n<list2.size();n++){
System.out.println("市:"+list2.get(n));
}
for(int n = 0;n<list3.size();n++){
System.out.println("县:"+list3.get(n));
}
//System.out.println("省:"+sheng);
//System.out.println("市:"+s);
//System.out.println("县:"+x);
System.out.println("--------");
*/
//将省市县存入列表
List[] list=new List[3];
list[0]=list1;
list[1]=list2;
list[2]=list3;
return list;
}
public static void main(String args[])
{
}
}
while(rs.next()){
String ucode = rs.getString(1);
String uname = rs.getString(2);for(int i = 0;i<uname.length();i++){
for(int j= 0;j<uname.length();j++)
for(int k = 0;k<uname.length();k++)
{.......
4重循环,I服了U为什么不用list.add(map)结构或直接用sql语句查出来赋值
你要非要这样作就用一个Map 替代现在list里的string,
先map.put("code",代码);,再map.put("city",地名);
然后list.add(map);
这样你的地名和代码是一一对应的,你要非要用list.add(string)来作,就要把ArrayList();换成LinkedList,ArrayList不是队列,不会保持队形,然后再建个list直接存放代码