私のJavaプロジェクトに問題があります。機能次StringBuilder.append(String str)で何か狂ったことが起こりました。
は、SQL文の文字列を提供する必要があります。
private static String createInsertString(Pat p)
{
StringBuilder x = new StringBuilder();
x.append("" + p.getPatnr() +","+ p.getSvnr());
java.sql.Date andat = null,gebdat;
if(p.getAndat()==null)
andat=null;
else
andat=new java.sql.Date(p.getAndat().getTimeInMillis());
if(p.getGebdat()==null)
gebdat=null;
else
gebdat=new java.sql.Date(p.getGebdat().getTimeInMillis());
x.append("," + andat==null?"null":andat);
x.append("," + p.getTele()==null?"null":p.getTele());
x.append("," + p.getVName() +","+ p.getNname());
x.append("," + p.getKk()==null?"null":p.getKk());
x.append("," + gebdat==null?"null":gebdat);
x.append("," + p.getAdrplzort()==null?"null":6);
x.append("," + p.getAdrstr()==null?"null":p.getAdrstr());
x.append("," + p.getAdrhnr()==null?"null":p.getAdrhnr());
s.append("," + p.getReplzort()==null?"null":p.getReplzort().getPlzortnr());
x.append("," + p.getRestr()==null?"null":p.getRestr());
x.append("," + p.getRehnr()==null?"null":p.getRehnr());
x.append("," + p.getLevel());
x.append("," + p.getCon()==null?"null":p.getCon());
x.append("," + (p.isPa()?"y":"n")+","+ (p.isLonly()?"y":"n") +","+ (p.isGest()?"y":"n"));
x.append("," + p.getBem()==null?"null":p.getBem());
x.append("," + (p.isKat1()?'y':'n') +","+ (p.isKat2()?'y':'n') +","+ (p.isKat3()?'y':'n'));
System.out.println(x);
return x.toString();
}
出力は
6,6465136nullnull,Jürgen,Wieslernullnull6nullnullnullnull,0null,n,n,nnull,n,n,n
ですが、それはこのようにする必要があります:
6,6465136,null,null,Jürgen,Wiesler,null,null,6,null,null,null,null,0,null,n,n,n,null,n,n,n
誰でもアイデア? 私はdebian(64ビット)でjdk 1.7を使用しています
カップルの人が既に問題を見つけて、あなたに以下の答えを与えましたが、ランダムな質問があります。 'java.sql.Date andat = null、gebdat;'とは何ですか?それは私がまだ見ていないオブジェクトを初期化するための新しい方法ですか?私は完全に空白であり、私が答えを見ると本当に愚かな気がしますか? – Windle
あなたは "s"に一度追加すると、それはタイプミスですか? –
これを見ると、 'java.sql.PreparedStatement'の使用を検討することができます。動的SQLを使用すると、注入脆弱性が誘発されます。 –