-1
私のアプリケーションでは、記入する必要があり、内部に入力されたものをBookJという名前の.sqliteテーブルに挿入する必要があります。TextFieldsからSQLiteデータベースにデータを挿入するには?
Connection connection = null;
import java.sql.*;
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class PopulateTables extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
PopulateTables frame = new PopulateTables();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
Connection connection = null;
private JTextField textFieldSName;
private JTextField textFieldSSName;
private JTextField textFieldAName;
private JTextField textFieldASName;
private JTextField textFieldBookT;
private JTextField textFieldGenre;
private JTextField textField;
/**
* Create the frame
*/
public PopulateTables() {
connection = SqlConnection.dbConnector1();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(350, 350, 700, 550);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
tabbedPane.setBounds(6, 43, 688, 479);
contentPane.add(tabbedPane);
JPanel panel = new JPanel();
tabbedPane.addTab("New Reading Journal Entry", null, panel, null);
panel.setLayout(null);
JLabel lblYourName = new JLabel("Your Name: ");
lblYourName.setBounds(77, 26, 91, 16);
panel.add(lblYourName);
textFieldSName = new JTextField();
textFieldSName.setBounds(46, 46, 151, 37);
panel.add(textFieldSName);
textFieldSName.setColumns(10);
JLabel lblYourSurname = new JLabel("Your Surname: ");
lblYourSurname.setBounds(67, 95, 130, 16);
panel.add(lblYourSurname);
textFieldSSName = new JTextField();
textFieldSSName.setColumns(10);
textFieldSSName.setBounds(46, 113, 151, 37);
panel.add(textFieldSSName);
JLabel lblAuthorsFirstName = new JLabel("Author's First Name:");
lblAuthorsFirstName.setBounds(465, 26, 161, 16);
panel.add(lblAuthorsFirstName);
JLabel lblAuthorsLastName = new JLabel("Author's Last Name:");
lblAuthorsLastName.setBounds(465, 95, 161, 16);
panel.add(lblAuthorsLastName);
textFieldAName = new JTextField();
textFieldAName.setColumns(10);
textFieldAName.setBounds(461, 46, 151, 37);
panel.add(textFieldAName);
textFieldASName = new JTextField();
textFieldASName.setColumns(10);
textFieldASName.setBounds(461, 113, 151, 37);
panel.add(textFieldASName);
JLabel lblTitleOfBook = new JLabel("Title of Book: ");
lblTitleOfBook.setBounds(67, 188, 91, 16);
panel.add(lblTitleOfBook);
textFieldBookT = new JTextField();
textFieldBookT.setBounds(46, 216, 151, 37);
panel.add(textFieldBookT);
textFieldBookT.setColumns(10);
JLabel lblGenre = new JLabel("Genre:");
lblGenre.setBounds(77, 276, 61, 16);
panel.add(lblGenre);
textFieldGenre = new JTextField();
textFieldGenre.setColumns(10);
textFieldGenre.setBounds(46, 304, 151, 37);
panel.add(textFieldGenre);
JLabel lblEntrywriteA = new JLabel("Write a couple words about what you thought");
lblEntrywriteA.setBounds(323, 188, 303, 16);
panel.add(lblEntrywriteA);
JLabel lblNewLabel = new JLabel("the book was like:");
lblNewLabel.setBounds(323, 202, 289, 16);
panel.add(lblNewLabel);
textField = new JTextField();
textField.setBounds(323, 221, 289, 120);
panel.add(textField);
textField.setColumns(10);
JButton btnEnter = new JButton("Enter ");
btnEnter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String journalquery = "insert into BookJ (StudentFirst, StudentLast, TitleOfBook, AuthorFirst, AuthorLast, Genre, Entry) values (?, ?, ?, ?, ?, ?, ?)";
PreparedStatement journal = connection.prepareStatement(journalquery);
journal.setString(1, textFieldSName.getText());
journal.setString(2, textFieldSSName.getText());
journal.setString(3, textFieldBookT.getText());
journal.setString(4, textFieldAName.getText());
journal.setString(5, textFieldASName.getText());
journal.setString(6, textFieldGenre.getText());
journal.setString(7, textField.getText());
journal.executeQuery();
JOptionPane.showMessageDialog(null, "Entry Saved!");
}
catch(Exception e3){
JOptionPane.showMessageDialog(null, e3);
}
}
});
btnEnter.setBounds(273, 378, 117, 29);
panel.add(btnEnter);
JPanel panel_1 = new JPanel();
tabbedPane.addTab("New Book Recommendation", null, panel_1, null);
}
}
:「クエリが結果を返さないjava.sql.SQLExceptionの」ここ
は、私のコードのサンプルは、私が以前に学習方法を使用し、代わりに私はエラーを取得したいものを得るのです
長いコードで申し訳ありませんが、私は絶対にすべてを含める必要があると思います。ところで、私の実際の.sqliteデータベースへの接続は正しいですし、常に動作します(別のクラスにあります)。そこにResultSetが必要ですか?もし私がしたら、どうすれば使えますか?
ありがとうございます!ここで
は、スタックトレースです:
java.sql.SQLException: Query does not return results
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeQuery(JDBC3PreparedStatement.java:68)
at version1.PopulateTables$2.actionPerformed(PopulateTables.java:149)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
はありがとうございました! –