我使用前端的url调用java函数将数据插入数据库
这是我的网址:
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有一列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调用方法时,它显示错误。我找不到错误请帮助我。
答案 0 :(得分:0)
错误表示您尝试添加的列数与声明的列数不匹配。 IE浏览器。插入表(col1,col2)值(val1,val2,val3)。
这可能是由于从URL读取参数时出现代码错误。 如果您传递的值之一包含昏迷“,”这也可能是因为。
第一级调试:
在执行它之前对语句执行SYSTEM.OUT.PRINTLN并在控制台中检查其结果以发现可能的错误。
另外,请使用PreparedStatement而不是Statement,因为这会阻止您的代码进行SQL注入并避免许多错误。