の数と同じではありませんjava.sql.SQLSyntaxErrorException:割り当てられた値の数は、私は、データベースにデータを挿入するために、私のフロントエンドからURLを使用してJava関数を呼んでいる、指定または暗黙の列
これは私のURLです:
http://localhost:49779/BackEnd/mobile/rideshare/addride/1590105&toyota&4&Himalaya&10&good&12-04-2017
これは、Javaメソッドである:
@Path("addride/{student_id}&{vehicle}&{seats}&{destination}&{price}&{description}&{datetime}")
@GET
public void addRide(@PathParam ("student_id") int S_id, @PathParam ("vehicle") String vehicle, @PathParam("seats") int seats,
@PathParam("destination") String destination, @PathParam("price") int price, @PathParam("description") String description,@PathParam("datetime") String datetime) throws ClassNotFoundException,SQLException{
Connection myCon = null;
Class.forName("oracle.jdbc.OracleDriver");
myCon=DriverManager.getConnection("jdbc:derby://localhost:1527/ride_share","yadhu","yadhu");
Statement st=myCon.createStatement();
st.executeUpdate("INSERT INTO RIDES (STUDENT_ID,VEHICLE,SEATS,DESTINATION,PRICE,DESCRIPTION,DATETIME) VALUES "
+ "("+S_id+",'"+vehicle+"',"+seats+",'"+destination+"',"+price+",'"+description+"','"+datetime+"')");
}
テーブルの乗り物は、自動インクリメントプロパティで作られている列のRIDES_IDを、持っています。
これは私がテーブルを作成する方法である:私は暗黙のうちにそれを行う際に
CREATE TABLE RIDES (RIDE_ID INTEGER GENERATED ALWAYS AS IDENTITY (start with 1000), STUDENT_ID INTEGER, VEHICLE VARCHAR(200), SEATS INTEGER, DESTINATION VARCHAR(200), PRICE INTEGER, DESCRIPTION VARCHAR(200), DATETIME VARCHAR(50));
挿入は動作しますが、私はそれがエラーを示すのURLを使用してメソッドを呼び出すとき。私は間違いが私を助けてください見つけることができませんでした。
OracleまたはDerbyですか?あなたはOracleドライブを使用しているようですが、URLはDerbyデータベースを参照していますか?また、「暗黙のうちに」とはどういう意味ですか? –
クエリに値を連結する代わりに、適切なパラメータを使用する必要があります。 [Bobby Tables:SQLインジェクションを防ぐガイド](http://bobby-tables.com/) – SqlZim
@dsp_user '暗黙のうちに':netbeans内 –