Sqlite 中带有 java 项目的 SQL 错误或缺少数据库(靠近“(”:语法错误))?

问题描述 投票:0回答:0

我正在尝试使用内存数据库 SQLite 填充 jtable 但发生了一些语法错误,我不知道我的查询中的错误在哪里。所以有人帮助我解决错误原因并解决这个问题。

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;

public class Databaseh2 extends javax.swing.JFrame {

    DefaultTableModel dtm;

    public Databaseh2() {
        initComponents();
        BOMTableLoad();
    }

    public static ArrayList<BOMUser> BOMUserList1() {
        ArrayList<BOMUser> userlist = new ArrayList<>();
        BOMUser bom;
        try {
            Statement st = DataBase.mycon().createStatement();
            

String sql = "select row_number()over (order by

Item
) as
Sno
,
Item
,
Description
," +“
Manufacturer Part Number
Value
Component Reference
FootPrint
Qty
来自
bom
”;

            ResultSet rs = st.executeQuery(sql);

            while (rs.next()) {
                bom = new BOMUser(rs.getInt("Sno"), rs.getString("Item"),
                        rs.getString("Description"), rs.getString("Manufacturer Part Number"),
                        rs.getString("Value"), rs.getString("Component Reference"),
                        rs.getString("FootPrint"), rs.getInt("Qty"));

                userlist.add(bom);

            }
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println(e);
        }
        return userlist;
    }

    private void BOMTableLoad() {
        ArrayList<BOMUser> list = BOMUserList1();
        dtm = (DefaultTableModel) BOMT.getModel();
        dtm.setRowCount(0);
        BOMT.setRowSorter(null);
        Object[] row = new Object[8];
        for (int i = 0; i < list.size(); i++) {
            row[0] = list.get(i).getSno();
            row[1] = list.get(i).getItem();
            row[2] = list.get(i).getDescription();
            row[3] = list.get(i).getManufacturerPartNumber();
            row[4] = list.get(i).getValue();
            row[5] = list.get(i).getComponentReference();
            row[6] = list.get(i).getFootPrint();
            row[7] = list.get(i).getQty();

            dtm.addRow(row);
        }
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        SP = new javax.swing.JScrollPane();
        BOMT = new table.Table();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        BOMT.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null}
            },
            new String [] {
                "S No", "Item", "Description", "Manufacturing Part Number", "Value", "Component Reference", "FootPrint", "QTY"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        SP.setViewportView(BOMT);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 1033, Short.MAX_VALUE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(SP, javax.swing.GroupLayout.DEFAULT_SIZE, 1021, Short.MAX_VALUE)
                    .addContainerGap()))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 553, Short.MAX_VALUE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(SP, javax.swing.GroupLayout.DEFAULT_SIZE, 541, Short.MAX_VALUE)
                    .addContainerGap()))
        );

        pack();
    }// </editor-fold>                        

    public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Databaseh2().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private table.Table BOMT;
    private javax.swing.JScrollPane SP;
    // End of variables declaration                   
}
java sql sqlite in-memory-database
© www.soinside.com 2019 - 2024. All rights reserved.