我有一个需要在远程数据库服务器上执行DML操作的泽西客户端。我创建了泽西网络服务,它将参数作为字符串(即客户端传递的查询)。我不知道该怎么做。请帮我。在此先感谢。!
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.ws.rs.Path;
import oracle.sql.CLOB;
@Path("/insertupdate")
public class InsertUpdate {
/**
* Inserts inclusion detail in Database
* @param insertQuery
* @param inclusionScript
*
*/
@Path("/insertInclusions")
public void insertInclusions(String insertQuery, String inclusionString) {
DbConnection con = null;
Connection conn = null;
PreparedStatement insertSt = null;
try {
con = new DbConnection();
conn = con.dbConnect();
insertSt = conn.prepareStatement(insertQuery);
CLOB tempClob = CLOB.createTemporary(conn, false,
CLOB.DURATION_SESSION);
tempClob.putChars(1, inclusionString.toCharArray());
insertSt.setClob(1, tempClob);
insertSt.execute();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
// insertSt.close();
if (insertSt != null)
insertSt.close();
} catch (SQLException sqlExp) {
sqlExp.printStackTrace();
}
}
}
}
答案 0 :(得分:0)
首先,您需要更正您的网络服务代码以接受参数。如果您正在使用GET,那么您可以使用PathParam接受您的数据库查询字符串。有点谎言:
@Path("/insertInclusions")
public void insertInclusions(@PathParam("insertQuery") String insertQuery, @PathParam("inclusionString") String inclusionString)
在您的球衣客户端代码中,您只需在GET URL中添加参数
即可