我用的是sql server 2005(记得),我看过网上介绍的这种方法,都是不行的,大哥们,有其他方法吗?急啊,用prepareStatement模糊查询这么难吗,我要是sql server 的方法
public List queryByLike(String cond) throws Exception{
List all = new ArrayList() ;
String sql = "SELECT * FROM note WHERE title LIKE ? or AUTHOR LIKE ? or CONTENT LIKE ?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try
{
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,"%"+cond+"%") ;//这里已经按照网上大部分去做的,我晕了
pstmt.setString(2,"%"+cond+"%") ;
pstmt.setString(3,"%"+cond+"%") ;
public List queryByLike(String cond) throws Exception{
List all = new ArrayList() ;
String sql = "SELECT * FROM note WHERE title LIKE ? or AUTHOR LIKE ? or CONTENT LIKE ?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try
{
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,"%"+cond+"%") ;//这里已经按照网上大部分去做的,我晕了
pstmt.setString(2,"%"+cond+"%") ;
pstmt.setString(3,"%"+cond+"%") ;
pstmt.setString(2,'%'+cond+'%')
pstmt.setString(1,"%"+cond+"%") ;
pstmt.setString(2,"%"+cond+"%") ;
pstmt.setString(3,"%"+cond+"%") ;
pstmt的sql语句中的?号与setString方法的第一个参数1,2,3一一对应,第二个参数是字符串。
PreparedStatement使用没有错误
pstmt.setString(2,"%"+cond.trim()+"%") ;
pstmt.setString(3,"%"+cond.trim()+"%") ;
ps.setString(1, "%"+s_keyword+"%");//句子就是这样写的,
我反而是怀疑你的sql语句写错了,我看见你的那个select * 怪怪的,会不会是输入是时变成中文的输入
,你试试先将你的sql语句填上参数在你的数据库那边运行一下,确认sql语句无误再放到程序里面,有时候经常是出错在一些容易忽略的细节上啊
应该改成这样吧
pstmt.setString(1,"'%"+cond+"%'") ;sql server 没用过,但oracle中是这样用的因为最终的效果应该是这样的"'%title1%'",而不是"%title1%"拿sql语句到数据库中执行一下,这是个好办法
String sql = "SELECT * FROM note WHERE title LIKE '%'+?+'%' or AUTHOR LIKE '%'+?+'%' or CONTENT LIKE '%'+?+'%'";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;
dbc = new DataBaseConnection();
try
{
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1, cond);//这里已经按照网上大部分去做的,我晕了
pstmt.setString(2, cond);
pstmt.setString(3, cond);
// ...
String sql="select empno,ename,jod.sal from emp where ename like ? or job like ?";
this.pstmt=this.conn.prepareStatement(sql);
this.pstmt.setString(1,"%"+keyWord+"%");
this.pstmt.setString(2,"%"+keyWord+"%");
ResultSet rs=this.pstmt.executeQuery();
}
怎么都查不出来\\求解