首页 > 数据库技术 > 详细

java练习:GUIformysql

时间:2017-01-31 20:53:23      阅读:270      评论:0      收藏:0      [点我收藏+]

shell:

package shell;

import data.DataBase;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Vector;

/**
 * Created by xkfx on 2017/1/31.
 */

public class DBList extends JFrame implements ActionListener{

    JComboBox cmbDatabase = new JComboBox();
    JList lstTable = new JList();

    public DBList(){
        // 设置大小
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension screenSize = kit.getScreenSize();
        int screenHeight = screenSize.height;
        int screenWidth = screenSize.width;

        setSize(screenWidth/6 , screenHeight/2);
        setResizable(false);

        // 设置位置
        setLocationByPlatform(true);

        // 设置外观
        JScrollPane sp = new JScrollPane(lstTable);

        setLayout(new BorderLayout());

        add(cmbDatabase , BorderLayout.NORTH);
        add(sp , BorderLayout.CENTER);

        // 添加数据库名称到comboBox
        Connection cn = null;
        Statement st = null;
        ResultSet rs = null;
        try{
            cn = DataBase.getConnection();
            st = cn.createStatement();
            rs = st.executeQuery("show Databases");

            while(rs.next()){
                cmbDatabase.addItem(rs.getString(1));
        }
        }catch(Exception e){}
        finally {
            try{
                rs.close();
                st.close();
                cn.close();
            }catch (Exception e){}
        }

        // 注册事件监听
        cmbDatabase.addActionListener(this);

    }

    // 单元测试
    public static void main(String[] args){
        EventQueue.invokeLater(() -> {
            JFrame w = new DBList();
            w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            w.setVisible(true);
        });
    }

    @Override
    public void actionPerformed(ActionEvent event) {
        String selectDBName = cmbDatabase.getSelectedItem().toString();
        // 向Db发送请求, 获取表集合, 并在list上显示
        Connection cn = null;
        Statement st = null;
        ResultSet rs = null;
        String request = null;
        ArrayList<String> table = new ArrayList<>();
        try{
            cn = DataBase.getConnection();
            st = cn.createStatement();
            request = "show tables from " + selectDBName;
            rs = st.executeQuery(request);

            while(rs.next()){
                table.add(rs.getString(1));
            }
            String[] temp = new String[table.size()];
            table.toArray(temp);
            lstTable.setListData(temp);
        }catch(Exception e){}
        finally {
            try{
                rs.close();
                st.close();
                cn.close();
            }catch (Exception e){}
        }
    }
}

data:

package data;

import java.sql.*;

/**
 * Created by xkfx on 2017/1/31.
 */
public class DataBase {

    // 获取connection的两种静态方法
    public static Connection getConnection(String dbName){
        Connection cn = null;
        try{
            Class.forName("org.gjt.mm.mysql.Driver");
            cn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/" + dbName, "root", "19971019");
        }catch (Exception e){ }
        return cn;
    }

    public static Connection getConnection(){
        return getConnection("");
    }


    // unit test
    public static void main(String[] args){
        Connection cn = null;
        Statement st = null;
        ResultSet rs = null;
        try{
            cn = DataBase.getConnection();
            st = cn.createStatement();
            rs = st.executeQuery("show Databases");

            while(rs.next()){
                System.out.println(rs.getString(1));
            }
        }catch(Exception e){}
        finally {
            try{
                rs.close();
                st.close();
                cn.close();
            }catch (Exception e){}
        }
    }
}

 

遇到的问题:

1、确保导入mysql-connector-java-xxxx-bin.jar

2、sql语句容易出错,例如在组合String的时候漏掉空格

3、设置jlist的方法有很多种,具体参考api

未完成待更新。。。

java练习:GUIformysql

原文:http://www.cnblogs.com/xkxf/p/6359047.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!