0

私はJavaで働いています。2つのTextFieldオブジェクトt22とt23があります。私の要件は次のとおりです。両方のテキストフィールドから文字列を読み取り、両方の文字列値の間にスペースを追加して、mysqlデータベースの単一のフィールドに挿入する必要があります。

次のクエリを試しましたが、データベースにスペースが表示されません。

stat.executeUpdate("insert into tmpnursetab (name) values ('"+t22.getText()+"' '"+t23.getText()+"')");

訂正してください。

4

4 に答える 4

4

クエリに渡す前に最初にJavaで連結しないのはなぜですか?

String _value = t22.getText() + " " + t23.getText()
stat.executeUpdate("insert into tmpnursetab (name) values ('" + _value + "')");

しかし、クエリは脆弱ですSQL Injection。より良い使用PreparedStatements

プリペアド ステートメントの例。

String _value = t22.getText() + " " + t23.getText()
String _query = "insert into tmpnursetab (name) values (?)";
PreparedStatement pstmt = con.prepareStatement(_query);
pstmt.setString(1, _value);
pstmt.executeUpdate();
于 2013-01-25T14:03:11.067 に答える
2

これを試して:

stat.executeUpdate("insert into tmpnursetab (name) values ('"+t22.getText()+" "+t23.getText()+"')");
于 2013-01-25T14:03:02.540 に答える
0

mysqlconcatを使用するselect CONCAT('TEST1' , ' ', 'test2');

insert into tmpnursetab (name) values (CONCAT('TEST1' , ' ', 'test2'));
于 2013-01-25T14:06:27.013 に答える
0

どちらかを使用

stat.executeUpdate("insert into tmpnursetab (name) values ('"+t22.getText()+" "+t23.getText()+"')");

またはOracle DBで:

stat.executeUpdate("insert into tmpnursetab (name) values ('"+t22.getText()+"'|| '"+t23.getText()+"')");
于 2013-01-25T14:13:00.950 に答える