搜索功能遇到单引号时报错,怎么在sql语句中转译

String list_sql = "select rownum p_index,(select count(*) from tb_user) total,p.user_id,p.user_name,p.user_pwd,p.real_name,p.address,"
+"p.user_tel,p.isloginm,p.refresh_time,p.role_id,p.login_time,p.note,p.user_mail,p.phone,r.role_name"
+ " from tb_user p,tb_role r where p.role_id=r.role_id(+) ";

        if (keyword != null && !"".equals(keyword)) {
            keyword = new String(keyword.getBytes("ISO8859-1"),"utf-8");
        }

        if (keyword != null && !"".equals(keyword)) {
            **list_sql +=" and (p.user_name like '%"+keyword+"%' or p.user_tel like '%"+keyword+"%'**)";
        }

        String ftotal_sql = list_sql.replace("rownum p_index,(select count(*) from tb_user) total,p.user_id,p.user_name,p.user_pwd,p.real_name,p.address,"
                +"p.user_tel,p.isloginm,p.refresh_time,p.role_id,p.login_time,p.note,p.user_mail,p.phone,r.role_name"," count(user_id) ");

用两个单引号,表示一个单引号

加转义符,oracle的转移符是单引号