jsp中mysql%%模糊查询怎样引入变量值

<%
String user = request.getParameter("insert");
                Statement stmt = null;  
                ResultSet rs = null;  
                String sql = "SELECT * FROM student WHERE number LIKE '%user%'";  //查询语句
                stmt = conn.createStatement();  
                rs = stmt.executeQuery(sql);  
                out.print("查询结果:");  
                                out.print("<br/>");
                while (rs.next()) {%>

例如我在前面一个页面输入1,并查询运行,最后得到的结果不是有关1的数据,而是有关user的数据,搜索变量值并没有实现,而是直接搜索变量名了。请问有大佬知道如何解决这个问题吗?非常感谢!!!

String sql = "SELECT * FROM student WHERE number LIKE '%“+user+”%'";

不要再用Statement了,不安全,会有sql注入隐患,参考:

 //获取连接
        Connection conn = DbUtil.getConnection();
        //sql
        String sql = "INSERT INTO imooc_goddess(user_name, sex, age, birthday, email, mobile,"+
            "create_user, create_date, update_user, update_date, isdel)"
                +"values("+"?,?,?,?,?,?,?,CURRENT_DATE(),?,CURRENT_DATE(),?)";
        //预编译
        PreparedStatement ptmt = conn.prepareStatement(sql); //预编译SQL,减少sql执行

        //传参
        ptmt.setString(1, g.getUser_name());
        ptmt.setInt(2, g.getSex());
        ptmt.setInt(3, g.getAge());
        ptmt.setDate(4, new Date(g.getBirthday().getTime()));
        ptmt.setString(5, g.getEmail());
        ptmt.setString(6, g.getMobile());
        ptmt.setString(7, g.getCreate_user());
        ptmt.setString(8, g.getUpdate_user());
        ptmt.setInt(9, g.getIsDel());

        //执行
        ptmt.execute();

我觉的1L说的对,单引号中的值能是个变量么