#java #mysql #swing #jdbc
#java #mysql #swing #jdbc
Вопрос:
Запрос на обновление и запрос на удаление не работают, только select и insert.
public static void updateQuery(String date) throws SQLException{
String query = "update parks set flag=? where nick=? and day=?";
PreparedStatement ps = mia.connect.prepareStatement(query);
ps.setString(1,"y");
ps.setString(2,user.getNickname());
ps.setDate(3, Date.valueOf(date));
ps.executeUpdate();
}
public static void deleteQuery(String date) throws SQLException{
String query = "delete from parks where nick=? and day=?";
PreparedStatement ps = mia.connect.prepareStatement(query);
ps.setString(1,user.getNickname());
ps.setDate(2, Date.valueOf(date));
ps.execute();
}
public static void insert(int id_park,int weightTrip,LocalDate date,int during,int time) throws SQLException{
// take the price
int fullPrice = calculatePrice(id_park);
frullPrice = fullPrice*during;
String query = "insert into parks(numberID,nick,idpark,price,during,time,day,weithtrip,flag) "
"values (?,?,?,?,?,?,?,?,?)";
PreparedStatement ps = mia.connect.prepareStatement(query);
Random rand = new Random();
int value = 0;
value = rand.nextInt((999 - 1) 1) 1;
ps.setInt(1,value);
ps.setString(2,user.getNickname());
ps.setInt(3,id_park);
ps.setInt(4,fullPrice);
ps.setInt(5,during);
ps.setInt(6,time);
ps.setDate(7, Date.valueOf(date));
ps.setInt(8,weightTrip);
ps.setString(9,"n");
ps.execute();
}
это ActionListener на кнопке, которая вызывает процедуру. (
удаление то же самое, но вместо «DBOperations.updateQuery» есть «DBOperation.deleteQuery’)
submitButton.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
try {
DBOperations.updateQuery(dateOfThePayment);
JOptionPane.showMessageDialog(this,"thanks !");
} catch (SQLException e2) {
e2.printStackTrace();
}
}
});
this is the table :
create table parks (
numberID integer not null,
nick varchar(10) not null,
idpark int not null,
price int,
during int,
time int,
day date,
weighttrip int,
flag varchar(1),
)
Эти запросы не дают мне никаких ошибок. Проблема в том, что они не выполняют свою работу.
Если я выполняю тот же запрос в командной строке, они работают хорошо.
Комментарии:
1. что находится
mia
в вашем подготовленном заявлении, а также в вашем запросе на обновлениеdatePay
?2. И в вашем запросе на удаление
ps.executeUpdate()
вместоps.execute()
3. Покажите нам
select
иinsert
, которые, как вы утверждаете, работают, и покажите нам определение таблицы, тоcreate table
есть .4. mia — это имя переменной. переменная является объектом соединения (одноэлементным). извините, я не упомянул об этом. и дата оплаты была ошибкой при написании вопроса на сайте.
5. Можете ли вы объяснить подробнее » Проблема в том, что они не выполняют свою работу».. Вы уверены, что не перехватываете исключение и / или не откатываете транзакцию? В том, что мы видим, нет try / catch. Трудно сказать без части, которая вызывает эти методы.