Я посмотрел на все rnet, пытаясь понять это. Каждый раз, когда я запускаю свой код, он создает новую пустую базу данных на моем рабочем столе вместо подключения к базе данных, которую я уже настроил. Я приложил и файл подключения, и файл входа в систему, и я скачал все необходимые jar-файлы к ним, и добавил их в указанный библиотечный файл, я, честно говоря, не могу понять, что еще мне не хватает. Когда я запускаю код, я получаю сообщение об ошибке «org.sqlite.SQLiteException: [SQLITE_ERROR] SQL ошибка или отсутствует база данных (нет такой таблицы: пользователи)». Также я использую mysql -connection.jar, который работать на sqlite?
import java.sql.*;
import javax.swing.*;
public class sqliteConnection {
Connection conn=null;
public static Connection dbConnector() {
try {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\Marissa Stevens\\Desktop\\Movies 'R' Us! DB.db");
JOptionPane.showMessageDialog(null, "Connection Successful");
return conn;
} catch(Exception e) {
JOptionPane.showMessageDialog(null, e);
return null;
}
}
}
import java.awt.EventQueue;
import javax.swing.JFrame;
import java.sql.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Login {
private JFrame frame;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Login window = new Login();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
Connection connection = null;
private JTextField textField;
private JPasswordField passwordField;
/**
* Create the application.
*/
public Login() {
initialize();
connection = sqliteConnection.dbConnector();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JLabel lblNewLabel = new JLabel("Login Page");
lblNewLabel.setBounds(187, 27, 69, 14);
frame.getContentPane().add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("Username:");
lblNewLabel_1.setBounds(46, 87, 69, 14);
frame.getContentPane().add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel("Password:");
lblNewLabel_2.setBounds(46, 135, 69, 14);
frame.getContentPane().add(lblNewLabel_2);
textField = new JTextField();
textField.setBounds(125, 84, 96, 20);
frame.getContentPane().add(textField);
textField.setColumns(10);
passwordField = new JPasswordField();
passwordField.setBounds(125, 135, 96, 20);
frame.getContentPane().add(passwordField);
JButton btnNewButton = new JButton("Click to login");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String query = "select * from Users where Username=? and Password=? ";
PreparedStatement pst = connection.prepareStatement(query);
pst.setString(1, textField.getText());
pst.setString(2, passwordField.getText());
ResultSet rs = pst.executeQuery();
int count = 0;
while(rs.next()) {
count = count+1;
}
if(count==1) {
JOptionPane.showMessageDialog(null, "User info are correct");
}
else if(count>1) {
JOptionPane.showMessageDialog(null, "User info are duplicated");
}
else {
JOptionPane.showMessageDialog(null, "User info is not correct. Make sure that all fields are typed correctly without error and try again.");
}
rs.close();
pst.close();
}catch(Exception e1) {
JOptionPane.showMessageDialog(null, e1);
}
}
});
btnNewButton.setBounds(125, 194, 112, 23);
frame.getContentPane().add(btnNewButton);
}
}