Bạn nên gọi phương thức executeUpdate()
trên đối tượng câu lệnh.
Ngoài ra, tôi không thấy bất kỳ cuộc gọi nào để xác nhận dữ liệu, bất kỳ xử lý giao dịch nào. Sẽ tốt nếu bạn bỏ qua đoạn mã đó cho mục đích của câu hỏi này; nếu không thì đó là một bước khá quan trọng (cam kết nếu mọi việc suôn sẻ, khôi phục cho các trường hợp ngoại lệ)