接続の問題(JTextfield、Jtable、SQLデータベース)

ウォンジュンホ

私はJAVA、SQLを勉強しているjunhoです。

今、私はこの以下の問題に苦しんでいます。

まず、このフィールドに20020202を入力しようとすると、予期しないデータ型に関するエラーが発生しました。しかし、番号を「日付」に変更する方法がわかりません

次に、JTableメソッドを作成してこの以下の部分に入力する方法がわかりません。

                    while (resultSet.next()) {
                        Vector row = new Vector(columns);
                        for (int i = 1; i <= columns; i++) {
                            row.addElement(resultSet.getObject(i));
                        }
                        data.addElement(row);
                    }

以下のコードを入れないと、

DefaultTableModel model = new DefaultTableModel(data, columnNames);
JTable table1 = new JTable(model);
table1.setColumnSelectionAllowed(true);
table1.setCellSelectionEnabled(true);

JScrollPane scrollPane = new JScrollPane(table1);        
scrollPane.setBounds(10, 53, 600, 200);
addGrid(gbl,gbc,scrollPane,0,4,2,3,0,0);

テーブルが表示されません。

だから、私はこの問題を解決する方法を考えています。私の英語のライティングスキルは良くありません。だから、それはあなたにとって十分な情報にはならないでしょう。誰かが私にアドバイスをくれたらいいのにと思います。

これは私が書いたコード全体です。私が苦労していることを理解するのに役立つことを願っています。どうもありがとうございます。


import java.awt.Component;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;

public class DbPanel extends JPanel{



public DbPanel() {

    Vector columnNames = new Vector();
    Vector data = new Vector();
    JPanel panel = new JPanel();   //
    JPanel panel2 =new JPanel();


    GridBagLayout gbl = new GridBagLayout();
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.fill = GridBagConstraints.BOTH;
    setLayout(gbl);


    //DB 관리
/*      String url = "jdbc:oracle:thin:@localhost:1521:xe";
    String user = "madang";
    String password = "madang";

    try {
        Class.forName("oracle.jdbc.driver.OracleDriver"); 
        Connection con = DriverManager.getConnection(url, user, password);
        String sql = "select * from STOCK_INFO order by DATE_STOCK";
        Statement statement = con.createStatement();
        ResultSet resultSet = statement.executeQuery(sql);
        ResultSetMetaData metaData = resultSet.getMetaData();
        int columns = metaData.getColumnCount();
        for (int i = 1; i <= columns; i++) {
            columnNames.addElement(metaData.getColumnName(i));
        }
        while (resultSet.next()) {
            Vector row = new Vector(columns);
            for (int i = 1; i <= columns; i++) {
                row.addElement(resultSet.getObject(i));
            }
            data.addElement(row);
        }
        resultSet.close();
        statement.close();
    } catch (Exception e) {
        System.out.println(e);
    }*/
    //DB 끝


     JLabel label = new JLabel("start_date");
        addGrid(gbl,gbc,label,0,0,1,1,0,0);

        JTextField textfield = new JTextField(8);
        addGrid(gbl,gbc,textfield,0,1,1,1,0,0);


        JLabel label2 = new JLabel("end_date");
        addGrid(gbl,gbc,label2, 2,0,1,1,0,0);
        JTextField textfield2 = new JTextField(8);
        addGrid(gbl,gbc,textfield2, 2,1,1,1,0,0);

        JButton btn = new JButton("search");
        addGrid(gbl, gbc, btn, 2, 4, 1, 3, 0, 0);


        JLabel lblNewLabel = new JLabel("Stock_database");
        lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
        lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 14));
       /* lblNewLabel.setBounds(10, 11, 927, 31);*/
        addGrid(gbl,gbc,lblNewLabel,0,3,4,1,1,0);

        DefaultTableModel model = new DefaultTableModel(data,                 columnNames);
        JTable table1 = new JTable(model);
        table1.setColumnSelectionAllowed(true);
        table1.setCellSelectionEnabled(true);

        JScrollPane scrollPane = new JScrollPane(table1);        
        scrollPane.setBounds(10, 53, 600, 200);
        addGrid(gbl,gbc,scrollPane,0,4,2,3,0,0);

        btn.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {

                String url = "jdbc:oracle:thin:@localhost:1521:xe";
                String user = "madang";
                String password = "madang";

                try {
                    Class.forName("oracle.jdbc.driver.OracleDriver"); 
                    Connection con = DriverManager.getConnection(url,     user, password);
                    String sql = "select * from stock_info     between"+textfield.getText()+"and"+textfield2.getText();
                    Statement statement = con.createStatement();
                    ResultSet resultSet = statement.executeQuery(sql);
                    ResultSetMetaData metaData = resultSet.getMetaData();
                    int columns = metaData.getColumnCount();
                    for (int i = 1; i <= columns; i++) {
                        columnNames.addElement(metaData.getColumnName(i));
                    }
                    while (resultSet.next()) {
                        Vector row = new Vector(columns);
                        for (int i = 1; i <= columns; i++) {
                            row.addElement(resultSet.getObject(i));
                        }
                        data.addElement(row);
                    }
                    resultSet.close();
                    statement.close();
                } catch (Exception e1) {
                    System.out.println(e1);
                }


            }
        });



/*          TableColumn column;
        for (int i = 0; i < table1.getColumnCount(); i++) {
            column = table1.getColumnModel().getColumn(i);
            column.setMaxWidth(250);
        }*/




}

