import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
public class VeriTabani
{
public static void main(String[] args) throws ClassNotFoundException, SQLException
{
Class.forName("com.mysql.jdbc.Driver");
String numara=JOptionPane.showInputDialog("Öğrenci no giriniz:");
String ad=JOptionPane.showInputDialog("Öğrenci adı:");
String soyad=JOptionPane.showInputDialog("Öğrenci soyadı:");
String bolum=JOptionPane.showInputDialog("Bölüm :");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:80/deneme","root","");
Statement ifade = conn.createStatement();
ifade.executeUpdate("Insert into ogrenci " + " (id , ad , soyad , bolum , numara)" + "values("+ad+"','"+soyad+"','"+bolum+"','"+numara+"')");
}
}
答案 0 :(得分:1)
您的insert语句列出了五列,但只提供了四个值。为id
提供值或从列列表中删除它。
答案 1 :(得分:1)
根据我的理解,id
不应该在查询中,因为它将由数据库设置。
您想插入5个(id,ad,soyad,bolum,numara)
个值,但只提供其中4个values(ad,soyad,bolum,numara)
。
此外,这与您的问题无关,但您应该使用PreparedStatement
:
PreparedStatement preparedStatement = conn.prepareStatement("INSERT INTO ogrenci(ad,soyad,bolum,numara) VALUES (?,?,?,?);");
preparedStatement.setString(1,ad);
preparedStatement.setString(2,soyad);
preparedStatement.setString(3,bolum);
preparedStatement.setString(4,numara);
preparedStatement.executeUpdate();
答案 2 :(得分:0)
您必须创建事务或将auto-commit设置为true。
在此之后
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:80/deneme","root","");
试
conn.setAutoCommit(true);