为什么我不能将数据插入我的数据库?

时间:2014-06-26 12:52:51

标签: java database

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+"')");           
     }
}

3 个答案:

答案 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);