⑴ 求幫忙一個java的sql語句拼接,條件是 in 包括!
//不知道你usr_id怎麼傳入,現假設ids=[101,102]
Stringsql="select*fromusr_infouwhereu.usr_idin("
StringBuildersd=newStringBuilder(sql);
for(inti=0;i<ids.length();i++){
//實際操作,就是添加"'101『,"
sb.append("'").append(ids[i]).append("',");
}
sb.deleteAt(sb.length-1);//刪除最後一個逗號
sb.append(");");
System.out.print(sb.toString());
⑵ JAVA jdbc 里 拼接 sql 的時候 直接用 ++ 拼接上值還是 用 = 那個拼接啊
不談安全的話,使用StringBuffer對象拼接sql效率更高一點。但是如果使用字元串拼接的形式會造成sql注入的問題。因此盡量使用PrepareStatement來預處理sql,即使用=?的sql語句。
sql注入:
假設你想查詢的sql如下:
String sql="select * from user_infor where username='123' and pwd= ",且理論上你想要拼接 "'password'"。那麼如果拼接錯了密碼sql就不會返回想要的結果,但是如果拼接"'wrongPassword' or 1=1 " ,sql語句也會執行成功的。
⑶ 關於java中拼接sql,表名作為參數,返回結果集怎麼接 [問題點數:30分]
通常通過SQL查詢語句查出來的結果集封裝在ResultSet對象中,然後我們會這樣處理:
把ResultSet對象中的數據取出來並封裝在javabean中,所以我們需要這樣寫(我假設這里的javabean是Student.java 裡面有private String name和private int id兩個屬性 ,當然你需要生成對應的getter和setter方法)
while(rs.next()){
Student s=new Student();
s.setName(rs.getString("name"));
s.setId(rs.getInt("id"));
return s;
}
這樣就把相應的數據封裝進javabean對象中了,當然還有一種簡便的方法是用Apache開源組織的dbUtils工具 詳看API 這個太多不好說
⑷ Java動態sql語句拼接
Map<String,Boolean> map = new HashMap<String,Boolean>();
Set<Entry<String, Boolean>> ens = map.entrySet();
StringBuilder sb = new StringBuilder();
if(ens != null && ens.size() > 0){
for(Entry<String, Boolean> en: ens){
if(en.getValue()){
sb.append("'").append(en.getKey()).append("',");
}
}
}
String names = sb.toString();
if(names.length() > 0){
names = names.substring(0, names.length()-1);//去掉最後一個逗號
String sql = "select * from stuent t1 where t1.name in("+names+")";
System.out.println(sql);
}else{
System.out.println("沒有及格的學生");
}
⑸ java 如何在sql里用一個逗號拼接的字元串與資料庫里的值做對比
逗號分隔字元串的數量可以通過 sql 中的一個自定義函數來計算: 參見: dropfunction search dhgo createf unction search (@strvarchar (max) comback int -- 設置返回值為 begindeclare@resultint -- 返回逗號 declare@jintset result = 0set@j = 1while@j
⑹ java中SQL拼接的問題
//既然你說有可能不拼接,直接不拼接是無法實現的可以換一種思路,就是全部查詢,比如,你不想加proviceCd=」「的判斷,可以讓他全部查詢出來,因為不加條件就是全盤檢查,使用模糊查詢,讓條件 like 『%』 ,」%「代表任意長度任意字元,所以都符合條件,不會排除任何一個其他項目。希望這個思路能幫到你,如果不行我也沒辦法了。
String sql = select * from intern t WHERE name like '?' and institute like '? 'and gender like '?' and majorCd like '?' and provinceCd like '?';
PreparedStatement pstmt = null;
int status = -1;
try {
pstmt = conn.prepareStatement(sql);
if(name==null)
{
pstmt.setString(1, %);
}
else
{
pstmt.setString(1, name);
}
/*
其他條件判斷,
*/
status = pstmt.executeUpdate();
if (status > 0) {
System.out.println("成功");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBResources.resource(conn, pstmt);
}
⑺ java如何拼接sql語句
你咋不試試,
String columnStr;
String valueStr;
for(int i=0; i<columns.length; i++){
columnStr = "(" + columns[i] + ",";
valueStr = "'( \"" + value[i] + ",";
}
參考JAVA轉義字元。網路一下吧。你自己試試,我這里沒裝jdk,懶得弄了,准備休息了。
⑻ java和sql語句拼接問題
因為拼接字元串沒有預編譯,像mybatis會預編譯,當你傳入一個字元串的時候會自動給你添加上'',表示這是一個字元串,但是你手動字元串拼接的時候就需要自己執行mybatis的這個操作,在字元串上添加 ''。最後sql += " and id='"+ id + "'"相當於sql =sql + " and id='"+ id + "'";就是一個字元串簡單拼接
⑼ java中如何解決sql字元串的拼接
String temp="";
for(String s : ids){
temp="("+s+"),"
}
temp=temp.subString(0,temp..lastIndexOf(","));
String sql="insert into info_cols(info_id) values "+s;
Conn.update(sql);
//這樣就與資料庫交互一次,資料庫交互盡量要少