private void addGrid(GridBagLayout gbl, GridBagConstraints gbc, Component c, int gridx, int gridy, int gridwidth, int gridheight, int weightx, int weighty) {
    gbc.gridx = gridx;
    gbc.gridy = gridy;
    gbc.gridwidth = gridwidth;
    gbc.gridheight = gridheight;
    gbc.weightx = weightx;
    gbc.weighty = weighty;
    gbl.setConstraints(c, gbc);
    add(c);
}


}    
camickr

まず、このフィールドに20020202を入力しようとすると、予期しないデータ型に関するエラーが発生しました。しかし、番号を「日付」に変更する方法がわかりません

文字列の日付を年、月、日の値に解析します。次に、Calendarオブジェクトを作成できます。

Calendar date = new Calendar(...);

Calendarオブジェクトを取得したら、次を使用してSQLDateを作成できます。

Date sqlDate = new Date( date.getTimeInMillis() );

java.util.Dateクラスではなく、java.sql.Dateクラスを使用する必要があることに注意してください。

テーブルが表示されません。

モデルの作成時に列が空であるため、テーブルは表示されません。有効なデータを取得したら、モデルを作成する必要があります。

したがって、コードは次のようになります。

//DefaultTableModel model = new DefaultTableModel(data, columnNames);
//JTable table1 = new JTable(model);
JTable table1 = new JTable(); // create empty table to add to scroll pane

次に、ResultSetからデータを取得した後、モデルを作成してテーブルに割り当てることができます。

resultSet.close();
statement.close();

DefaultTableModel model = new DefaultTableModel(data, columnNames);
table1.setModel( model );

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Codeigniterリモートデータベース接続の問題

分類Dev

Tomcat-データベース接続プールの問題

分類Dev

PHPとの基本的なデータベース接続の問題

分類Dev

CodeigniterでのRESTAPIデータベース接続の問題

分類Dev

phpMyAdminMySQLデータベースへの接続の問題

分類Dev

Laravel 7 sanctumデータベース接続の問題

分類Dev

データベースXAMPP接続の問題

分類Dev

PostgreSQLECPGデータベース接続の問題

分類Dev

PySparkCassandraデータベース接続の問題

分類Dev

SQLServerデータベース接続の問題

分類Dev

CodeigniterMySqlデータベース接続の問題

分類Dev

SQLiteデータベース接続の問題

分類Dev

C ++ Qt sqlliteデータベース接続の問題

分類Dev

接続データベースの問題

分類Dev

ローカルSQLServer CEデータベースへの接続の問題?

分類Dev

PowershellSQLサーバーデータベースの接続と接続タイムアウトの問題

分類Dev

Spring Batch-Postgresデータベースへの接続の問題

分類Dev

RODBCを使用したOracleデータベースへの接続の問題

分類Dev

DockerLinuxコンテナでのデータベース接続の問題

分類Dev

laravel5.1のデータベースの問題に接続する

分類Dev

Wordpressのデータベースへの接続に関する問題

分類Dev

hybrisからmysqlデータベースへの接続の問題

分類Dev

Oracleデータベースへの接続に関するJUnitの問題

分類Dev

DockerComposeのデータベースへの接続に関する問題

分類Dev

AzureデータベースでのASP.NETデータベース接続の問題

分類Dev

Laravel5のデータベース接続に関する問題

分類Dev

uname/password を使用した DB2 データベース接続の問題

分類Dev

firebirdと.ibデータベース(Interbase)の接続に関する問題

分類Dev

VisualStudioでVB.NETを使用してローカルSQLデータベースに接続する際の接続文字列の問題

Related 関連記事

  1. 1

    Codeigniterリモートデータベース接続の問題

  2. 2

    Tomcat-データベース接続プールの問題

  3. 3

    PHPとの基本的なデータベース接続の問題

  4. 4

    CodeigniterでのRESTAPIデータベース接続の問題

  5. 5

    phpMyAdminMySQLデータベースへの接続の問題

  6. 6

    Laravel 7 sanctumデータベース接続の問題

  7. 7

    データベースXAMPP接続の問題

  8. 8

    PostgreSQLECPGデータベース接続の問題

  9. 9

    PySparkCassandraデータベース接続の問題

  10. 10

    SQLServerデータベース接続の問題

  11. 11

    CodeigniterMySqlデータベース接続の問題

  12. 12

    SQLiteデータベース接続の問題

  13. 13

    C ++ Qt sqlliteデータベース接続の問題

  14. 14

    接続データベースの問題

  15. 15

    ローカルSQLServer CEデータベースへの接続の問題?

  16. 16

    PowershellSQLサーバーデータベースの接続と接続タイムアウトの問題

  17. 17

    Spring Batch-Postgresデータベースへの接続の問題

  18. 18

    RODBCを使用したOracleデータベースへの接続の問題

  19. 19

    DockerLinuxコンテナでのデータベース接続の問題

  20. 20

    laravel5.1のデータベースの問題に接続する

  21. 21

    Wordpressのデータベースへの接続に関する問題

  22. 22

    hybrisからmysqlデータベースへの接続の問題

  23. 23

    Oracleデータベースへの接続に関するJUnitの問題

  24. 24

    DockerComposeのデータベースへの接続に関する問題

  25. 25

    AzureデータベースでのASP.NETデータベース接続の問題

  26. 26

    Laravel5のデータベース接続に関する問題

  27. 27

    uname/password を使用した DB2 データベース接続の問題

  28. 28

    firebirdと.ibデータベース(Interbase)の接続に関する問題

  29. 29

    VisualStudioでVB.NETを使用してローカルSQLデータベースに接続する際の接続文字列の問題

ホットタグ

アーカイブ