将数据库查询作为参数从jersey客户端传递到jersey web服务以执行DML

时间:2013-07-10 06:21:36

标签: java database web-services jersey jersey-client

我有一个需要在远程数据库服务器上执行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();
        }
    }
}
}

1 个答案:

答案 0 :(得分:0)

首先,您需要更正您的网络服务代码以接受参数。如果您正在使用GET,那么您可以使用PathParam接受您的数据库查询字符串。有点谎言:

@Path("/insertInclusions")
public void insertInclusions(@PathParam("insertQuery") String insertQuery, @PathParam("inclusionString") String inclusionString)

在您的球衣客户端代码中,您只需在GET URL中添加参数

即可