0

Javaを使用してデータベースにデータを入力するための次のコードがあります。ただし、最初の列は実際にはpostgresqlデータベースによって自動的に生成されます。では、最初の列に触れないようにコードを変更するにはどうすればよいですか?

String sql = "insert into members values (?,?,?,?)";
            PreparedStatement pst = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); // I used RETURN_GENERATED_KEYS, but I don't know how to utilize it.
            pst.setInt(1, memid); // I want this line to be skipped
            pst.setInt(2, birthyear);
            pst.setString(3, familyname);
            pst.setString(4, givenname);
            // Executing the insert
            pst.executeUpdate();
4

2 に答える 2

2

SQLに挿入するフィールドのリストを含めます。

insert into members (birthyear, familyname, givenname) values (?,?,?)

このようにして、最初の列の値はデフォルトの(自動生成された)値になります。

于 2012-04-23T06:15:12.210 に答える
0

「name」、「email」という名前の2つの列があるとすると、このコードを使用して、2つの列を持つテーブル(std_tb)を含むデータベースに値を挿入できます。

String s_name="ayman";
String s_email="mamstricks"; 
PreparedStatement ps=con.prepareStatement("insert into std_tb(name,mail) values(?,?)");   
ps.setString(1, s_name); 
ps.setString(2, s_email); 
ps.executeUpdate();

2番目の列のみを挿入する場合は、このコードを2つの列を含む同じテーブルに使用できます

String s_email="ayman"; 
PreparedStatement ps=con.prepareStatement("insert into std_tb(mail) values(?)");  
ps.setString(1, s_email);
ps.executeUpdate();

ただし、最初の列にnull値を設定することを忘れないでください。wampまたはxamppを使用している場合は"http://localhost/phpmyadmin/"、テーブルにアクセスしてnullボックスにチェックマークを付けることでこれを行うことができます。

于 2014-03-02T08:06:48.277 に答える