preparedStatement一个小技巧

preparedstatement的sql语句不能用?=?,想要用的话用如下方法

DBconn DB = new DBconn();
Connection con = DB.getConn();
String sql = "SELECT * FROM server,node WHERE server.node_id=node.id GROUP BY hostname;";
String sqlss = "select * from server,node where server.node_id=node.id and %column%=?;";//加百分号是为了让字符串唯一,防止替换了相同的字符串。比如mycolumn

try{

String accord = request.getParameter("accord");
String find = request.getParameter("find");
PreparedStatement pstmt = null;
ResultSet rs = null;

if( accord !=null){

pstmt = con.prepareStatement(sqlss.replace("%column%",accord));

}
Statement stmt = con.createStatement();

System.out.println(accord);
System.out.println(find);

if(find != null){
pstmt.setString(1,find);
rs = pstmt.executeQuery();
System.out.println(sqlss);
}else{
rs = stmt.executeQuery(sql);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值