这个是数据库的设计

JAVA SQLServer 三级地址省市县的选择

这个是数据库表单的大致内容

JAVA SQLServer 三级地址省市县的选择

这个是创建的项目注意最下面需要引进数据库的相关jar文件库

JAVA SQLServer 三级地址省市县的选择

package com;

/**

 * 三级地址的制作,省市县的下拉菜单的制作,表单较为简单

这个是利用数据库查询的三级联动地址

 * 属于本人随手练习,尚有许多改进之处后期再进行改进
 *@author  [email protected]  张先生
 *
 */

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import javax.swing.JComboBox;

public class MainFrame extends JFrame {
    JComboBox <String>provBox = new JComboBox<>();
    JComboBox <String>cityBox = new JComboBox<>();
    JComboBox <String>countryBox = new JComboBox<>();

    /**
     * Launch the application.
     */
    public static void main(String[] args) {        
                    MainFrame frame = new MainFrame();
                    frame.setVisible(true);                
    }

    
    public MainFrame() {
        setBounds(100, 100, 450, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        JPanel panel = new JPanel();
        getContentPane().add(panel, BorderLayout.SOUTH);
        panel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
        
        panel.add(provBox);        
        panel.add(cityBox);    
        provBox.addItemListener(new ItemListener() {
            
            
            public void itemStateChanged(ItemEvent arg0) {
                String province=(String)provBox.getSelectedItem();
                addCity(province);        
            }
        });
        panel.add(countryBox);
        cityBox.addItemListener(new ItemListener() {
            
            @Override
            public void itemStateChanged(ItemEvent e) {
                String city=(String) cityBox.getSelectedItem();
                addCountry(city);                
            }
        });
        addProv();
        
        JPanel panel_1 = new JPanel();
        getContentPane().add(panel_1, BorderLayout.CENTER);

    }
    
    void addProv(){
        List<String> list=new LinkedList<>();
        list=Dao.selectProvince();
        Iterator<String> it=null;
        it=list.iterator();
        while (it.hasNext()) {
            String string = (String) it.next();
            provBox.addItem(string);            
        }        
    }
    void addCity(String province){
        Iterator<String> it=null;        
        List<String> list=new LinkedList<>();
        cityBox.removeAllItems();
        
        list=Dao.selectCity(province);
        
        it=list.iterator();
        while (it.hasNext()) {
            String string = (String) it.next();
            cityBox.addItem(string);            
        }        
    }
    
    void addCountry(String city){
        Iterator<String> it=null;        
        List<String> list=new LinkedList<>();
        countryBox.removeAllItems();        
        list=Dao.selectCounty(city);        
        it=list.iterator();
        while (it.hasNext()) {
            String string = (String) it.next();
            countryBox.addItem(string);            
        }        
    }

}

package com;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.LinkedList;
import java.util.List;

public class Dao {
    
    public static List<String> selectProvince() {
        List<String> list=new LinkedList<String>();
        Connection conn=null;
        ResultSet rs=null;
        Statement sm=null;
        String sql=" select province from area group by province";
        conn=UtilDb.getConn();
        try {
            sm=conn.createStatement();
            rs=sm.executeQuery(sql);
            while(rs.next()){
                String province=rs.getString(1);
                list.add(province);                 
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            UtilDb.closeAll(rs, sm, conn);
        }
        return list;
    }
    
    public static List<String> selectCity(String province) {
        List<String> list=new LinkedList<String>();
        Connection conn=null;
        ResultSet rs=null;
        Statement sm=null;
        String sql=" select city from area where province='"+province+"' group by city";
        conn=UtilDb.getConn();
        try {
            sm=conn.createStatement();
            rs=sm.executeQuery(sql);
            while(rs.next()){
                String city=rs.getString(1);
                list.add(city);                 
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            UtilDb.closeAll(rs, sm, conn);
        }
        return list;
    }
    
    public static List<String> selectCounty(String city) {
        List<String> list=new LinkedList<String>();
        Connection conn=null;
        ResultSet rs=null;
        Statement sm=null;
        String sql=" select county from area where city='"+city+"' group by county";
        conn=UtilDb.getConn();
        try {
            sm=conn.createStatement();
            rs=sm.executeQuery(sql);
            while(rs.next()){
                String county=rs.getString(1);
                list.add(county);                 
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            UtilDb.closeAll(rs, sm, conn);
        }
        return list;
    }

}


package com;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class UtilDb {
    protected static String dbClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    protected static String url = "jdbc:sqlserver://127.0.0.1:1433";
    protected static String url1 = "jdbc:sqlserver://127.0.0.1:1433;database=Test";
    protected static String user = "sa";
    protected static String password = "12345678";
    
    public static Connection getConn() {
        Connection conn=null;
        try {
            Class.forName(dbClassName);
            if (conn == null) {
                conn = DriverManager.getConnection(url1, user, password);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }
    public static void closeAll(ResultSet rs, Statement sm, Connection conn) {

        try {
            if (rs != null) {
                rs.close();
            }
            if (sm != null) {
                sm.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (Exception e) {
        }
    }
    

}



相关文章: