Java live server上的MYSQL未知列错误
通过Java中的servlet,我调用一个函数来执行查询,下面给出了查询,我尝试了以下格式: 错误是: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:未知列 “字段列表”中的“TFM00100” 我尝试过的问题:Java live server上的MYSQL未知列错误,java,mysql,database,servlets,Java,Mysql,Database,Servlets,通过Java中的servlet,我调用一个函数来执行查询,下面给出了查询,我尝试了以下格式: 错误是: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:未知列 “字段列表”中的“TFM00100” 我尝试过的问题: SELECT * FROM tbl_contract AS tc WHERE tc.`contact_id` = 'TFM00100' SELECT * FROM tbl_contract AS tc WH
SELECT * FROM tbl_contract AS tc WHERE tc.`contact_id` = 'TFM00100'
SELECT * FROM tbl_contract AS tc WHERE tc.`contact_id` = "TFM00100"
SELECT * FROM tbl_contract WHERE `contact_id` = 'TFM00100'
SELECT * FROM tbl_contract WHERE `contact_id` = "TFM00100"
SELECT * FROM tbl_contract WHERE contact_id = "TFM00100"
SELECT * FROM tbl_contract AS tc WHERE (tc.`contact_id` = 'TFM-00100');
我也试过用事先准备好的声明
但当调用特定的函数从实时服务器上的servlet执行查询时,返回相同的错误,在本地服务器上,它工作正常。另外,在live MySQL db上执行特定查询时,它也可以正常工作
仅Servlet相关代码:
public class AttandenceInOutReport extends HttpServlet {
private static final long serialVersionUID = 1L;
public AttandenceInOutReport() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
proccessRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
proccessRequest(request, response);
}
protected void proccessRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/**
* Setting default response
*/
// Rest of code
try {
/**
* converting request into string
*/
String res = WebServiceUtils.parseRequestToString(request);
/**
* Request write in logger
*/
logger.info("Request from client" + res);
AttandenceReportReq reportReq = new Gson().fromJson(res, AttandenceReportReq.class);
if (reportReq != null && !reportReq.equals("") && (!WebServiceUtils.isEmpty(reportReq.getStartDate()))
&& (!WebServiceUtils.isEmpty(reportReq.getEndDate()))
&& (!WebServiceUtils.isEmpty(reportReq.getContractId()))) {
final DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
LocalDate startDate = formatter.parseLocalDate(reportReq.getStartDate());
LocalDate endDate = formatter.parseLocalDate(reportReq.getEndDate());
String contractId = reportReq.getContractId();
//List<TblContract> contactList = new ArrayList<TblContract>();
// Function being called here
String contractName = CommonHandler.getContract(contractId);
// Rest of the code
// ...............
}
} catch (Exception e) {
success = false;
logger.error("Exception in processing request " + e);
}
// Rest of the code
// ...............
}
}
您可以尝试以下代码:
String query = "SELECT contract_name FROM tbl_contract WHERE contact_id = ? ";
try {
pstmt = conn.prepareStatement(query);
ps.setString(1, conId);
rs = pstmt.executeQuery();
您可以为相同的内容共享
servlet
代码吗?您是否检查了默认数据库?可能您正在使用不同的数据库。尝试使用数据库名称。如果有默认数据库,请使用@dranrebdino表名称,即使它不会为字段中的未知列“TFM00100”提供错误。可以发布您的代码吗?@SagarGangwal我假设他是一个具有相同表但没有数据的虚拟数据库,因为有时候,错误来自小细节。我试过这个。在应用conId.trim()时找到了一个解决方案,而不是一段时间内工作。
String query = "SELECT contract_name FROM tbl_contract WHERE contact_id = ? ";
try {
pstmt = conn.prepareStatement(query);
ps.setString(1, conId);
rs = pstmt.executeQuery();