Javascript MySQL docker容器查询将null返回到刚刚插入的值
我已经使用两个容器创建了一个web应用程序:tomcat,托管web应用程序和mysql(来自官方mysql图像)for db。我必须在db中插入WebRTC SDP的一个特定属性(a=指纹线) 有一个WebRTC SDP的例子:我已经解析了它并恢复了“a=fingerprint”行 我用这个javascript函数对它进行了解析,其中删除了行的初始“a=fingerprint:”字符串和尾随空格Javascript MySQL docker容器查询将null返回到刚刚插入的值,javascript,mysql,webrtc,Javascript,Mysql,Webrtc,我已经使用两个容器创建了一个web应用程序:tomcat,托管web应用程序和mysql(来自官方mysql图像)for db。我必须在db中插入WebRTC SDP的一个特定属性(a=指纹线) 有一个WebRTC SDP的例子:我已经解析了它并恢复了“a=fingerprint”行 我用这个javascript函数对它进行了解析,其中删除了行的初始“a=fingerprint:”字符串和尾随空格 function FindFingerprint(jsep) { var lines = js
function FindFingerprint(jsep) {
var lines = jsep.sdp.split("\n");
var line = -1;
for (var i = 0; i < lines.length; i++) {
if (lines[i].indexOf("a=fingerprint") === 0) {
line = i;
fingerprint_to_send = lines[i].replace(/a=fingerprint:/,"");
finge= fingerprint_to_send.replace(/\s+$/, '');
return finge;
}
}
if (line === -1) {
console.debug("Could not find the a=fingeprint line for", media);
return;
}
}
对于SDPLines实体:
package entities;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "sdplines", catalog = "shine4")
public class SDPLines implements java.io.Serializable {
@Id
@GeneratedValue
private int id;
@Column(name="value")
private String value;
@ManyToOne
@JoinColumn(name="u_id")
private Utente utente;
public SDPLines() {
}
public SDPLines(String value) {
this.value=value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public Utente getUtente() {
return utente;
}
public void setUtente(Utente utente) {
this.utente = utente;
}
}
我使用Hibernate
我注意到我要插入的值是103个字符
如果您知道WebRTC的性质,那么还有第二个对等通信:我想从DB检查插入的线路,并将其值与他看到的(his)RemoteSDP的a=指纹值进行比较
问题如下:如果我尝试从数据库中选择刚刚插入的行(103个字符),那么查询中没有返回任何行
我已经尝试了一些由我编写的测试字符串和所有的工作
你能解释一下为什么会有这个问题吗
这是控制HTTP请求中的值是否等于数据库中与该用户相关的现有值的servlet代码
UtenteModel um= new UtenteModel();
SDPLineModel sdpmodel= new SDPLineModel();
if (action.equals("CheckFingerprint")) {
String fingerprint = (String) request.getParameter("fingerprint");
HttpSession session1= request.getSession();
Long user_id = (Long) session1.getAttribute("user_id");
Utente ut = um.loginByID(user_id);
SDPLines sdpline = sdpmodel.findFingerprintNew(fingerprint, user_id);
if (sdpline == null) {
String message = "NOT_VALID";
System.out.println("Fingerprint NON trovata! ");
response.getOutputStream().print(message);
response.getOutputStream().flush();
response.getOutputStream().close();
}
else {
String message = "VALID";
System.out.println("Fingerprint trovata! ");
response.getOutputStream().print(message);
response.getOutputStream().flush();
response.getOutputStream().close();
}
}
简单地说,我在db中插入这个值,并在我检查这个值是否存在之后,立即与那个用户相关,但servlet没有设置有效的响应
[编辑]我注意到,如果我检查“几次”后插入的值在db中的存在性,它会返回所需行的有效存在性
为什么要拖延?如何解决这个问题,因为我想在WebRTC信令路径期间执行此控件?缺少一些信息,因此任何人都可以帮助您。例如JSEP的值,或者如何在DB中插入您的值。@ AlpMaMikEvcor请参见现在。Utente在我在米兰工作时记得我:检查空白字符是否插入到Realeste参数中,如<代码> Soop.Out.PrtLn(“value=>”+SDP,GETValueE(+)+“));代码>。通常mysql不会自行插入任何内容。如果是这样的话,您可能需要在javascript或java中进行一些修改。@alphamikere或re,请参阅:如前所述,您应该尝试使用System.out.println(或如果您希望在调试问题时使用跟踪和更新日志记录级别)记录您正在插入的内容(仅用于测试目的)
UtenteModel um= new UtenteModel();
SDPLineModel sdpmodel= new SDPLineModel();
if (action.equals("CheckFingerprint")) {
String fingerprint = (String) request.getParameter("fingerprint");
HttpSession session1= request.getSession();
Long user_id = (Long) session1.getAttribute("user_id");
Utente ut = um.loginByID(user_id);
SDPLines sdpline = sdpmodel.findFingerprintNew(fingerprint, user_id);
if (sdpline == null) {
String message = "NOT_VALID";
System.out.println("Fingerprint NON trovata! ");
response.getOutputStream().print(message);
response.getOutputStream().flush();
response.getOutputStream().close();
}
else {
String message = "VALID";
System.out.println("Fingerprint trovata! ");
response.getOutputStream().print(message);
response.getOutputStream().flush();
response.getOutputStream().close();
}
}