首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

对于PreparedStatement对象和SQL中通配符一起使用的有关问题

2012-02-04 
对于PreparedStatement对象和SQL中通配符一起使用的问题Java code String sqlselect * from A where nam

对于PreparedStatement对象和SQL中通配符一起使用的问题

Java code
 String sql="select * from A where name='%?%'" PreparedStatement ps=con.prepareStatement(sql); ps.setString(1, "张三");

这样写是不是会出问题啊?
这样应该怎么解决?

如果我是写的一个公共的方法怎么办?例如:
Java code
public void update(String sql, String param[]) throws Exception {    Connection con = getCon();    PreparedStatement ps = con.prepareStatement(sql);    for (int i = 0; i < param.length; i++) {      ps.setString(i + 1, param[i]);    }    ps.execute();    closeAll(null, ps, con);  }

如果这个时候有一个或两个参数要用通配符……那应该怎么办啊?

[解决办法]
String sql = "select * from A where name like ? and password like ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "%" + "test" + "%");
ps.setString(1, "%" + "test" + "%");
把整个字串提出来设置.
[解决办法]
探讨
String sql = "select * from A where name like ? and password like ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "%" + "test" + "%");
ps.setString(1, "%" + "test" + "%");
把整个字串提出来设置.

热点排行
Bad Request.