【问题标题】:Passing a Database query as an argument from jersey client to jersey webservice to perfom DML将数据库查询作为参数从 jersey 客户端传递到 jersey Web 服务以执行 DML
【发布时间】:2013-07-10 06:21:35
【问题描述】:

我有一个 jersey 客户端,它需要在远程数据库服务器上执行 DML 操作。我创建了 jersey web 服务,它将参数作为字符串(即客户端传递的查询)。我不知道我该怎么做。请帮我。提前致谢!

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();
        }
    }
}
}

【问题讨论】:

  • 您使用的是 GET 还是 POST?

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


【解决方案1】:

首先,您需要更正 Web 服务代码以接受参数。如果您使用的是 GET,那么您可以使用 PathParam 来接受您的数据库查询字符串。有点像这样:

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

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

【讨论】:

    猜你喜欢
    • 2014-12-03
    • 2016-01-23
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多