我想創建一個小測試java restful web服務插入記錄到數據庫中。 我的表是:Java準備語句不能與自動增量
test (id int(5) PRIMARY KEY AUTO_INCREMENT, name varchar(10))
當我嘗試以下方法(與ID改爲每次),它的工作原理:
PreparedStatement stmt;
stmt = con.prepareStatement("insert into test (id,name) values (?,?)");
stmt.setInt(1, 1);
stmt.setString(2, "test");
stmt.executeUpdate();
但是,當我試圖做到這一點,它不工作:
PreparedStatement stmt;
stmt = con.prepareStatement("insert into test (name) values (?)");
stmt.setString(1, "test");
stmt.executeUpdate();
下面是完整的代碼: Database.java
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
public class Database
{
public Connection getConnection() throws Exception
{
try
{
String connectionURL = "jdbc:mysql://localhost:3306/rit";
Connection connection = null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection(connectionURL, "root", "");
return connection;
}
catch (Exception e)
{
throw e;
}
}
}
testService.java
package webService;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.FormParam;
import javax.ws.rs.Consumes;
import model.AccessManager;
@Path("/test/")
public class testService
{
@POST
@Consumes("application/x-www-form-urlencoded")
@Produces("application/text")
public void setfood(@FormParam("name") String name)
{
AccessManager am = new AccessManager();
try
{
am.setFood(name);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
什麼意思不工作?任何例外,你可以告訴我們? – Jens
不,沒有東西會被返回。 –